--- /home/fdroid/fdroiddata/tmp/org.jsl.wfwt_17.apk +++ /home/fdroid/fdroiddata/tmp/sigcp_org.jsl.wfwt_17.apk ├── zipinfo {} │ @@ -1,10 +1,10 @@ │ Zip file size: 206314 bytes, number of entries: 25 │ -rw-r--r-- 0.0 unx 56 b- defN 81-Jan-01 01:01 META-INF/com/android/build/gradle/app-metadata.properties │ --rw-r--r-- 0.0 unx 179872 b- defN 81-Jan-01 01:01 classes.dex │ +-rw-r--r-- 0.0 unx 179876 b- defN 81-Jan-01 01:01 classes.dex │ -rw---- 0.0 fat 2424 b- defN 81-Jan-01 01:01 AndroidManifest.xml │ -rw---- 0.0 fat 1171 b- stor 81-Jan-01 01:01 res/-t.png │ -rw---- 0.0 fat 9415 b- stor 81-Jan-01 01:01 res/5X.png │ -rw---- 0.0 fat 699 b- stor 81-Jan-01 01:01 res/68.png │ -rw---- 0.0 fat 35222 b- stor 81-Jan-01 01:01 res/6q.wav │ -rw---- 0.0 fat 1284 b- defN 81-Jan-01 01:01 res/Jj.xml │ -rw---- 0.0 fat 844 b- defN 81-Jan-01 01:01 res/LA.xml │ @@ -20,8 +20,8 @@ │ -rw---- 0.0 fat 17634 b- stor 81-Jan-01 01:01 res/tR.wav │ -rw---- 0.0 fat 384 b- stor 81-Jan-01 01:01 res/ux.png │ -rw---- 0.0 fat 1124 b- defN 81-Jan-01 01:01 res/w6.xml │ -rw---- 0.0 fat 10492 b- stor 81-Jan-01 01:01 resources.arsc │ -rw---- 2.0 fat 1580 b- defN 81-Jan-01 01:01 META-INF/5ECE86CF.SF │ -rw---- 2.0 fat 1326 b- defN 81-Jan-01 01:01 META-INF/5ECE86CF.RSA │ -rw---- 2.0 fat 1472 b- defN 81-Jan-01 01:01 META-INF/MANIFEST.MF │ -25 files, 303872 bytes uncompressed, 198084 bytes compressed: 34.8% │ +25 files, 303876 bytes uncompressed, 198099 bytes compressed: 34.8% ├── classes.dex │ ├── dexdump -a -d -f -h {} │ │┄ Ignoring differences in offsets to keep diff size reasonable. │ │ @@ -1,13 +1,13 @@ │ │ DEX version '035' │ │ DEX file header: │ │ magic : 'dex\n035\0' │ │ -checksum : 31cd2e1b │ │ -signature : b161...67a1 │ │ -file_size : 179872 │ │ +checksum : 0a29251a │ │ +signature : 7afb...c549 │ │ +file_size : 179876 │ │ header_size : 112 │ │ link_size : 0 │ │ link_off : 0 (0x000000) │ │ string_ids_size : 1834 │ │ string_ids_off : 112 (0x000070) │ │ type_ids_size : 359 │ │ type_ids_off : 7448 (0x001d18) │ │ @@ -15,15 +15,15 @@ │ │ proto_ids_off : 8884 (0x0022b4) │ │ field_ids_size : 747 │ │ field_ids_off : 15460 (0x003c64) │ │ method_ids_size : 1425 │ │ method_ids_off : 21436 (0x0053bc) │ │ class_defs_size : 171 │ │ class_defs_off : 32836 (0x008044) │ │ -data_size : 141564 │ │ +data_size : 141568 │ │ data_off : 38308 (0x0095a4) │ │ │ │ Class #0 header: │ │ class_idx : 170 │ │ access_flags : 4096 (0x1000) │ │ superclass_idx : 98 │ │ source_file_idx : 145 │ │ @@ -10124,18 +10124,18 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;)V' │ │ access : 0x10002 (PRIVATE CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -01725c: |[01725c] org.jsl.wfwt.Channel$RegistrationListener.:(Lorg/jsl/wfwt/Channel;)V │ │ -01726c: 5b01 e101 |0000: iput-object v1, v0, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -017270: 7010 b300 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -017276: 0e00 |0005: return-void │ │ +017260: |[017260] org.jsl.wfwt.Channel$RegistrationListener.:(Lorg/jsl/wfwt/Channel;)V │ │ +017270: 5b01 e101 |0000: iput-object v1, v0, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +017274: 7010 b300 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01727a: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=95 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/jsl/wfwt/Channel$RegistrationListener; │ │ 0x0000 - 0x0006 reg=1 (null) Lorg/jsl/wfwt/Channel; │ │ │ │ @@ -10144,17 +10144,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$1;)V' │ │ access : 0x11000 (SYNTHETIC CONSTRUCTOR) │ │ code - │ │ registers : 3 │ │ ins : 3 │ │ outs : 2 │ │ insns size : 4 16-bit code units │ │ -017278: |[017278] org.jsl.wfwt.Channel$RegistrationListener.:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$1;)V │ │ -017288: 7020 5e04 1000 |0000: invoke-direct {v0, v1}, Lorg/jsl/wfwt/Channel$RegistrationListener;.:(Lorg/jsl/wfwt/Channel;)V // method@045e │ │ -01728e: 0e00 |0003: return-void │ │ +01727c: |[01727c] org.jsl.wfwt.Channel$RegistrationListener.:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$1;)V │ │ +01728c: 7020 5e04 1000 |0000: invoke-direct {v0, v1}, Lorg/jsl/wfwt/Channel$RegistrationListener;.:(Lorg/jsl/wfwt/Channel;)V // method@045e │ │ +017292: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=95 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/jsl/wfwt/Channel$RegistrationListener; │ │ 0x0000 - 0x0004 reg=1 (null) Lorg/jsl/wfwt/Channel; │ │ 0x0000 - 0x0004 reg=2 (null) Lorg/jsl/wfwt/Channel$1; │ │ @@ -10165,79 +10165,79 @@ │ │ type : '(Landroid/net/nsd/NsdServiceInfo;I)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 5 │ │ ins : 3 │ │ outs : 2 │ │ insns size : 137 16-bit code units │ │ -017290: |[017290] org.jsl.wfwt.Channel$RegistrationListener.onRegistrationFailed:(Landroid/net/nsd/NsdServiceInfo;I)V │ │ -0172a0: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -0172a4: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -0172aa: 5421 e101 |0005: iget-object v1, v2, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -0172ae: 7110 6e04 0100 |0007: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ -0172b4: 0c01 |000a: move-result-object v1 │ │ -0172b6: 6e20 cb00 1000 |000b: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0172bc: 1a01 6a00 |000e: const-string v1, ": onRegistrationFailed: " // string@006a │ │ -0172c0: 6e20 cb00 1000 |0010: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0172c6: 6e20 ca00 3000 |0013: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ -0172cc: 1a03 0500 |0016: const-string v3, " (" // string@0005 │ │ -0172d0: 6e20 cb00 3000 |0018: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0172d6: 6e20 c800 4000 |001b: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ -0172dc: 1a03 3700 |001e: const-string v3, ")" // string@0037 │ │ -0172e0: 6e20 cb00 3000 |0020: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0172e6: 6e10 ce00 0000 |0023: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -0172ec: 0c03 |0026: move-result-object v3 │ │ -0172ee: 1a04 aa00 |0027: const-string v4, "Channel" // string@00aa │ │ -0172f2: 7120 6200 3400 |0029: invoke-static {v4, v3}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ -0172f8: 5423 e101 |002c: iget-object v3, v2, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -0172fc: 7110 6f04 0300 |002e: invoke-static {v3}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ -017302: 0c03 |0031: move-result-object v3 │ │ -017304: 6e10 ae01 0300 |0032: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ -01730a: 5423 e101 |0035: iget-object v3, v2, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -01730e: 1200 |0037: const/4 v0, #int 0 // #0 │ │ -017310: 7120 7c04 0300 |0038: invoke-static {v3, v0}, Lorg/jsl/wfwt/Channel;.access$202:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$RegistrationListener;)Lorg/jsl/wfwt/Channel$RegistrationListener; // method@047c │ │ -017316: 5423 e101 |003b: iget-object v3, v2, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -01731a: 7110 7e04 0300 |003d: invoke-static {v3}, Lorg/jsl/wfwt/Channel;.access$300:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$ChannelAcceptor; // method@047e │ │ -017320: 0c03 |0040: move-result-object v3 │ │ -017322: 5421 e101 |0041: iget-object v1, v2, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -017326: 7120 7f04 0100 |0043: invoke-static {v1, v0}, Lorg/jsl/wfwt/Channel;.access$302:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$ChannelAcceptor;)Lorg/jsl/wfwt/Channel$ChannelAcceptor; // method@047f │ │ -01732c: 5420 e101 |0046: iget-object v0, v2, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -017330: 7110 8004 0000 |0048: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$400:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/CountDownLatch; // method@0480 │ │ -017336: 0c00 |004b: move-result-object v0 │ │ -017338: 3800 0b00 |004c: if-eqz v0, 0057 // +000b │ │ -01733c: 5420 e101 |004e: iget-object v0, v2, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -017340: 7110 8004 0000 |0050: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$400:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/CountDownLatch; // method@0480 │ │ -017346: 0c00 |0053: move-result-object v0 │ │ -017348: 6e10 8401 0000 |0054: invoke-virtual {v0}, Ljava/util/concurrent/CountDownLatch;.countDown:()V // method@0184 │ │ -01734e: 5420 e101 |0057: iget-object v0, v2, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -017352: 7110 6f04 0000 |0059: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ -017358: 0c00 |005c: move-result-object v0 │ │ -01735a: 6e10 b001 0000 |005d: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -017360: 5420 e101 |0060: iget-object v0, v2, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -017364: 7110 8104 0000 |0062: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$500:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/collider/Collider; // method@0481 │ │ -01736a: 0c00 |0065: move-result-object v0 │ │ -01736c: 6e20 0602 3000 |0066: invoke-virtual {v0, v3}, Lorg/jsl/collider/Collider;.removeAcceptor:(Lorg/jsl/collider/Acceptor;)V // method@0206 │ │ -017372: 1203 |0069: const/4 v3, #int 0 // #0 │ │ -017374: 280a |006a: goto 0074 // +000a │ │ -017376: 0d03 |006b: move-exception v3 │ │ -017378: 6e10 ac00 0300 |006c: invoke-virtual {v3}, Ljava/lang/InterruptedException;.toString:()Ljava/lang/String; // method@00ac │ │ -01737e: 0c03 |006f: move-result-object v3 │ │ -017380: 7120 6600 3400 |0070: invoke-static {v4, v3}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ -017386: 1213 |0073: const/4 v3, #int 1 // #1 │ │ -017388: 3803 0900 |0074: if-eqz v3, 007d // +0009 │ │ -01738c: 7100 d600 0000 |0076: invoke-static {}, Ljava/lang/Thread;.currentThread:()Ljava/lang/Thread; // method@00d6 │ │ -017392: 0c03 |0079: move-result-object v3 │ │ -017394: 6e10 d900 0300 |007a: invoke-virtual {v3}, Ljava/lang/Thread;.interrupt:()V // method@00d9 │ │ -01739a: 0e00 |007d: return-void │ │ -01739c: 0d03 |007e: move-exception v3 │ │ -01739e: 5424 e101 |007f: iget-object v4, v2, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -0173a2: 7110 6f04 0400 |0081: invoke-static {v4}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ -0173a8: 0c04 |0084: move-result-object v4 │ │ -0173aa: 6e10 b001 0400 |0085: invoke-virtual {v4}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -0173b0: 2703 |0088: throw v3 │ │ +017294: |[017294] org.jsl.wfwt.Channel$RegistrationListener.onRegistrationFailed:(Landroid/net/nsd/NsdServiceInfo;I)V │ │ +0172a4: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +0172a8: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +0172ae: 5421 e101 |0005: iget-object v1, v2, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +0172b2: 7110 6e04 0100 |0007: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ +0172b8: 0c01 |000a: move-result-object v1 │ │ +0172ba: 6e20 cb00 1000 |000b: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0172c0: 1a01 6a00 |000e: const-string v1, ": onRegistrationFailed: " // string@006a │ │ +0172c4: 6e20 cb00 1000 |0010: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0172ca: 6e20 ca00 3000 |0013: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ +0172d0: 1a03 0500 |0016: const-string v3, " (" // string@0005 │ │ +0172d4: 6e20 cb00 3000 |0018: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0172da: 6e20 c800 4000 |001b: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ +0172e0: 1a03 3700 |001e: const-string v3, ")" // string@0037 │ │ +0172e4: 6e20 cb00 3000 |0020: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0172ea: 6e10 ce00 0000 |0023: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +0172f0: 0c03 |0026: move-result-object v3 │ │ +0172f2: 1a04 aa00 |0027: const-string v4, "Channel" // string@00aa │ │ +0172f6: 7120 6200 3400 |0029: invoke-static {v4, v3}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ +0172fc: 5423 e101 |002c: iget-object v3, v2, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +017300: 7110 6f04 0300 |002e: invoke-static {v3}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ +017306: 0c03 |0031: move-result-object v3 │ │ +017308: 6e10 ae01 0300 |0032: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ +01730e: 5423 e101 |0035: iget-object v3, v2, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +017312: 1200 |0037: const/4 v0, #int 0 // #0 │ │ +017314: 7120 7c04 0300 |0038: invoke-static {v3, v0}, Lorg/jsl/wfwt/Channel;.access$202:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$RegistrationListener;)Lorg/jsl/wfwt/Channel$RegistrationListener; // method@047c │ │ +01731a: 5423 e101 |003b: iget-object v3, v2, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +01731e: 7110 7e04 0300 |003d: invoke-static {v3}, Lorg/jsl/wfwt/Channel;.access$300:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$ChannelAcceptor; // method@047e │ │ +017324: 0c03 |0040: move-result-object v3 │ │ +017326: 5421 e101 |0041: iget-object v1, v2, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +01732a: 7120 7f04 0100 |0043: invoke-static {v1, v0}, Lorg/jsl/wfwt/Channel;.access$302:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$ChannelAcceptor;)Lorg/jsl/wfwt/Channel$ChannelAcceptor; // method@047f │ │ +017330: 5420 e101 |0046: iget-object v0, v2, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +017334: 7110 8004 0000 |0048: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$400:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/CountDownLatch; // method@0480 │ │ +01733a: 0c00 |004b: move-result-object v0 │ │ +01733c: 3800 0b00 |004c: if-eqz v0, 0057 // +000b │ │ +017340: 5420 e101 |004e: iget-object v0, v2, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +017344: 7110 8004 0000 |0050: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$400:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/CountDownLatch; // method@0480 │ │ +01734a: 0c00 |0053: move-result-object v0 │ │ +01734c: 6e10 8401 0000 |0054: invoke-virtual {v0}, Ljava/util/concurrent/CountDownLatch;.countDown:()V // method@0184 │ │ +017352: 5420 e101 |0057: iget-object v0, v2, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +017356: 7110 6f04 0000 |0059: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ +01735c: 0c00 |005c: move-result-object v0 │ │ +01735e: 6e10 b001 0000 |005d: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +017364: 5420 e101 |0060: iget-object v0, v2, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +017368: 7110 8104 0000 |0062: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$500:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/collider/Collider; // method@0481 │ │ +01736e: 0c00 |0065: move-result-object v0 │ │ +017370: 6e20 0602 3000 |0066: invoke-virtual {v0, v3}, Lorg/jsl/collider/Collider;.removeAcceptor:(Lorg/jsl/collider/Acceptor;)V // method@0206 │ │ +017376: 1203 |0069: const/4 v3, #int 0 // #0 │ │ +017378: 280a |006a: goto 0074 // +000a │ │ +01737a: 0d03 |006b: move-exception v3 │ │ +01737c: 6e10 ac00 0300 |006c: invoke-virtual {v3}, Ljava/lang/InterruptedException;.toString:()Ljava/lang/String; // method@00ac │ │ +017382: 0c03 |006f: move-result-object v3 │ │ +017384: 7120 6600 3400 |0070: invoke-static {v4, v3}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ +01738a: 1213 |0073: const/4 v3, #int 1 // #1 │ │ +01738c: 3803 0900 |0074: if-eqz v3, 007d // +0009 │ │ +017390: 7100 d600 0000 |0076: invoke-static {}, Ljava/lang/Thread;.currentThread:()Ljava/lang/Thread; // method@00d6 │ │ +017396: 0c03 |0079: move-result-object v3 │ │ +017398: 6e10 d900 0300 |007a: invoke-virtual {v3}, Ljava/lang/Thread;.interrupt:()V // method@00d9 │ │ +01739e: 0e00 |007d: return-void │ │ +0173a0: 0d03 |007e: move-exception v3 │ │ +0173a2: 5424 e101 |007f: iget-object v4, v2, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +0173a6: 7110 6f04 0400 |0081: invoke-static {v4}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ +0173ac: 0c04 |0084: move-result-object v4 │ │ +0173ae: 6e10 b001 0400 |0085: invoke-virtual {v4}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +0173b4: 2703 |0088: throw v3 │ │ catches : 2 │ │ 0x0035 - 0x0057 │ │ -> 0x007e │ │ 0x0060 - 0x0069 │ │ Ljava/lang/InterruptedException; -> 0x006b │ │ positions : │ │ 0x0000 line=99 │ │ @@ -10263,177 +10263,177 @@ │ │ type : '(Landroid/net/nsd/NsdServiceInfo;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 7 │ │ ins : 2 │ │ outs : 3 │ │ insns size : 348 16-bit code units │ │ -0173cc: |[0173cc] org.jsl.wfwt.Channel$RegistrationListener.onServiceRegistered:(Landroid/net/nsd/NsdServiceInfo;)V │ │ -0173dc: 1a00 d700 |0000: const-string v0, "Duplicate registration: " // string@00d7 │ │ -0173e0: 2201 6700 |0002: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ -0173e4: 7010 c500 0100 |0004: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -0173ea: 5452 e101 |0007: iget-object v2, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -0173ee: 7110 6e04 0200 |0009: invoke-static {v2}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ -0173f4: 0c02 |000c: move-result-object v2 │ │ -0173f6: 6e20 cb00 2100 |000d: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0173fc: 1a02 6e00 |0010: const-string v2, ": onServiceRegistered: " // string@006e │ │ -017400: 6e20 cb00 2100 |0012: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -017406: 6e20 ca00 6100 |0015: invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ -01740c: 6e10 ce00 0100 |0018: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -017412: 0c01 |001b: move-result-object v1 │ │ -017414: 1a02 aa00 |001c: const-string v2, "Channel" // string@00aa │ │ -017418: 7120 6400 1200 |001e: invoke-static {v2, v1}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -01741e: 5451 e101 |0021: iget-object v1, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -017422: 7110 6f04 0100 |0023: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ -017428: 0c01 |0026: move-result-object v1 │ │ -01742a: 6e10 ae01 0100 |0027: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ -017430: 5451 e101 |002a: iget-object v1, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -017434: 7110 8004 0100 |002c: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$400:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/CountDownLatch; // method@0480 │ │ -01743a: 0c01 |002f: move-result-object v1 │ │ -01743c: 3901 dd00 |0030: if-nez v1, 010d // +00dd │ │ -017440: 5451 e101 |0032: iget-object v1, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -017444: 7110 8204 0100 |0034: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$600:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@0482 │ │ -01744a: 0c01 |0037: move-result-object v1 │ │ -01744c: 3801 1b00 |0038: if-eqz v1, 0053 // +001b │ │ -017450: 2201 6700 |003a: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ -017454: 7020 c600 0100 |003c: invoke-direct {v1, v0}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ -01745a: 6e20 ca00 6100 |003f: invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ -017460: 6e10 ce00 0100 |0042: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -017466: 0c06 |0045: move-result-object v6 │ │ -017468: 7120 6400 6200 |0046: invoke-static {v2, v6}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -01746e: 5456 e101 |0049: iget-object v6, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -017472: 7110 6f04 0600 |004b: invoke-static {v6}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ -017478: 0c06 |004e: move-result-object v6 │ │ -01747a: 6e10 b001 0600 |004f: invoke-virtual {v6}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -017480: 0e00 |0052: return-void │ │ -017482: 5450 e101 |0053: iget-object v0, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -017486: 6e10 5500 0600 |0055: invoke-virtual {v6}, Landroid/net/nsd/NsdServiceInfo;.getServiceName:()Ljava/lang/String; // method@0055 │ │ -01748c: 0c06 |0058: move-result-object v6 │ │ -01748e: 7120 8304 6000 |0059: invoke-static {v0, v6}, Lorg/jsl/wfwt/Channel;.access$602:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)Ljava/lang/String; // method@0483 │ │ -017494: 5456 e101 |005c: iget-object v6, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -017498: 7110 8404 0600 |005e: invoke-static {v6}, Lorg/jsl/wfwt/Channel;.access$700:(Lorg/jsl/wfwt/Channel;)V // method@0484 │ │ -01749e: 5456 e101 |0061: iget-object v6, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -0174a2: 7110 8504 0600 |0063: invoke-static {v6}, Lorg/jsl/wfwt/Channel;.access$800:(Lorg/jsl/wfwt/Channel;)Ljava/util/TreeMap; // method@0485 │ │ -0174a8: 0c06 |0066: move-result-object v6 │ │ -0174aa: 6e10 7b01 0600 |0067: invoke-virtual {v6}, Ljava/util/TreeMap;.entrySet:()Ljava/util/Set; // method@017b │ │ -0174b0: 0c06 |006a: move-result-object v6 │ │ -0174b2: 7210 7801 0600 |006b: invoke-interface {v6}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@0178 │ │ -0174b8: 0c06 |006e: move-result-object v6 │ │ -0174ba: 7210 6101 0600 |006f: invoke-interface {v6}, Ljava/util/Iterator;.hasNext:()Z // method@0161 │ │ -0174c0: 0a00 |0072: move-result v0 │ │ -0174c2: 3800 8700 |0073: if-eqz v0, 00fa // +0087 │ │ -0174c6: 7210 6201 0600 |0075: invoke-interface {v6}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0162 │ │ -0174cc: 0c00 |0078: move-result-object v0 │ │ -0174ce: 1f00 9400 |0079: check-cast v0, Ljava/util/Map$Entry; // type@0094 │ │ -0174d2: 7210 6b01 0000 |007b: invoke-interface {v0}, Ljava/util/Map$Entry;.getValue:()Ljava/lang/Object; // method@016b │ │ -0174d8: 0c01 |007e: move-result-object v1 │ │ -0174da: 1f01 1a01 |007f: check-cast v1, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ -0174de: 5453 e101 |0081: iget-object v3, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -0174e2: 7110 8204 0300 |0083: invoke-static {v3}, Lorg/jsl/wfwt/Channel;.access$600:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@0482 │ │ -0174e8: 0c03 |0086: move-result-object v3 │ │ -0174ea: 7210 6a01 0000 |0087: invoke-interface {v0}, Ljava/util/Map$Entry;.getKey:()Ljava/lang/Object; // method@016a │ │ -0174f0: 0c04 |008a: move-result-object v4 │ │ -0174f2: 1f04 6600 |008b: check-cast v4, Ljava/lang/String; // type@0066 │ │ -0174f6: 6e20 bb00 4300 |008d: invoke-virtual {v3, v4}, Ljava/lang/String;.compareTo:(Ljava/lang/String;)I // method@00bb │ │ -0174fc: 0a03 |0090: move-result v3 │ │ -0174fe: 3d03 4800 |0091: if-lez v3, 00d9 // +0048 │ │ -017502: 2206 6700 |0093: new-instance v6, Ljava/lang/StringBuilder; // type@0067 │ │ -017506: 7010 c500 0600 |0095: invoke-direct {v6}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -01750c: 5453 e101 |0098: iget-object v3, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -017510: 7110 6e04 0300 |009a: invoke-static {v3}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ -017516: 0c03 |009d: move-result-object v3 │ │ -017518: 6e20 cb00 3600 |009e: invoke-virtual {v6, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01751e: 1a03 7500 |00a1: const-string v3, ": resolve service: " // string@0075 │ │ -017522: 6e20 cb00 3600 |00a3: invoke-virtual {v6, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -017528: 5413 e701 |00a6: iget-object v3, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ -01752c: 6e20 ca00 3600 |00a8: invoke-virtual {v6, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ -017532: 6e10 ce00 0600 |00ab: invoke-virtual {v6}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -017538: 0c06 |00ae: move-result-object v6 │ │ -01753a: 7120 6400 6200 |00af: invoke-static {v2, v6}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -017540: 1206 |00b2: const/4 v6, #int 0 // #0 │ │ -017542: 5916 e801 |00b3: iput v6, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdUpdates:I // field@01e8 │ │ -017546: 5456 e101 |00b5: iget-object v6, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -01754a: 2202 1901 |00b7: new-instance v2, Lorg/jsl/wfwt/Channel$ResolveListener; // type@0119 │ │ -01754e: 5453 e101 |00b9: iget-object v3, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -017552: 7210 6a01 0000 |00bb: invoke-interface {v0}, Ljava/util/Map$Entry;.getKey:()Ljava/lang/Object; // method@016a │ │ -017558: 0c00 |00be: move-result-object v0 │ │ -01755a: 1f00 6600 |00bf: check-cast v0, Ljava/lang/String; // type@0066 │ │ -01755e: 7030 6404 3200 |00c1: invoke-direct {v2, v3, v0}, Lorg/jsl/wfwt/Channel$ResolveListener;.:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)V // method@0464 │ │ -017564: 7120 8704 2600 |00c4: invoke-static {v6, v2}, Lorg/jsl/wfwt/Channel;.access$902:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$ResolveListener;)Lorg/jsl/wfwt/Channel$ResolveListener; // method@0487 │ │ -01756a: 5456 e101 |00c7: iget-object v6, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -01756e: 7110 7004 0600 |00c9: invoke-static {v6}, Lorg/jsl/wfwt/Channel;.access$1000:(Lorg/jsl/wfwt/Channel;)Landroid/net/nsd/NsdManager; // method@0470 │ │ -017574: 0c06 |00cc: move-result-object v6 │ │ -017576: 5410 e701 |00cd: iget-object v0, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ -01757a: 5451 e101 |00cf: iget-object v1, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -01757e: 7110 8604 0100 |00d1: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$900:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$ResolveListener; // method@0486 │ │ -017584: 0c01 |00d4: move-result-object v1 │ │ -017586: 6e30 4f00 0601 |00d5: invoke-virtual {v6, v0, v1}, Landroid/net/nsd/NsdManager;.resolveService:(Landroid/net/nsd/NsdServiceInfo;Landroid/net/nsd/NsdManager$ResolveListener;)V // method@004f │ │ -01758c: 2822 |00d8: goto 00fa // +0022 │ │ -01758e: 2200 6700 |00d9: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -017592: 7010 c500 0000 |00db: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -017598: 5453 e101 |00de: iget-object v3, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -01759c: 7110 6e04 0300 |00e0: invoke-static {v3}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ -0175a2: 0c03 |00e3: move-result-object v3 │ │ -0175a4: 6e20 cb00 3000 |00e4: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0175aa: 1a03 8300 |00e7: const-string v3, ": waiting connection from " // string@0083 │ │ -0175ae: 6e20 cb00 3000 |00e9: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0175b4: 5411 e701 |00ec: iget-object v1, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ -0175b8: 6e20 ca00 1000 |00ee: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ -0175be: 6e10 ce00 0000 |00f1: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -0175c4: 0c00 |00f4: move-result-object v0 │ │ -0175c6: 7120 6400 0200 |00f5: invoke-static {v2, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -0175cc: 2900 77ff |00f8: goto/16 006f // -0089 │ │ -0175d0: 5456 e101 |00fa: iget-object v6, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -0175d4: 7110 7104 0600 |00fc: invoke-static {v6}, Lorg/jsl/wfwt/Channel;.access$1100:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$StateListener; // method@0471 │ │ -0175da: 0c06 |00ff: move-result-object v6 │ │ -0175dc: 3806 49ff |0100: if-eqz v6, 0049 // -00b7 │ │ -0175e0: 5450 e101 |0102: iget-object v0, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -0175e4: 7110 7204 0000 |0104: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$1200:(Lorg/jsl/wfwt/Channel;)[Lorg/jsl/wfwt/StationInfo; // method@0472 │ │ -0175ea: 0c00 |0107: move-result-object v0 │ │ -0175ec: 7220 6c04 0600 |0108: invoke-interface {v6, v0}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ -0175f2: 2900 3eff |010b: goto/16 0049 // -00c2 │ │ -0175f6: 5456 e101 |010d: iget-object v6, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -0175fa: 7110 7e04 0600 |010f: invoke-static {v6}, Lorg/jsl/wfwt/Channel;.access$300:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$ChannelAcceptor; // method@047e │ │ -017600: 0c06 |0112: move-result-object v6 │ │ -017602: 5450 e101 |0113: iget-object v0, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -017606: 1201 |0115: const/4 v1, #int 0 // #0 │ │ -017608: 7120 7f04 1000 |0116: invoke-static {v0, v1}, Lorg/jsl/wfwt/Channel;.access$302:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$ChannelAcceptor;)Lorg/jsl/wfwt/Channel$ChannelAcceptor; // method@047f │ │ -01760e: 5450 e101 |0119: iget-object v0, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -017612: 7110 6f04 0000 |011b: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ -017618: 0c00 |011e: move-result-object v0 │ │ -01761a: 6e10 b001 0000 |011f: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -017620: 5450 e101 |0122: iget-object v0, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -017624: 7110 8104 0000 |0124: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$500:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/collider/Collider; // method@0481 │ │ -01762a: 0c00 |0127: move-result-object v0 │ │ -01762c: 6e20 0602 6000 |0128: invoke-virtual {v0, v6}, Lorg/jsl/collider/Collider;.removeAcceptor:(Lorg/jsl/collider/Acceptor;)V // method@0206 │ │ -017632: 2823 |012b: goto 014e // +0023 │ │ -017634: 0d06 |012c: move-exception v6 │ │ -017636: 2200 6700 |012d: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -01763a: 7010 c500 0000 |012f: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -017640: 5451 e101 |0132: iget-object v1, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -017644: 7110 6e04 0100 |0134: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ -01764a: 0c01 |0137: move-result-object v1 │ │ -01764c: 6e20 cb00 1000 |0138: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -017652: 1a01 5100 |013b: const-string v1, ": " // string@0051 │ │ -017656: 6e20 cb00 1000 |013d: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01765c: 6e10 ac00 0600 |0140: invoke-virtual {v6}, Ljava/lang/InterruptedException;.toString:()Ljava/lang/String; // method@00ac │ │ -017662: 0c06 |0143: move-result-object v6 │ │ -017664: 6e20 cb00 6000 |0144: invoke-virtual {v0, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01766a: 6e10 ce00 0000 |0147: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -017670: 0c06 |014a: move-result-object v6 │ │ -017672: 7120 6600 6200 |014b: invoke-static {v2, v6}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ -017678: 0e00 |014e: return-void │ │ -01767a: 0d06 |014f: move-exception v6 │ │ -01767c: 5450 e101 |0150: iget-object v0, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -017680: 7110 6f04 0000 |0152: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ -017686: 0c00 |0155: move-result-object v0 │ │ -017688: 6e10 b001 0000 |0156: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -01768e: 2802 |0159: goto 015b // +0002 │ │ -017690: 2706 |015a: throw v6 │ │ -017692: 28ff |015b: goto 015a // -0001 │ │ +0173d0: |[0173d0] org.jsl.wfwt.Channel$RegistrationListener.onServiceRegistered:(Landroid/net/nsd/NsdServiceInfo;)V │ │ +0173e0: 1a00 d700 |0000: const-string v0, "Duplicate registration: " // string@00d7 │ │ +0173e4: 2201 6700 |0002: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ +0173e8: 7010 c500 0100 |0004: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +0173ee: 5452 e101 |0007: iget-object v2, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +0173f2: 7110 6e04 0200 |0009: invoke-static {v2}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ +0173f8: 0c02 |000c: move-result-object v2 │ │ +0173fa: 6e20 cb00 2100 |000d: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +017400: 1a02 6e00 |0010: const-string v2, ": onServiceRegistered: " // string@006e │ │ +017404: 6e20 cb00 2100 |0012: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01740a: 6e20 ca00 6100 |0015: invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ +017410: 6e10 ce00 0100 |0018: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +017416: 0c01 |001b: move-result-object v1 │ │ +017418: 1a02 aa00 |001c: const-string v2, "Channel" // string@00aa │ │ +01741c: 7120 6400 1200 |001e: invoke-static {v2, v1}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +017422: 5451 e101 |0021: iget-object v1, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +017426: 7110 6f04 0100 |0023: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ +01742c: 0c01 |0026: move-result-object v1 │ │ +01742e: 6e10 ae01 0100 |0027: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ +017434: 5451 e101 |002a: iget-object v1, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +017438: 7110 8004 0100 |002c: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$400:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/CountDownLatch; // method@0480 │ │ +01743e: 0c01 |002f: move-result-object v1 │ │ +017440: 3901 dd00 |0030: if-nez v1, 010d // +00dd │ │ +017444: 5451 e101 |0032: iget-object v1, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +017448: 7110 8204 0100 |0034: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$600:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@0482 │ │ +01744e: 0c01 |0037: move-result-object v1 │ │ +017450: 3801 1b00 |0038: if-eqz v1, 0053 // +001b │ │ +017454: 2201 6700 |003a: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ +017458: 7020 c600 0100 |003c: invoke-direct {v1, v0}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ +01745e: 6e20 ca00 6100 |003f: invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ +017464: 6e10 ce00 0100 |0042: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01746a: 0c06 |0045: move-result-object v6 │ │ +01746c: 7120 6400 6200 |0046: invoke-static {v2, v6}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +017472: 5456 e101 |0049: iget-object v6, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +017476: 7110 6f04 0600 |004b: invoke-static {v6}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ +01747c: 0c06 |004e: move-result-object v6 │ │ +01747e: 6e10 b001 0600 |004f: invoke-virtual {v6}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +017484: 0e00 |0052: return-void │ │ +017486: 5450 e101 |0053: iget-object v0, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +01748a: 6e10 5500 0600 |0055: invoke-virtual {v6}, Landroid/net/nsd/NsdServiceInfo;.getServiceName:()Ljava/lang/String; // method@0055 │ │ +017490: 0c06 |0058: move-result-object v6 │ │ +017492: 7120 8304 6000 |0059: invoke-static {v0, v6}, Lorg/jsl/wfwt/Channel;.access$602:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)Ljava/lang/String; // method@0483 │ │ +017498: 5456 e101 |005c: iget-object v6, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +01749c: 7110 8404 0600 |005e: invoke-static {v6}, Lorg/jsl/wfwt/Channel;.access$700:(Lorg/jsl/wfwt/Channel;)V // method@0484 │ │ +0174a2: 5456 e101 |0061: iget-object v6, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +0174a6: 7110 8504 0600 |0063: invoke-static {v6}, Lorg/jsl/wfwt/Channel;.access$800:(Lorg/jsl/wfwt/Channel;)Ljava/util/TreeMap; // method@0485 │ │ +0174ac: 0c06 |0066: move-result-object v6 │ │ +0174ae: 6e10 7b01 0600 |0067: invoke-virtual {v6}, Ljava/util/TreeMap;.entrySet:()Ljava/util/Set; // method@017b │ │ +0174b4: 0c06 |006a: move-result-object v6 │ │ +0174b6: 7210 7801 0600 |006b: invoke-interface {v6}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@0178 │ │ +0174bc: 0c06 |006e: move-result-object v6 │ │ +0174be: 7210 6101 0600 |006f: invoke-interface {v6}, Ljava/util/Iterator;.hasNext:()Z // method@0161 │ │ +0174c4: 0a00 |0072: move-result v0 │ │ +0174c6: 3800 8700 |0073: if-eqz v0, 00fa // +0087 │ │ +0174ca: 7210 6201 0600 |0075: invoke-interface {v6}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0162 │ │ +0174d0: 0c00 |0078: move-result-object v0 │ │ +0174d2: 1f00 9400 |0079: check-cast v0, Ljava/util/Map$Entry; // type@0094 │ │ +0174d6: 7210 6b01 0000 |007b: invoke-interface {v0}, Ljava/util/Map$Entry;.getValue:()Ljava/lang/Object; // method@016b │ │ +0174dc: 0c01 |007e: move-result-object v1 │ │ +0174de: 1f01 1a01 |007f: check-cast v1, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ +0174e2: 5453 e101 |0081: iget-object v3, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +0174e6: 7110 8204 0300 |0083: invoke-static {v3}, Lorg/jsl/wfwt/Channel;.access$600:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@0482 │ │ +0174ec: 0c03 |0086: move-result-object v3 │ │ +0174ee: 7210 6a01 0000 |0087: invoke-interface {v0}, Ljava/util/Map$Entry;.getKey:()Ljava/lang/Object; // method@016a │ │ +0174f4: 0c04 |008a: move-result-object v4 │ │ +0174f6: 1f04 6600 |008b: check-cast v4, Ljava/lang/String; // type@0066 │ │ +0174fa: 6e20 bb00 4300 |008d: invoke-virtual {v3, v4}, Ljava/lang/String;.compareTo:(Ljava/lang/String;)I // method@00bb │ │ +017500: 0a03 |0090: move-result v3 │ │ +017502: 3d03 4800 |0091: if-lez v3, 00d9 // +0048 │ │ +017506: 2206 6700 |0093: new-instance v6, Ljava/lang/StringBuilder; // type@0067 │ │ +01750a: 7010 c500 0600 |0095: invoke-direct {v6}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +017510: 5453 e101 |0098: iget-object v3, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +017514: 7110 6e04 0300 |009a: invoke-static {v3}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ +01751a: 0c03 |009d: move-result-object v3 │ │ +01751c: 6e20 cb00 3600 |009e: invoke-virtual {v6, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +017522: 1a03 7500 |00a1: const-string v3, ": resolve service: " // string@0075 │ │ +017526: 6e20 cb00 3600 |00a3: invoke-virtual {v6, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01752c: 5413 e701 |00a6: iget-object v3, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ +017530: 6e20 ca00 3600 |00a8: invoke-virtual {v6, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ +017536: 6e10 ce00 0600 |00ab: invoke-virtual {v6}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01753c: 0c06 |00ae: move-result-object v6 │ │ +01753e: 7120 6400 6200 |00af: invoke-static {v2, v6}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +017544: 1206 |00b2: const/4 v6, #int 0 // #0 │ │ +017546: 5916 e801 |00b3: iput v6, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdUpdates:I // field@01e8 │ │ +01754a: 5456 e101 |00b5: iget-object v6, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +01754e: 2202 1901 |00b7: new-instance v2, Lorg/jsl/wfwt/Channel$ResolveListener; // type@0119 │ │ +017552: 5453 e101 |00b9: iget-object v3, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +017556: 7210 6a01 0000 |00bb: invoke-interface {v0}, Ljava/util/Map$Entry;.getKey:()Ljava/lang/Object; // method@016a │ │ +01755c: 0c00 |00be: move-result-object v0 │ │ +01755e: 1f00 6600 |00bf: check-cast v0, Ljava/lang/String; // type@0066 │ │ +017562: 7030 6404 3200 |00c1: invoke-direct {v2, v3, v0}, Lorg/jsl/wfwt/Channel$ResolveListener;.:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)V // method@0464 │ │ +017568: 7120 8704 2600 |00c4: invoke-static {v6, v2}, Lorg/jsl/wfwt/Channel;.access$902:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$ResolveListener;)Lorg/jsl/wfwt/Channel$ResolveListener; // method@0487 │ │ +01756e: 5456 e101 |00c7: iget-object v6, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +017572: 7110 7004 0600 |00c9: invoke-static {v6}, Lorg/jsl/wfwt/Channel;.access$1000:(Lorg/jsl/wfwt/Channel;)Landroid/net/nsd/NsdManager; // method@0470 │ │ +017578: 0c06 |00cc: move-result-object v6 │ │ +01757a: 5410 e701 |00cd: iget-object v0, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ +01757e: 5451 e101 |00cf: iget-object v1, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +017582: 7110 8604 0100 |00d1: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$900:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$ResolveListener; // method@0486 │ │ +017588: 0c01 |00d4: move-result-object v1 │ │ +01758a: 6e30 4f00 0601 |00d5: invoke-virtual {v6, v0, v1}, Landroid/net/nsd/NsdManager;.resolveService:(Landroid/net/nsd/NsdServiceInfo;Landroid/net/nsd/NsdManager$ResolveListener;)V // method@004f │ │ +017590: 2822 |00d8: goto 00fa // +0022 │ │ +017592: 2200 6700 |00d9: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +017596: 7010 c500 0000 |00db: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +01759c: 5453 e101 |00de: iget-object v3, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +0175a0: 7110 6e04 0300 |00e0: invoke-static {v3}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ +0175a6: 0c03 |00e3: move-result-object v3 │ │ +0175a8: 6e20 cb00 3000 |00e4: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0175ae: 1a03 8300 |00e7: const-string v3, ": waiting connection from " // string@0083 │ │ +0175b2: 6e20 cb00 3000 |00e9: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0175b8: 5411 e701 |00ec: iget-object v1, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ +0175bc: 6e20 ca00 1000 |00ee: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ +0175c2: 6e10 ce00 0000 |00f1: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +0175c8: 0c00 |00f4: move-result-object v0 │ │ +0175ca: 7120 6400 0200 |00f5: invoke-static {v2, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +0175d0: 2900 77ff |00f8: goto/16 006f // -0089 │ │ +0175d4: 5456 e101 |00fa: iget-object v6, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +0175d8: 7110 7104 0600 |00fc: invoke-static {v6}, Lorg/jsl/wfwt/Channel;.access$1100:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$StateListener; // method@0471 │ │ +0175de: 0c06 |00ff: move-result-object v6 │ │ +0175e0: 3806 49ff |0100: if-eqz v6, 0049 // -00b7 │ │ +0175e4: 5450 e101 |0102: iget-object v0, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +0175e8: 7110 7204 0000 |0104: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$1200:(Lorg/jsl/wfwt/Channel;)[Lorg/jsl/wfwt/StationInfo; // method@0472 │ │ +0175ee: 0c00 |0107: move-result-object v0 │ │ +0175f0: 7220 6c04 0600 |0108: invoke-interface {v6, v0}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ +0175f6: 2900 3eff |010b: goto/16 0049 // -00c2 │ │ +0175fa: 5456 e101 |010d: iget-object v6, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +0175fe: 7110 7e04 0600 |010f: invoke-static {v6}, Lorg/jsl/wfwt/Channel;.access$300:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$ChannelAcceptor; // method@047e │ │ +017604: 0c06 |0112: move-result-object v6 │ │ +017606: 5450 e101 |0113: iget-object v0, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +01760a: 1201 |0115: const/4 v1, #int 0 // #0 │ │ +01760c: 7120 7f04 1000 |0116: invoke-static {v0, v1}, Lorg/jsl/wfwt/Channel;.access$302:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$ChannelAcceptor;)Lorg/jsl/wfwt/Channel$ChannelAcceptor; // method@047f │ │ +017612: 5450 e101 |0119: iget-object v0, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +017616: 7110 6f04 0000 |011b: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ +01761c: 0c00 |011e: move-result-object v0 │ │ +01761e: 6e10 b001 0000 |011f: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +017624: 5450 e101 |0122: iget-object v0, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +017628: 7110 8104 0000 |0124: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$500:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/collider/Collider; // method@0481 │ │ +01762e: 0c00 |0127: move-result-object v0 │ │ +017630: 6e20 0602 6000 |0128: invoke-virtual {v0, v6}, Lorg/jsl/collider/Collider;.removeAcceptor:(Lorg/jsl/collider/Acceptor;)V // method@0206 │ │ +017636: 2823 |012b: goto 014e // +0023 │ │ +017638: 0d06 |012c: move-exception v6 │ │ +01763a: 2200 6700 |012d: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +01763e: 7010 c500 0000 |012f: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +017644: 5451 e101 |0132: iget-object v1, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +017648: 7110 6e04 0100 |0134: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ +01764e: 0c01 |0137: move-result-object v1 │ │ +017650: 6e20 cb00 1000 |0138: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +017656: 1a01 5100 |013b: const-string v1, ": " // string@0051 │ │ +01765a: 6e20 cb00 1000 |013d: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +017660: 6e10 ac00 0600 |0140: invoke-virtual {v6}, Ljava/lang/InterruptedException;.toString:()Ljava/lang/String; // method@00ac │ │ +017666: 0c06 |0143: move-result-object v6 │ │ +017668: 6e20 cb00 6000 |0144: invoke-virtual {v0, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01766e: 6e10 ce00 0000 |0147: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +017674: 0c06 |014a: move-result-object v6 │ │ +017676: 7120 6600 6200 |014b: invoke-static {v2, v6}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ +01767c: 0e00 |014e: return-void │ │ +01767e: 0d06 |014f: move-exception v6 │ │ +017680: 5450 e101 |0150: iget-object v0, v5, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +017684: 7110 6f04 0000 |0152: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ +01768a: 0c00 |0155: move-result-object v0 │ │ +01768c: 6e10 b001 0000 |0156: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +017692: 2802 |0159: goto 015b // +0002 │ │ +017694: 2706 |015a: throw v6 │ │ +017696: 28ff |015b: goto 015a // -0001 │ │ catches : 3 │ │ 0x002a - 0x0049 │ │ -> 0x014f │ │ 0x0053 - 0x0119 │ │ -> 0x014f │ │ 0x0122 - 0x012b │ │ Ljava/lang/InterruptedException; -> 0x012c │ │ @@ -10472,75 +10472,75 @@ │ │ type : '(Landroid/net/nsd/NsdServiceInfo;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 5 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 131 16-bit code units │ │ -0176b4: |[0176b4] org.jsl.wfwt.Channel$RegistrationListener.onServiceUnregistered:(Landroid/net/nsd/NsdServiceInfo;)V │ │ -0176c4: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -0176c8: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -0176ce: 5431 e101 |0005: iget-object v1, v3, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -0176d2: 7110 6e04 0100 |0007: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ -0176d8: 0c01 |000a: move-result-object v1 │ │ -0176da: 6e20 cb00 1000 |000b: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0176e0: 1a01 7000 |000e: const-string v1, ": onServiceUnregistered: " // string@0070 │ │ -0176e4: 6e20 cb00 1000 |0010: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0176ea: 6e20 ca00 4000 |0013: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ -0176f0: 6e10 ce00 0000 |0016: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -0176f6: 0c04 |0019: move-result-object v4 │ │ -0176f8: 1a00 aa00 |001a: const-string v0, "Channel" // string@00aa │ │ -0176fc: 7120 6400 4000 |001c: invoke-static {v0, v4}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -017702: 5434 e101 |001f: iget-object v4, v3, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -017706: 7110 6f04 0400 |0021: invoke-static {v4}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ -01770c: 0c04 |0024: move-result-object v4 │ │ -01770e: 6e10 ae01 0400 |0025: invoke-virtual {v4}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ -017714: 5434 e101 |0028: iget-object v4, v3, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -017718: 7110 7e04 0400 |002a: invoke-static {v4}, Lorg/jsl/wfwt/Channel;.access$300:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$ChannelAcceptor; // method@047e │ │ -01771e: 0c04 |002d: move-result-object v4 │ │ -017720: 5431 e101 |002e: iget-object v1, v3, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -017724: 1202 |0030: const/4 v2, #int 0 // #0 │ │ -017726: 7120 7c04 2100 |0031: invoke-static {v1, v2}, Lorg/jsl/wfwt/Channel;.access$202:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$RegistrationListener;)Lorg/jsl/wfwt/Channel$RegistrationListener; // method@047c │ │ -01772c: 5431 e101 |0034: iget-object v1, v3, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -017730: 7120 7f04 2100 |0036: invoke-static {v1, v2}, Lorg/jsl/wfwt/Channel;.access$302:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$ChannelAcceptor;)Lorg/jsl/wfwt/Channel$ChannelAcceptor; // method@047f │ │ -017736: 5431 e101 |0039: iget-object v1, v3, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -01773a: 7110 6f04 0100 |003b: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ -017740: 0c01 |003e: move-result-object v1 │ │ -017742: 6e10 b001 0100 |003f: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -017748: 5431 e101 |0042: iget-object v1, v3, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -01774c: 7110 8104 0100 |0044: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$500:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/collider/Collider; // method@0481 │ │ -017752: 0c01 |0047: move-result-object v1 │ │ -017754: 6e20 0602 4100 |0048: invoke-virtual {v1, v4}, Lorg/jsl/collider/Collider;.removeAcceptor:(Lorg/jsl/collider/Acceptor;)V // method@0206 │ │ -01775a: 2823 |004b: goto 006e // +0023 │ │ -01775c: 0d04 |004c: move-exception v4 │ │ -01775e: 2201 6700 |004d: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ -017762: 7010 c500 0100 |004f: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -017768: 5432 e101 |0052: iget-object v2, v3, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -01776c: 7110 6e04 0200 |0054: invoke-static {v2}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ -017772: 0c02 |0057: move-result-object v2 │ │ -017774: 6e20 cb00 2100 |0058: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01777a: 1a02 5100 |005b: const-string v2, ": " // string@0051 │ │ -01777e: 6e20 cb00 2100 |005d: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -017784: 6e10 ac00 0400 |0060: invoke-virtual {v4}, Ljava/lang/InterruptedException;.toString:()Ljava/lang/String; // method@00ac │ │ -01778a: 0c04 |0063: move-result-object v4 │ │ -01778c: 6e20 cb00 4100 |0064: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -017792: 6e10 ce00 0100 |0067: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -017798: 0c04 |006a: move-result-object v4 │ │ -01779a: 7120 6600 4000 |006b: invoke-static {v0, v4}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ -0177a0: 5434 e101 |006e: iget-object v4, v3, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -0177a4: 7110 8004 0400 |0070: invoke-static {v4}, Lorg/jsl/wfwt/Channel;.access$400:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/CountDownLatch; // method@0480 │ │ -0177aa: 0c04 |0073: move-result-object v4 │ │ -0177ac: 6e10 8401 0400 |0074: invoke-virtual {v4}, Ljava/util/concurrent/CountDownLatch;.countDown:()V // method@0184 │ │ -0177b2: 0e00 |0077: return-void │ │ -0177b4: 0d04 |0078: move-exception v4 │ │ -0177b6: 5430 e101 |0079: iget-object v0, v3, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -0177ba: 7110 6f04 0000 |007b: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ -0177c0: 0c00 |007e: move-result-object v0 │ │ -0177c2: 6e10 b001 0000 |007f: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -0177c8: 2704 |0082: throw v4 │ │ +0176b8: |[0176b8] org.jsl.wfwt.Channel$RegistrationListener.onServiceUnregistered:(Landroid/net/nsd/NsdServiceInfo;)V │ │ +0176c8: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +0176cc: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +0176d2: 5431 e101 |0005: iget-object v1, v3, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +0176d6: 7110 6e04 0100 |0007: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ +0176dc: 0c01 |000a: move-result-object v1 │ │ +0176de: 6e20 cb00 1000 |000b: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0176e4: 1a01 7000 |000e: const-string v1, ": onServiceUnregistered: " // string@0070 │ │ +0176e8: 6e20 cb00 1000 |0010: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0176ee: 6e20 ca00 4000 |0013: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ +0176f4: 6e10 ce00 0000 |0016: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +0176fa: 0c04 |0019: move-result-object v4 │ │ +0176fc: 1a00 aa00 |001a: const-string v0, "Channel" // string@00aa │ │ +017700: 7120 6400 4000 |001c: invoke-static {v0, v4}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +017706: 5434 e101 |001f: iget-object v4, v3, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +01770a: 7110 6f04 0400 |0021: invoke-static {v4}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ +017710: 0c04 |0024: move-result-object v4 │ │ +017712: 6e10 ae01 0400 |0025: invoke-virtual {v4}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ +017718: 5434 e101 |0028: iget-object v4, v3, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +01771c: 7110 7e04 0400 |002a: invoke-static {v4}, Lorg/jsl/wfwt/Channel;.access$300:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$ChannelAcceptor; // method@047e │ │ +017722: 0c04 |002d: move-result-object v4 │ │ +017724: 5431 e101 |002e: iget-object v1, v3, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +017728: 1202 |0030: const/4 v2, #int 0 // #0 │ │ +01772a: 7120 7c04 2100 |0031: invoke-static {v1, v2}, Lorg/jsl/wfwt/Channel;.access$202:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$RegistrationListener;)Lorg/jsl/wfwt/Channel$RegistrationListener; // method@047c │ │ +017730: 5431 e101 |0034: iget-object v1, v3, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +017734: 7120 7f04 2100 |0036: invoke-static {v1, v2}, Lorg/jsl/wfwt/Channel;.access$302:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$ChannelAcceptor;)Lorg/jsl/wfwt/Channel$ChannelAcceptor; // method@047f │ │ +01773a: 5431 e101 |0039: iget-object v1, v3, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +01773e: 7110 6f04 0100 |003b: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ +017744: 0c01 |003e: move-result-object v1 │ │ +017746: 6e10 b001 0100 |003f: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +01774c: 5431 e101 |0042: iget-object v1, v3, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +017750: 7110 8104 0100 |0044: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$500:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/collider/Collider; // method@0481 │ │ +017756: 0c01 |0047: move-result-object v1 │ │ +017758: 6e20 0602 4100 |0048: invoke-virtual {v1, v4}, Lorg/jsl/collider/Collider;.removeAcceptor:(Lorg/jsl/collider/Acceptor;)V // method@0206 │ │ +01775e: 2823 |004b: goto 006e // +0023 │ │ +017760: 0d04 |004c: move-exception v4 │ │ +017762: 2201 6700 |004d: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ +017766: 7010 c500 0100 |004f: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +01776c: 5432 e101 |0052: iget-object v2, v3, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +017770: 7110 6e04 0200 |0054: invoke-static {v2}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ +017776: 0c02 |0057: move-result-object v2 │ │ +017778: 6e20 cb00 2100 |0058: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01777e: 1a02 5100 |005b: const-string v2, ": " // string@0051 │ │ +017782: 6e20 cb00 2100 |005d: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +017788: 6e10 ac00 0400 |0060: invoke-virtual {v4}, Ljava/lang/InterruptedException;.toString:()Ljava/lang/String; // method@00ac │ │ +01778e: 0c04 |0063: move-result-object v4 │ │ +017790: 6e20 cb00 4100 |0064: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +017796: 6e10 ce00 0100 |0067: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01779c: 0c04 |006a: move-result-object v4 │ │ +01779e: 7120 6600 4000 |006b: invoke-static {v0, v4}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ +0177a4: 5434 e101 |006e: iget-object v4, v3, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +0177a8: 7110 8004 0400 |0070: invoke-static {v4}, Lorg/jsl/wfwt/Channel;.access$400:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/CountDownLatch; // method@0480 │ │ +0177ae: 0c04 |0073: move-result-object v4 │ │ +0177b0: 6e10 8401 0400 |0074: invoke-virtual {v4}, Ljava/util/concurrent/CountDownLatch;.countDown:()V // method@0184 │ │ +0177b6: 0e00 |0077: return-void │ │ +0177b8: 0d04 |0078: move-exception v4 │ │ +0177ba: 5430 e101 |0079: iget-object v0, v3, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +0177be: 7110 6f04 0000 |007b: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ +0177c4: 0c00 |007e: move-result-object v0 │ │ +0177c6: 6e10 b001 0000 |007f: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +0177cc: 2704 |0082: throw v4 │ │ catches : 2 │ │ 0x0028 - 0x0039 │ │ -> 0x0078 │ │ 0x0042 - 0x004b │ │ Ljava/lang/InterruptedException; -> 0x004c │ │ positions : │ │ 0x0000 line=203 │ │ @@ -10563,34 +10563,34 @@ │ │ type : '(Landroid/net/nsd/NsdServiceInfo;I)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 5 │ │ ins : 3 │ │ outs : 2 │ │ insns size : 45 16-bit code units │ │ -0177e4: |[0177e4] org.jsl.wfwt.Channel$RegistrationListener.onUnregistrationFailed:(Landroid/net/nsd/NsdServiceInfo;I)V │ │ -0177f4: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -0177f8: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -0177fe: 5421 e101 |0005: iget-object v1, v2, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ -017802: 7110 6e04 0100 |0007: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ -017808: 0c01 |000a: move-result-object v1 │ │ -01780a: 6e20 cb00 1000 |000b: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -017810: 1a01 7100 |000e: const-string v1, ": onUnregistrationFailed: " // string@0071 │ │ -017814: 6e20 cb00 1000 |0010: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01781a: 6e20 ca00 3000 |0013: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ -017820: 1a03 0500 |0016: const-string v3, " (" // string@0005 │ │ -017824: 6e20 cb00 3000 |0018: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01782a: 6e20 c800 4000 |001b: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ -017830: 1a03 3700 |001e: const-string v3, ")" // string@0037 │ │ -017834: 6e20 cb00 3000 |0020: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01783a: 6e10 ce00 0000 |0023: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -017840: 0c03 |0026: move-result-object v3 │ │ -017842: 1a04 aa00 |0027: const-string v4, "Channel" // string@00aa │ │ -017846: 7120 6200 3400 |0029: invoke-static {v4, v3}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ -01784c: 0e00 |002c: return-void │ │ +0177e8: |[0177e8] org.jsl.wfwt.Channel$RegistrationListener.onUnregistrationFailed:(Landroid/net/nsd/NsdServiceInfo;I)V │ │ +0177f8: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +0177fc: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +017802: 5421 e101 |0005: iget-object v1, v2, Lorg/jsl/wfwt/Channel$RegistrationListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e1 │ │ +017806: 7110 6e04 0100 |0007: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ +01780c: 0c01 |000a: move-result-object v1 │ │ +01780e: 6e20 cb00 1000 |000b: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +017814: 1a01 7100 |000e: const-string v1, ": onUnregistrationFailed: " // string@0071 │ │ +017818: 6e20 cb00 1000 |0010: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01781e: 6e20 ca00 3000 |0013: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ +017824: 1a03 0500 |0016: const-string v3, " (" // string@0005 │ │ +017828: 6e20 cb00 3000 |0018: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01782e: 6e20 c800 4000 |001b: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ +017834: 1a03 3700 |001e: const-string v3, ")" // string@0037 │ │ +017838: 6e20 cb00 3000 |0020: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01783e: 6e10 ce00 0000 |0023: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +017844: 0c03 |0026: move-result-object v3 │ │ +017846: 1a04 aa00 |0027: const-string v4, "Channel" // string@00aa │ │ +01784a: 7120 6200 3400 |0029: invoke-static {v4, v3}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ +017850: 0e00 |002c: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=134 │ │ locals : │ │ 0x0000 - 0x002d reg=2 this Lorg/jsl/wfwt/Channel$RegistrationListener; │ │ 0x0000 - 0x002d reg=3 (null) Landroid/net/nsd/NsdServiceInfo; │ │ 0x0000 - 0x002d reg=4 (null) I │ │ @@ -10634,19 +10634,19 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 3 │ │ ins : 3 │ │ outs : 1 │ │ insns size : 8 16-bit code units │ │ -017868: |[017868] org.jsl.wfwt.Channel$ResolveListener.:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)V │ │ -017878: 5b01 e301 |0000: iput-object v1, v0, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -01787c: 7010 b300 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -017882: 5b02 e201 |0005: iput-object v2, v0, Lorg/jsl/wfwt/Channel$ResolveListener;.m_serviceName:Ljava/lang/String; // field@01e2 │ │ -017886: 0e00 |0007: return-void │ │ +01786c: |[01786c] org.jsl.wfwt.Channel$ResolveListener.:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)V │ │ +01787c: 5b01 e301 |0000: iput-object v1, v0, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +017880: 7010 b300 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +017886: 5b02 e201 |0005: iput-object v2, v0, Lorg/jsl/wfwt/Channel$ResolveListener;.m_serviceName:Ljava/lang/String; // field@01e2 │ │ +01788a: 0e00 |0007: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=260 │ │ 0x0005 line=261 │ │ locals : │ │ 0x0000 - 0x0008 reg=0 this Lorg/jsl/wfwt/Channel$ResolveListener; │ │ 0x0000 - 0x0008 reg=1 (null) Lorg/jsl/wfwt/Channel; │ │ @@ -10658,17 +10658,17 @@ │ │ type : '()Ljava/lang/String;' │ │ access : 0x0000 () │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -017850: |[017850] org.jsl.wfwt.Channel$ResolveListener.getServiceName:()Ljava/lang/String; │ │ -017860: 5410 e201 |0000: iget-object v0, v1, Lorg/jsl/wfwt/Channel$ResolveListener;.m_serviceName:Ljava/lang/String; // field@01e2 │ │ -017864: 1100 |0002: return-object v0 │ │ +017854: |[017854] org.jsl.wfwt.Channel$ResolveListener.getServiceName:()Ljava/lang/String; │ │ +017864: 5410 e201 |0000: iget-object v0, v1, Lorg/jsl/wfwt/Channel$ResolveListener;.m_serviceName:Ljava/lang/String; // field@01e2 │ │ +017868: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=266 │ │ locals : │ │ 0x0000 - 0x0003 reg=1 this Lorg/jsl/wfwt/Channel$ResolveListener; │ │ │ │ #1 : (in Lorg/jsl/wfwt/Channel$ResolveListener;) │ │ @@ -10676,100 +10676,100 @@ │ │ type : '(Landroid/net/nsd/NsdServiceInfo;I)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 5 │ │ ins : 3 │ │ outs : 2 │ │ insns size : 185 16-bit code units │ │ -017888: |[017888] org.jsl.wfwt.Channel$ResolveListener.onResolveFailed:(Landroid/net/nsd/NsdServiceInfo;I)V │ │ -017898: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -01789c: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -0178a2: 5421 e301 |0005: iget-object v1, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -0178a6: 7110 6e04 0100 |0007: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ -0178ac: 0c01 |000a: move-result-object v1 │ │ -0178ae: 6e20 cb00 1000 |000b: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0178b4: 1a01 6b00 |000e: const-string v1, ": onResolveFailed: " // string@006b │ │ -0178b8: 6e20 cb00 1000 |0010: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0178be: 6e20 ca00 3000 |0013: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ -0178c4: 1a03 1000 |0016: const-string v3, " errorCode=" // string@0010 │ │ -0178c8: 6e20 cb00 3000 |0018: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0178ce: 6e20 c800 4000 |001b: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ -0178d4: 6e10 ce00 0000 |001e: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -0178da: 0c03 |0021: move-result-object v3 │ │ -0178dc: 1a04 aa00 |0022: const-string v4, "Channel" // string@00aa │ │ -0178e0: 7120 6400 3400 |0024: invoke-static {v4, v3}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -0178e6: 5423 e301 |0027: iget-object v3, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -0178ea: 7110 6f04 0300 |0029: invoke-static {v3}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ -0178f0: 0c03 |002c: move-result-object v3 │ │ -0178f2: 6e10 ae01 0300 |002d: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ -0178f8: 5423 e301 |0030: iget-object v3, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -0178fc: 7110 8504 0300 |0032: invoke-static {v3}, Lorg/jsl/wfwt/Channel;.access$800:(Lorg/jsl/wfwt/Channel;)Ljava/util/TreeMap; // method@0485 │ │ -017902: 0c03 |0035: move-result-object v3 │ │ -017904: 5420 e201 |0036: iget-object v0, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.m_serviceName:Ljava/lang/String; // field@01e2 │ │ -017908: 6e20 7e01 0300 |0038: invoke-virtual {v3, v0}, Ljava/util/TreeMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@017e │ │ -01790e: 0c03 |003b: move-result-object v3 │ │ -017910: 1f03 1a01 |003c: check-cast v3, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ -017914: 3803 4200 |003e: if-eqz v3, 0080 // +0042 │ │ -017918: 5424 e301 |0040: iget-object v4, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -01791c: 7110 8004 0400 |0042: invoke-static {v4}, Lorg/jsl/wfwt/Channel;.access$400:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/CountDownLatch; // method@0480 │ │ -017922: 0c04 |0045: move-result-object v4 │ │ -017924: 1200 |0046: const/4 v0, #int 0 // #0 │ │ -017926: 3804 1c00 |0047: if-eqz v4, 0063 // +001c │ │ -01792a: 5423 e301 |0049: iget-object v3, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -01792e: 7110 8504 0300 |004b: invoke-static {v3}, Lorg/jsl/wfwt/Channel;.access$800:(Lorg/jsl/wfwt/Channel;)Ljava/util/TreeMap; // method@0485 │ │ -017934: 0c03 |004e: move-result-object v3 │ │ -017936: 5424 e201 |004f: iget-object v4, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.m_serviceName:Ljava/lang/String; // field@01e2 │ │ -01793a: 6e20 8101 4300 |0051: invoke-virtual {v3, v4}, Ljava/util/TreeMap;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@0181 │ │ -017940: 5423 e301 |0054: iget-object v3, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -017944: 7120 7c04 0300 |0056: invoke-static {v3, v0}, Lorg/jsl/wfwt/Channel;.access$202:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$RegistrationListener;)Lorg/jsl/wfwt/Channel$RegistrationListener; // method@047c │ │ -01794a: 5423 e301 |0059: iget-object v3, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -01794e: 7110 8004 0300 |005b: invoke-static {v3}, Lorg/jsl/wfwt/Channel;.access$400:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/CountDownLatch; // method@0480 │ │ -017954: 0c03 |005e: move-result-object v3 │ │ -017956: 6e10 8401 0300 |005f: invoke-virtual {v3}, Ljava/util/concurrent/CountDownLatch;.countDown:()V // method@0184 │ │ -01795c: 2842 |0062: goto 00a4 // +0042 │ │ -01795e: 5433 e701 |0063: iget-object v3, v3, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ -017962: 3903 0e00 |0065: if-nez v3, 0073 // +000e │ │ -017966: 5423 e301 |0067: iget-object v3, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -01796a: 7110 8504 0300 |0069: invoke-static {v3}, Lorg/jsl/wfwt/Channel;.access$800:(Lorg/jsl/wfwt/Channel;)Ljava/util/TreeMap; // method@0485 │ │ -017970: 0c03 |006c: move-result-object v3 │ │ -017972: 5424 e201 |006d: iget-object v4, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.m_serviceName:Ljava/lang/String; // field@01e2 │ │ -017976: 6e20 8101 4300 |006f: invoke-virtual {v3, v4}, Ljava/util/TreeMap;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@0181 │ │ -01797c: 2832 |0072: goto 00a4 // +0032 │ │ -01797e: 5423 e301 |0073: iget-object v3, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -017982: 7120 8704 0300 |0075: invoke-static {v3, v0}, Lorg/jsl/wfwt/Channel;.access$902:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$ResolveListener;)Lorg/jsl/wfwt/Channel$ResolveListener; // method@0487 │ │ -017988: 5423 e301 |0078: iget-object v3, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -01798c: 5424 e201 |007a: iget-object v4, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.m_serviceName:Ljava/lang/String; // field@01e2 │ │ -017990: 7120 7304 4300 |007c: invoke-static {v3, v4}, Lorg/jsl/wfwt/Channel;.access$1300:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)V // method@0473 │ │ -017996: 2825 |007f: goto 00a4 // +0025 │ │ -017998: 2203 6700 |0080: new-instance v3, Ljava/lang/StringBuilder; // type@0067 │ │ -01799c: 7010 c500 0300 |0082: invoke-direct {v3}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -0179a2: 5420 e301 |0085: iget-object v0, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -0179a6: 7110 6e04 0000 |0087: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ -0179ac: 0c00 |008a: move-result-object v0 │ │ -0179ae: 6e20 cb00 0300 |008b: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0179b4: 1a00 6000 |008e: const-string v0, ": internal error: service info not found [" // string@0060 │ │ -0179b8: 6e20 cb00 0300 |0090: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0179be: 5420 e201 |0093: iget-object v0, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.m_serviceName:Ljava/lang/String; // field@01e2 │ │ -0179c2: 6e20 cb00 0300 |0095: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0179c8: 1a00 9c03 |0098: const-string v0, "]" // string@039c │ │ -0179cc: 6e20 cb00 0300 |009a: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0179d2: 6e10 ce00 0300 |009d: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -0179d8: 0c03 |00a0: move-result-object v3 │ │ -0179da: 7120 6200 3400 |00a1: invoke-static {v4, v3}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ -0179e0: 5423 e301 |00a4: iget-object v3, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -0179e4: 7110 6f04 0300 |00a6: invoke-static {v3}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ -0179ea: 0c03 |00a9: move-result-object v3 │ │ -0179ec: 6e10 b001 0300 |00aa: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -0179f2: 0e00 |00ad: return-void │ │ -0179f4: 0d03 |00ae: move-exception v3 │ │ -0179f6: 5424 e301 |00af: iget-object v4, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -0179fa: 7110 6f04 0400 |00b1: invoke-static {v4}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ -017a00: 0c04 |00b4: move-result-object v4 │ │ -017a02: 6e10 b001 0400 |00b5: invoke-virtual {v4}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -017a08: 2703 |00b8: throw v3 │ │ +01788c: |[01788c] org.jsl.wfwt.Channel$ResolveListener.onResolveFailed:(Landroid/net/nsd/NsdServiceInfo;I)V │ │ +01789c: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +0178a0: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +0178a6: 5421 e301 |0005: iget-object v1, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +0178aa: 7110 6e04 0100 |0007: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ +0178b0: 0c01 |000a: move-result-object v1 │ │ +0178b2: 6e20 cb00 1000 |000b: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0178b8: 1a01 6b00 |000e: const-string v1, ": onResolveFailed: " // string@006b │ │ +0178bc: 6e20 cb00 1000 |0010: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0178c2: 6e20 ca00 3000 |0013: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ +0178c8: 1a03 1000 |0016: const-string v3, " errorCode=" // string@0010 │ │ +0178cc: 6e20 cb00 3000 |0018: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0178d2: 6e20 c800 4000 |001b: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ +0178d8: 6e10 ce00 0000 |001e: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +0178de: 0c03 |0021: move-result-object v3 │ │ +0178e0: 1a04 aa00 |0022: const-string v4, "Channel" // string@00aa │ │ +0178e4: 7120 6400 3400 |0024: invoke-static {v4, v3}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +0178ea: 5423 e301 |0027: iget-object v3, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +0178ee: 7110 6f04 0300 |0029: invoke-static {v3}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ +0178f4: 0c03 |002c: move-result-object v3 │ │ +0178f6: 6e10 ae01 0300 |002d: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ +0178fc: 5423 e301 |0030: iget-object v3, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +017900: 7110 8504 0300 |0032: invoke-static {v3}, Lorg/jsl/wfwt/Channel;.access$800:(Lorg/jsl/wfwt/Channel;)Ljava/util/TreeMap; // method@0485 │ │ +017906: 0c03 |0035: move-result-object v3 │ │ +017908: 5420 e201 |0036: iget-object v0, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.m_serviceName:Ljava/lang/String; // field@01e2 │ │ +01790c: 6e20 7e01 0300 |0038: invoke-virtual {v3, v0}, Ljava/util/TreeMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@017e │ │ +017912: 0c03 |003b: move-result-object v3 │ │ +017914: 1f03 1a01 |003c: check-cast v3, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ +017918: 3803 4200 |003e: if-eqz v3, 0080 // +0042 │ │ +01791c: 5424 e301 |0040: iget-object v4, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +017920: 7110 8004 0400 |0042: invoke-static {v4}, Lorg/jsl/wfwt/Channel;.access$400:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/CountDownLatch; // method@0480 │ │ +017926: 0c04 |0045: move-result-object v4 │ │ +017928: 1200 |0046: const/4 v0, #int 0 // #0 │ │ +01792a: 3804 1c00 |0047: if-eqz v4, 0063 // +001c │ │ +01792e: 5423 e301 |0049: iget-object v3, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +017932: 7110 8504 0300 |004b: invoke-static {v3}, Lorg/jsl/wfwt/Channel;.access$800:(Lorg/jsl/wfwt/Channel;)Ljava/util/TreeMap; // method@0485 │ │ +017938: 0c03 |004e: move-result-object v3 │ │ +01793a: 5424 e201 |004f: iget-object v4, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.m_serviceName:Ljava/lang/String; // field@01e2 │ │ +01793e: 6e20 8101 4300 |0051: invoke-virtual {v3, v4}, Ljava/util/TreeMap;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@0181 │ │ +017944: 5423 e301 |0054: iget-object v3, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +017948: 7120 7c04 0300 |0056: invoke-static {v3, v0}, Lorg/jsl/wfwt/Channel;.access$202:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$RegistrationListener;)Lorg/jsl/wfwt/Channel$RegistrationListener; // method@047c │ │ +01794e: 5423 e301 |0059: iget-object v3, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +017952: 7110 8004 0300 |005b: invoke-static {v3}, Lorg/jsl/wfwt/Channel;.access$400:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/CountDownLatch; // method@0480 │ │ +017958: 0c03 |005e: move-result-object v3 │ │ +01795a: 6e10 8401 0300 |005f: invoke-virtual {v3}, Ljava/util/concurrent/CountDownLatch;.countDown:()V // method@0184 │ │ +017960: 2842 |0062: goto 00a4 // +0042 │ │ +017962: 5433 e701 |0063: iget-object v3, v3, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ +017966: 3903 0e00 |0065: if-nez v3, 0073 // +000e │ │ +01796a: 5423 e301 |0067: iget-object v3, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +01796e: 7110 8504 0300 |0069: invoke-static {v3}, Lorg/jsl/wfwt/Channel;.access$800:(Lorg/jsl/wfwt/Channel;)Ljava/util/TreeMap; // method@0485 │ │ +017974: 0c03 |006c: move-result-object v3 │ │ +017976: 5424 e201 |006d: iget-object v4, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.m_serviceName:Ljava/lang/String; // field@01e2 │ │ +01797a: 6e20 8101 4300 |006f: invoke-virtual {v3, v4}, Ljava/util/TreeMap;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@0181 │ │ +017980: 2832 |0072: goto 00a4 // +0032 │ │ +017982: 5423 e301 |0073: iget-object v3, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +017986: 7120 8704 0300 |0075: invoke-static {v3, v0}, Lorg/jsl/wfwt/Channel;.access$902:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$ResolveListener;)Lorg/jsl/wfwt/Channel$ResolveListener; // method@0487 │ │ +01798c: 5423 e301 |0078: iget-object v3, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +017990: 5424 e201 |007a: iget-object v4, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.m_serviceName:Ljava/lang/String; // field@01e2 │ │ +017994: 7120 7304 4300 |007c: invoke-static {v3, v4}, Lorg/jsl/wfwt/Channel;.access$1300:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)V // method@0473 │ │ +01799a: 2825 |007f: goto 00a4 // +0025 │ │ +01799c: 2203 6700 |0080: new-instance v3, Ljava/lang/StringBuilder; // type@0067 │ │ +0179a0: 7010 c500 0300 |0082: invoke-direct {v3}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +0179a6: 5420 e301 |0085: iget-object v0, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +0179aa: 7110 6e04 0000 |0087: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ +0179b0: 0c00 |008a: move-result-object v0 │ │ +0179b2: 6e20 cb00 0300 |008b: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0179b8: 1a00 6000 |008e: const-string v0, ": internal error: service info not found [" // string@0060 │ │ +0179bc: 6e20 cb00 0300 |0090: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0179c2: 5420 e201 |0093: iget-object v0, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.m_serviceName:Ljava/lang/String; // field@01e2 │ │ +0179c6: 6e20 cb00 0300 |0095: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0179cc: 1a00 9c03 |0098: const-string v0, "]" // string@039c │ │ +0179d0: 6e20 cb00 0300 |009a: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0179d6: 6e10 ce00 0300 |009d: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +0179dc: 0c03 |00a0: move-result-object v3 │ │ +0179de: 7120 6200 3400 |00a1: invoke-static {v4, v3}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ +0179e4: 5423 e301 |00a4: iget-object v3, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +0179e8: 7110 6f04 0300 |00a6: invoke-static {v3}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ +0179ee: 0c03 |00a9: move-result-object v3 │ │ +0179f0: 6e10 b001 0300 |00aa: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +0179f6: 0e00 |00ad: return-void │ │ +0179f8: 0d03 |00ae: move-exception v3 │ │ +0179fa: 5424 e301 |00af: iget-object v4, v2, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +0179fe: 7110 6f04 0400 |00b1: invoke-static {v4}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ +017a04: 0c04 |00b4: move-result-object v4 │ │ +017a06: 6e10 b001 0400 |00b5: invoke-virtual {v4}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +017a0c: 2703 |00b8: throw v3 │ │ catches : 1 │ │ 0x0030 - 0x00a4 │ │ -> 0x00ae │ │ positions : │ │ 0x0000 line=271 │ │ 0x0027 line=272 │ │ 0x0030 line=275 │ │ @@ -10794,103 +10794,103 @@ │ │ type : '(Landroid/net/nsd/NsdServiceInfo;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 6 │ │ ins : 2 │ │ outs : 4 │ │ insns size : 191 16-bit code units │ │ -017a18: |[017a18] org.jsl.wfwt.Channel$ResolveListener.onServiceResolved:(Landroid/net/nsd/NsdServiceInfo;)V │ │ -017a28: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -017a2c: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -017a32: 5441 e301 |0005: iget-object v1, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -017a36: 7110 6e04 0100 |0007: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ -017a3c: 0c01 |000a: move-result-object v1 │ │ -017a3e: 6e20 cb00 1000 |000b: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -017a44: 1a01 6f00 |000e: const-string v1, ": onServiceResolved: " // string@006f │ │ -017a48: 6e20 cb00 1000 |0010: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -017a4e: 6e20 ca00 5000 |0013: invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ -017a54: 6e10 ce00 0000 |0016: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -017a5a: 0c00 |0019: move-result-object v0 │ │ -017a5c: 1a01 aa00 |001a: const-string v1, "Channel" // string@00aa │ │ -017a60: 7120 6400 0100 |001c: invoke-static {v1, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -017a66: 5440 e301 |001f: iget-object v0, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -017a6a: 7110 6f04 0000 |0021: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ -017a70: 0c00 |0024: move-result-object v0 │ │ -017a72: 6e10 ae01 0000 |0025: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ -017a78: 5440 e301 |0028: iget-object v0, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -017a7c: 7110 8504 0000 |002a: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$800:(Lorg/jsl/wfwt/Channel;)Ljava/util/TreeMap; // method@0485 │ │ -017a82: 0c00 |002d: move-result-object v0 │ │ -017a84: 5442 e201 |002e: iget-object v2, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.m_serviceName:Ljava/lang/String; // field@01e2 │ │ -017a88: 6e20 7e01 2000 |0030: invoke-virtual {v0, v2}, Ljava/util/TreeMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@017e │ │ -017a8e: 0c00 |0033: move-result-object v0 │ │ -017a90: 1f00 1a01 |0034: check-cast v0, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ -017a94: 3800 5000 |0036: if-eqz v0, 0086 // +0050 │ │ -017a98: 5441 e301 |0038: iget-object v1, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -017a9c: 1202 |003a: const/4 v2, #int 0 // #0 │ │ -017a9e: 7120 8704 2100 |003b: invoke-static {v1, v2}, Lorg/jsl/wfwt/Channel;.access$902:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$ResolveListener;)Lorg/jsl/wfwt/Channel$ResolveListener; // method@0487 │ │ -017aa4: 5441 e301 |003e: iget-object v1, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -017aa8: 7110 8004 0100 |0040: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$400:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/CountDownLatch; // method@0480 │ │ -017aae: 0c01 |0043: move-result-object v1 │ │ -017ab0: 3901 2d00 |0044: if-nez v1, 0071 // +002d │ │ -017ab4: 2201 6e00 |0046: new-instance v1, Ljava/net/InetSocketAddress; // type@006e │ │ -017ab8: 6e10 5300 0500 |0048: invoke-virtual {v5}, Landroid/net/nsd/NsdServiceInfo;.getHost:()Ljava/net/InetAddress; // method@0053 │ │ -017abe: 0c02 |004b: move-result-object v2 │ │ -017ac0: 6e10 5400 0500 |004c: invoke-virtual {v5}, Landroid/net/nsd/NsdServiceInfo;.getPort:()I // method@0054 │ │ -017ac6: 0a05 |004f: move-result v5 │ │ -017ac8: 7030 e300 2105 |0050: invoke-direct {v1, v2, v5}, Ljava/net/InetSocketAddress;.:(Ljava/net/InetAddress;I)V // method@00e3 │ │ -017ace: 2205 1701 |0053: new-instance v5, Lorg/jsl/wfwt/Channel$ChannelConnector; // type@0117 │ │ -017ad2: 5442 e301 |0055: iget-object v2, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -017ad6: 5443 e201 |0057: iget-object v3, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.m_serviceName:Ljava/lang/String; // field@01e2 │ │ -017ada: 7040 5a04 2531 |0059: invoke-direct {v5, v2, v1, v3}, Lorg/jsl/wfwt/Channel$ChannelConnector;.:(Lorg/jsl/wfwt/Channel;Ljava/net/InetSocketAddress;Ljava/lang/String;)V // method@045a │ │ -017ae0: 5b05 e601 |005c: iput-object v5, v0, Lorg/jsl/wfwt/Channel$ServiceInfo;.connector:Lorg/jsl/collider/Connector; // field@01e6 │ │ -017ae4: 5445 e301 |005e: iget-object v5, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -017ae8: 7110 8104 0500 |0060: invoke-static {v5}, Lorg/jsl/wfwt/Channel;.access$500:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/collider/Collider; // method@0481 │ │ -017aee: 0c05 |0063: move-result-object v5 │ │ -017af0: 5400 e601 |0064: iget-object v0, v0, Lorg/jsl/wfwt/Channel$ServiceInfo;.connector:Lorg/jsl/collider/Connector; // field@01e6 │ │ -017af4: 6e20 ff01 0500 |0066: invoke-virtual {v5, v0}, Lorg/jsl/collider/Collider;.addConnector:(Lorg/jsl/collider/Connector;)V // method@01ff │ │ -017afa: 5445 e301 |0069: iget-object v5, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -017afe: 5440 e201 |006b: iget-object v0, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.m_serviceName:Ljava/lang/String; // field@01e2 │ │ -017b02: 7120 7304 0500 |006d: invoke-static {v5, v0}, Lorg/jsl/wfwt/Channel;.access$1300:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)V // method@0473 │ │ -017b08: 283a |0070: goto 00aa // +003a │ │ -017b0a: 5445 e301 |0071: iget-object v5, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -017b0e: 7110 8504 0500 |0073: invoke-static {v5}, Lorg/jsl/wfwt/Channel;.access$800:(Lorg/jsl/wfwt/Channel;)Ljava/util/TreeMap; // method@0485 │ │ -017b14: 0c05 |0076: move-result-object v5 │ │ -017b16: 5440 e201 |0077: iget-object v0, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.m_serviceName:Ljava/lang/String; // field@01e2 │ │ -017b1a: 6e20 8101 0500 |0079: invoke-virtual {v5, v0}, Ljava/util/TreeMap;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@0181 │ │ -017b20: 5445 e301 |007c: iget-object v5, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -017b24: 7110 8004 0500 |007e: invoke-static {v5}, Lorg/jsl/wfwt/Channel;.access$400:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/CountDownLatch; // method@0480 │ │ -017b2a: 0c05 |0081: move-result-object v5 │ │ -017b2c: 6e10 8401 0500 |0082: invoke-virtual {v5}, Ljava/util/concurrent/CountDownLatch;.countDown:()V // method@0184 │ │ -017b32: 2825 |0085: goto 00aa // +0025 │ │ -017b34: 2205 6700 |0086: new-instance v5, Ljava/lang/StringBuilder; // type@0067 │ │ -017b38: 7010 c500 0500 |0088: invoke-direct {v5}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -017b3e: 5440 e301 |008b: iget-object v0, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -017b42: 7110 6e04 0000 |008d: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ -017b48: 0c00 |0090: move-result-object v0 │ │ -017b4a: 6e20 cb00 0500 |0091: invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -017b50: 1a00 6000 |0094: const-string v0, ": internal error: service info not found [" // string@0060 │ │ -017b54: 6e20 cb00 0500 |0096: invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -017b5a: 5440 e201 |0099: iget-object v0, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.m_serviceName:Ljava/lang/String; // field@01e2 │ │ -017b5e: 6e20 cb00 0500 |009b: invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -017b64: 1a00 9c03 |009e: const-string v0, "]" // string@039c │ │ -017b68: 6e20 cb00 0500 |00a0: invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -017b6e: 6e10 ce00 0500 |00a3: invoke-virtual {v5}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -017b74: 0c05 |00a6: move-result-object v5 │ │ -017b76: 7120 6600 5100 |00a7: invoke-static {v1, v5}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ -017b7c: 5445 e301 |00aa: iget-object v5, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -017b80: 7110 6f04 0500 |00ac: invoke-static {v5}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ -017b86: 0c05 |00af: move-result-object v5 │ │ -017b88: 6e10 b001 0500 |00b0: invoke-virtual {v5}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -017b8e: 0e00 |00b3: return-void │ │ -017b90: 0d05 |00b4: move-exception v5 │ │ -017b92: 5440 e301 |00b5: iget-object v0, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ -017b96: 7110 6f04 0000 |00b7: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ -017b9c: 0c00 |00ba: move-result-object v0 │ │ -017b9e: 6e10 b001 0000 |00bb: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -017ba4: 2705 |00be: throw v5 │ │ +017a1c: |[017a1c] org.jsl.wfwt.Channel$ResolveListener.onServiceResolved:(Landroid/net/nsd/NsdServiceInfo;)V │ │ +017a2c: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +017a30: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +017a36: 5441 e301 |0005: iget-object v1, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +017a3a: 7110 6e04 0100 |0007: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ +017a40: 0c01 |000a: move-result-object v1 │ │ +017a42: 6e20 cb00 1000 |000b: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +017a48: 1a01 6f00 |000e: const-string v1, ": onServiceResolved: " // string@006f │ │ +017a4c: 6e20 cb00 1000 |0010: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +017a52: 6e20 ca00 5000 |0013: invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ +017a58: 6e10 ce00 0000 |0016: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +017a5e: 0c00 |0019: move-result-object v0 │ │ +017a60: 1a01 aa00 |001a: const-string v1, "Channel" // string@00aa │ │ +017a64: 7120 6400 0100 |001c: invoke-static {v1, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +017a6a: 5440 e301 |001f: iget-object v0, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +017a6e: 7110 6f04 0000 |0021: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ +017a74: 0c00 |0024: move-result-object v0 │ │ +017a76: 6e10 ae01 0000 |0025: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ +017a7c: 5440 e301 |0028: iget-object v0, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +017a80: 7110 8504 0000 |002a: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$800:(Lorg/jsl/wfwt/Channel;)Ljava/util/TreeMap; // method@0485 │ │ +017a86: 0c00 |002d: move-result-object v0 │ │ +017a88: 5442 e201 |002e: iget-object v2, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.m_serviceName:Ljava/lang/String; // field@01e2 │ │ +017a8c: 6e20 7e01 2000 |0030: invoke-virtual {v0, v2}, Ljava/util/TreeMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@017e │ │ +017a92: 0c00 |0033: move-result-object v0 │ │ +017a94: 1f00 1a01 |0034: check-cast v0, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ +017a98: 3800 5000 |0036: if-eqz v0, 0086 // +0050 │ │ +017a9c: 5441 e301 |0038: iget-object v1, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +017aa0: 1202 |003a: const/4 v2, #int 0 // #0 │ │ +017aa2: 7120 8704 2100 |003b: invoke-static {v1, v2}, Lorg/jsl/wfwt/Channel;.access$902:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$ResolveListener;)Lorg/jsl/wfwt/Channel$ResolveListener; // method@0487 │ │ +017aa8: 5441 e301 |003e: iget-object v1, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +017aac: 7110 8004 0100 |0040: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$400:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/CountDownLatch; // method@0480 │ │ +017ab2: 0c01 |0043: move-result-object v1 │ │ +017ab4: 3901 2d00 |0044: if-nez v1, 0071 // +002d │ │ +017ab8: 2201 6e00 |0046: new-instance v1, Ljava/net/InetSocketAddress; // type@006e │ │ +017abc: 6e10 5300 0500 |0048: invoke-virtual {v5}, Landroid/net/nsd/NsdServiceInfo;.getHost:()Ljava/net/InetAddress; // method@0053 │ │ +017ac2: 0c02 |004b: move-result-object v2 │ │ +017ac4: 6e10 5400 0500 |004c: invoke-virtual {v5}, Landroid/net/nsd/NsdServiceInfo;.getPort:()I // method@0054 │ │ +017aca: 0a05 |004f: move-result v5 │ │ +017acc: 7030 e300 2105 |0050: invoke-direct {v1, v2, v5}, Ljava/net/InetSocketAddress;.:(Ljava/net/InetAddress;I)V // method@00e3 │ │ +017ad2: 2205 1701 |0053: new-instance v5, Lorg/jsl/wfwt/Channel$ChannelConnector; // type@0117 │ │ +017ad6: 5442 e301 |0055: iget-object v2, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +017ada: 5443 e201 |0057: iget-object v3, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.m_serviceName:Ljava/lang/String; // field@01e2 │ │ +017ade: 7040 5a04 2531 |0059: invoke-direct {v5, v2, v1, v3}, Lorg/jsl/wfwt/Channel$ChannelConnector;.:(Lorg/jsl/wfwt/Channel;Ljava/net/InetSocketAddress;Ljava/lang/String;)V // method@045a │ │ +017ae4: 5b05 e601 |005c: iput-object v5, v0, Lorg/jsl/wfwt/Channel$ServiceInfo;.connector:Lorg/jsl/collider/Connector; // field@01e6 │ │ +017ae8: 5445 e301 |005e: iget-object v5, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +017aec: 7110 8104 0500 |0060: invoke-static {v5}, Lorg/jsl/wfwt/Channel;.access$500:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/collider/Collider; // method@0481 │ │ +017af2: 0c05 |0063: move-result-object v5 │ │ +017af4: 5400 e601 |0064: iget-object v0, v0, Lorg/jsl/wfwt/Channel$ServiceInfo;.connector:Lorg/jsl/collider/Connector; // field@01e6 │ │ +017af8: 6e20 ff01 0500 |0066: invoke-virtual {v5, v0}, Lorg/jsl/collider/Collider;.addConnector:(Lorg/jsl/collider/Connector;)V // method@01ff │ │ +017afe: 5445 e301 |0069: iget-object v5, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +017b02: 5440 e201 |006b: iget-object v0, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.m_serviceName:Ljava/lang/String; // field@01e2 │ │ +017b06: 7120 7304 0500 |006d: invoke-static {v5, v0}, Lorg/jsl/wfwt/Channel;.access$1300:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)V // method@0473 │ │ +017b0c: 283a |0070: goto 00aa // +003a │ │ +017b0e: 5445 e301 |0071: iget-object v5, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +017b12: 7110 8504 0500 |0073: invoke-static {v5}, Lorg/jsl/wfwt/Channel;.access$800:(Lorg/jsl/wfwt/Channel;)Ljava/util/TreeMap; // method@0485 │ │ +017b18: 0c05 |0076: move-result-object v5 │ │ +017b1a: 5440 e201 |0077: iget-object v0, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.m_serviceName:Ljava/lang/String; // field@01e2 │ │ +017b1e: 6e20 8101 0500 |0079: invoke-virtual {v5, v0}, Ljava/util/TreeMap;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@0181 │ │ +017b24: 5445 e301 |007c: iget-object v5, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +017b28: 7110 8004 0500 |007e: invoke-static {v5}, Lorg/jsl/wfwt/Channel;.access$400:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/CountDownLatch; // method@0480 │ │ +017b2e: 0c05 |0081: move-result-object v5 │ │ +017b30: 6e10 8401 0500 |0082: invoke-virtual {v5}, Ljava/util/concurrent/CountDownLatch;.countDown:()V // method@0184 │ │ +017b36: 2825 |0085: goto 00aa // +0025 │ │ +017b38: 2205 6700 |0086: new-instance v5, Ljava/lang/StringBuilder; // type@0067 │ │ +017b3c: 7010 c500 0500 |0088: invoke-direct {v5}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +017b42: 5440 e301 |008b: iget-object v0, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +017b46: 7110 6e04 0000 |008d: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ +017b4c: 0c00 |0090: move-result-object v0 │ │ +017b4e: 6e20 cb00 0500 |0091: invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +017b54: 1a00 6000 |0094: const-string v0, ": internal error: service info not found [" // string@0060 │ │ +017b58: 6e20 cb00 0500 |0096: invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +017b5e: 5440 e201 |0099: iget-object v0, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.m_serviceName:Ljava/lang/String; // field@01e2 │ │ +017b62: 6e20 cb00 0500 |009b: invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +017b68: 1a00 9c03 |009e: const-string v0, "]" // string@039c │ │ +017b6c: 6e20 cb00 0500 |00a0: invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +017b72: 6e10 ce00 0500 |00a3: invoke-virtual {v5}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +017b78: 0c05 |00a6: move-result-object v5 │ │ +017b7a: 7120 6600 5100 |00a7: invoke-static {v1, v5}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ +017b80: 5445 e301 |00aa: iget-object v5, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +017b84: 7110 6f04 0500 |00ac: invoke-static {v5}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ +017b8a: 0c05 |00af: move-result-object v5 │ │ +017b8c: 6e10 b001 0500 |00b0: invoke-virtual {v5}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +017b92: 0e00 |00b3: return-void │ │ +017b94: 0d05 |00b4: move-exception v5 │ │ +017b96: 5440 e301 |00b5: iget-object v0, v4, Lorg/jsl/wfwt/Channel$ResolveListener;.this$0:Lorg/jsl/wfwt/Channel; // field@01e3 │ │ +017b9a: 7110 6f04 0000 |00b7: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ +017ba0: 0c00 |00ba: move-result-object v0 │ │ +017ba2: 6e10 b001 0000 |00bb: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +017ba8: 2705 |00be: throw v5 │ │ catches : 1 │ │ 0x0028 - 0x00aa │ │ -> 0x00b4 │ │ positions : │ │ 0x0000 line=312 │ │ 0x001f line=313 │ │ 0x0028 line=316 │ │ @@ -10975,17 +10975,17 @@ │ │ type : '()V' │ │ access : 0x10002 (PRIVATE CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -017bb4: |[017bb4] org.jsl.wfwt.Channel$ServiceInfo.:()V │ │ -017bc4: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -017bca: 0e00 |0003: return-void │ │ +017bb8: |[017bb8] org.jsl.wfwt.Channel$ServiceInfo.:()V │ │ +017bc8: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +017bce: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=44 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/jsl/wfwt/Channel$ServiceInfo; │ │ │ │ #1 : (in Lorg/jsl/wfwt/Channel$ServiceInfo;) │ │ @@ -10993,17 +10993,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel$1;)V' │ │ access : 0x11000 (SYNTHETIC CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -017bcc: |[017bcc] org.jsl.wfwt.Channel$ServiceInfo.:(Lorg/jsl/wfwt/Channel$1;)V │ │ -017bdc: 7010 6804 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/Channel$ServiceInfo;.:()V // method@0468 │ │ -017be2: 0e00 |0003: return-void │ │ +017bd0: |[017bd0] org.jsl.wfwt.Channel$ServiceInfo.:(Lorg/jsl/wfwt/Channel$1;)V │ │ +017be0: 7010 6804 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/Channel$ServiceInfo;.:()V // method@0468 │ │ +017be6: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=44 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/jsl/wfwt/Channel$ServiceInfo; │ │ 0x0000 - 0x0004 reg=1 (null) Lorg/jsl/wfwt/Channel$1; │ │ │ │ @@ -11058,20 +11058,20 @@ │ │ type : '(Lorg/jsl/wfwt/ChannelSession;Ljava/lang/String;Ljava/lang/String;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 4 │ │ ins : 4 │ │ outs : 1 │ │ insns size : 10 16-bit code units │ │ -017be4: |[017be4] org.jsl.wfwt.Channel$SessionInfo.:(Lorg/jsl/wfwt/ChannelSession;Ljava/lang/String;Ljava/lang/String;)V │ │ -017bf4: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -017bfa: 5b01 ee01 |0003: iput-object v1, v0, Lorg/jsl/wfwt/Channel$SessionInfo;.channelSession:Lorg/jsl/wfwt/ChannelSession; // field@01ee │ │ -017bfe: 5b02 ed01 |0005: iput-object v2, v0, Lorg/jsl/wfwt/Channel$SessionInfo;.addr:Ljava/lang/String; // field@01ed │ │ -017c02: 5b03 f101 |0007: iput-object v3, v0, Lorg/jsl/wfwt/Channel$SessionInfo;.stationName:Ljava/lang/String; // field@01f1 │ │ -017c06: 0e00 |0009: return-void │ │ +017be8: |[017be8] org.jsl.wfwt.Channel$SessionInfo.:(Lorg/jsl/wfwt/ChannelSession;Ljava/lang/String;Ljava/lang/String;)V │ │ +017bf8: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +017bfe: 5b01 ee01 |0003: iput-object v1, v0, Lorg/jsl/wfwt/Channel$SessionInfo;.channelSession:Lorg/jsl/wfwt/ChannelSession; // field@01ee │ │ +017c02: 5b02 ed01 |0005: iput-object v2, v0, Lorg/jsl/wfwt/Channel$SessionInfo;.addr:Ljava/lang/String; // field@01ed │ │ +017c06: 5b03 f101 |0007: iput-object v3, v0, Lorg/jsl/wfwt/Channel$SessionInfo;.stationName:Ljava/lang/String; // field@01f1 │ │ +017c0a: 0e00 |0009: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=66 │ │ 0x0003 line=67 │ │ 0x0005 line=68 │ │ 0x0007 line=69 │ │ locals : │ │ @@ -11237,50 +11237,50 @@ │ │ type : '(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/jsl/collider/Collider;Landroid/net/nsd/NsdManager;Ljava/lang/String;Ljava/lang/String;Lorg/jsl/wfwt/SessionManager;Lorg/jsl/collider/TimerQueue;I)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 11 │ │ ins : 11 │ │ outs : 3 │ │ insns size : 72 16-bit code units │ │ -018650: |[018650] org.jsl.wfwt.Channel.:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/jsl/collider/Collider;Landroid/net/nsd/NsdManager;Ljava/lang/String;Ljava/lang/String;Lorg/jsl/wfwt/SessionManager;Lorg/jsl/collider/TimerQueue;I)V │ │ -018660: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -018666: 5b01 f601 |0003: iput-object v1, v0, Lorg/jsl/wfwt/Channel;.m_deviceID:Ljava/lang/String; // field@01f6 │ │ -01866a: 5b02 0402 |0005: iput-object v2, v0, Lorg/jsl/wfwt/Channel;.m_stationName:Ljava/lang/String; // field@0204 │ │ -01866e: 5b03 f401 |0007: iput-object v3, v0, Lorg/jsl/wfwt/Channel;.m_audioFormat:Ljava/lang/String; // field@01f4 │ │ -018672: 5b04 f501 |0009: iput-object v4, v0, Lorg/jsl/wfwt/Channel;.m_collider:Lorg/jsl/collider/Collider; // field@01f5 │ │ -018676: 5b05 fa01 |000b: iput-object v5, v0, Lorg/jsl/wfwt/Channel;.m_nsdManager:Landroid/net/nsd/NsdManager; // field@01fa │ │ -01867a: 5b06 0002 |000d: iput-object v6, v0, Lorg/jsl/wfwt/Channel;.m_serviceType:Ljava/lang/String; // field@0200 │ │ -01867e: 5b07 f901 |000f: iput-object v7, v0, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ -018682: 5b08 0102 |0011: iput-object v8, v0, Lorg/jsl/wfwt/Channel;.m_sessionManager:Lorg/jsl/wfwt/SessionManager; // field@0201 │ │ -018686: 5b09 0602 |0013: iput-object v9, v0, Lorg/jsl/wfwt/Channel;.m_timerQueue:Lorg/jsl/collider/TimerQueue; // field@0206 │ │ -01868a: 590a fb01 |0015: iput v10, v0, Lorg/jsl/wfwt/Channel;.m_pingInterval:I // field@01fb │ │ -01868e: 2201 9800 |0017: new-instance v1, Ljava/util/TreeMap; // type@0098 │ │ -018692: 7010 7a01 0100 |0019: invoke-direct {v1}, Ljava/util/TreeMap;.:()V // method@017a │ │ -018698: 5b01 fe01 |001c: iput-object v1, v0, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ -01869c: 2201 9300 |001e: new-instance v1, Ljava/util/LinkedHashMap; // type@0093 │ │ -0186a0: 7010 6401 0100 |0020: invoke-direct {v1}, Ljava/util/LinkedHashMap;.:()V // method@0164 │ │ -0186a6: 5b01 0202 |0023: iput-object v1, v0, Lorg/jsl/wfwt/Channel;.m_sessions:Ljava/util/LinkedHashMap; // field@0202 │ │ -0186aa: 2201 a400 |0025: new-instance v1, Ljava/util/concurrent/locks/ReentrantLock; // type@00a4 │ │ -0186ae: 7010 ad01 0100 |0027: invoke-direct {v1}, Ljava/util/concurrent/locks/ReentrantLock;.:()V // method@01ad │ │ -0186b4: 5b01 f801 |002a: iput-object v1, v0, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -0186b8: 2201 1601 |002c: new-instance v1, Lorg/jsl/wfwt/Channel$ChannelAcceptor; // type@0116 │ │ -0186bc: 1202 |002e: const/4 v2, #int 0 // #0 │ │ -0186be: 7030 5704 0102 |002f: invoke-direct {v1, v0, v2}, Lorg/jsl/wfwt/Channel$ChannelAcceptor;.:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$1;)V // method@0457 │ │ -0186c4: 5b01 f301 |0032: iput-object v1, v0, Lorg/jsl/wfwt/Channel;.m_acceptor:Lorg/jsl/wfwt/Channel$ChannelAcceptor; // field@01f3 │ │ -0186c8: 12f3 |0034: const/4 v3, #int -1 // #ff │ │ -0186ca: 5903 f701 |0035: iput v3, v0, Lorg/jsl/wfwt/Channel;.m_localPort:I // field@01f7 │ │ -0186ce: 6e20 fe01 1400 |0037: invoke-virtual {v4, v1}, Lorg/jsl/collider/Collider;.addAcceptor:(Lorg/jsl/collider/Acceptor;)V // method@01fe │ │ -0186d4: 280d |003a: goto 0047 // +000d │ │ -0186d6: 0d01 |003b: move-exception v1 │ │ -0186d8: 1a03 aa00 |003c: const-string v3, "Channel" // string@00aa │ │ -0186dc: 6e10 9200 0100 |003e: invoke-virtual {v1}, Ljava/io/IOException;.toString:()Ljava/lang/String; // method@0092 │ │ -0186e2: 0c01 |0041: move-result-object v1 │ │ -0186e4: 7120 6100 1300 |0042: invoke-static {v3, v1}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -0186ea: 5b02 f301 |0045: iput-object v2, v0, Lorg/jsl/wfwt/Channel;.m_acceptor:Lorg/jsl/wfwt/Channel$ChannelAcceptor; // field@01f3 │ │ -0186ee: 0e00 |0047: return-void │ │ +018654: |[018654] org.jsl.wfwt.Channel.:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/jsl/collider/Collider;Landroid/net/nsd/NsdManager;Ljava/lang/String;Ljava/lang/String;Lorg/jsl/wfwt/SessionManager;Lorg/jsl/collider/TimerQueue;I)V │ │ +018664: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01866a: 5b01 f601 |0003: iput-object v1, v0, Lorg/jsl/wfwt/Channel;.m_deviceID:Ljava/lang/String; // field@01f6 │ │ +01866e: 5b02 0402 |0005: iput-object v2, v0, Lorg/jsl/wfwt/Channel;.m_stationName:Ljava/lang/String; // field@0204 │ │ +018672: 5b03 f401 |0007: iput-object v3, v0, Lorg/jsl/wfwt/Channel;.m_audioFormat:Ljava/lang/String; // field@01f4 │ │ +018676: 5b04 f501 |0009: iput-object v4, v0, Lorg/jsl/wfwt/Channel;.m_collider:Lorg/jsl/collider/Collider; // field@01f5 │ │ +01867a: 5b05 fa01 |000b: iput-object v5, v0, Lorg/jsl/wfwt/Channel;.m_nsdManager:Landroid/net/nsd/NsdManager; // field@01fa │ │ +01867e: 5b06 0002 |000d: iput-object v6, v0, Lorg/jsl/wfwt/Channel;.m_serviceType:Ljava/lang/String; // field@0200 │ │ +018682: 5b07 f901 |000f: iput-object v7, v0, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ +018686: 5b08 0102 |0011: iput-object v8, v0, Lorg/jsl/wfwt/Channel;.m_sessionManager:Lorg/jsl/wfwt/SessionManager; // field@0201 │ │ +01868a: 5b09 0602 |0013: iput-object v9, v0, Lorg/jsl/wfwt/Channel;.m_timerQueue:Lorg/jsl/collider/TimerQueue; // field@0206 │ │ +01868e: 590a fb01 |0015: iput v10, v0, Lorg/jsl/wfwt/Channel;.m_pingInterval:I // field@01fb │ │ +018692: 2201 9800 |0017: new-instance v1, Ljava/util/TreeMap; // type@0098 │ │ +018696: 7010 7a01 0100 |0019: invoke-direct {v1}, Ljava/util/TreeMap;.:()V // method@017a │ │ +01869c: 5b01 fe01 |001c: iput-object v1, v0, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ +0186a0: 2201 9300 |001e: new-instance v1, Ljava/util/LinkedHashMap; // type@0093 │ │ +0186a4: 7010 6401 0100 |0020: invoke-direct {v1}, Ljava/util/LinkedHashMap;.:()V // method@0164 │ │ +0186aa: 5b01 0202 |0023: iput-object v1, v0, Lorg/jsl/wfwt/Channel;.m_sessions:Ljava/util/LinkedHashMap; // field@0202 │ │ +0186ae: 2201 a400 |0025: new-instance v1, Ljava/util/concurrent/locks/ReentrantLock; // type@00a4 │ │ +0186b2: 7010 ad01 0100 |0027: invoke-direct {v1}, Ljava/util/concurrent/locks/ReentrantLock;.:()V // method@01ad │ │ +0186b8: 5b01 f801 |002a: iput-object v1, v0, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +0186bc: 2201 1601 |002c: new-instance v1, Lorg/jsl/wfwt/Channel$ChannelAcceptor; // type@0116 │ │ +0186c0: 1202 |002e: const/4 v2, #int 0 // #0 │ │ +0186c2: 7030 5704 0102 |002f: invoke-direct {v1, v0, v2}, Lorg/jsl/wfwt/Channel$ChannelAcceptor;.:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$1;)V // method@0457 │ │ +0186c8: 5b01 f301 |0032: iput-object v1, v0, Lorg/jsl/wfwt/Channel;.m_acceptor:Lorg/jsl/wfwt/Channel$ChannelAcceptor; // field@01f3 │ │ +0186cc: 12f3 |0034: const/4 v3, #int -1 // #ff │ │ +0186ce: 5903 f701 |0035: iput v3, v0, Lorg/jsl/wfwt/Channel;.m_localPort:I // field@01f7 │ │ +0186d2: 6e20 fe01 1400 |0037: invoke-virtual {v4, v1}, Lorg/jsl/collider/Collider;.addAcceptor:(Lorg/jsl/collider/Acceptor;)V // method@01fe │ │ +0186d8: 280d |003a: goto 0047 // +000d │ │ +0186da: 0d01 |003b: move-exception v1 │ │ +0186dc: 1a03 aa00 |003c: const-string v3, "Channel" // string@00aa │ │ +0186e0: 6e10 9200 0100 |003e: invoke-virtual {v1}, Ljava/io/IOException;.toString:()Ljava/lang/String; // method@0092 │ │ +0186e6: 0c01 |0041: move-result-object v1 │ │ +0186e8: 7120 6100 1300 |0042: invoke-static {v3, v1}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +0186ee: 5b02 f301 |0045: iput-object v2, v0, Lorg/jsl/wfwt/Channel;.m_acceptor:Lorg/jsl/wfwt/Channel$ChannelAcceptor; // field@01f3 │ │ +0186f2: 0e00 |0047: return-void │ │ catches : 1 │ │ 0x0037 - 0x003a │ │ Ljava/io/IOException; -> 0x003b │ │ positions : │ │ 0x0000 line=625 │ │ 0x0003 line=626 │ │ 0x0005 line=627 │ │ @@ -11318,17 +11318,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;)Ljava/lang/String;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01826c: |[01826c] org.jsl.wfwt.Channel.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; │ │ -01827c: 5400 f901 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ -018280: 1100 |0002: return-object v0 │ │ +018270: |[018270] org.jsl.wfwt.Channel.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; │ │ +018280: 5400 f901 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ +018284: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ │ │ #2 : (in Lorg/jsl/wfwt/Channel;) │ │ @@ -11336,17 +11336,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01835c: |[01835c] org.jsl.wfwt.Channel.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; │ │ -01836c: 5400 f801 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -018370: 1100 |0002: return-object v0 │ │ +018360: |[018360] org.jsl.wfwt.Channel.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; │ │ +018370: 5400 f801 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +018374: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ │ │ #3 : (in Lorg/jsl/wfwt/Channel;) │ │ @@ -11354,17 +11354,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;)Landroid/net/nsd/NsdManager;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -018224: |[018224] org.jsl.wfwt.Channel.access$1000:(Lorg/jsl/wfwt/Channel;)Landroid/net/nsd/NsdManager; │ │ -018234: 5400 fa01 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_nsdManager:Landroid/net/nsd/NsdManager; // field@01fa │ │ -018238: 1100 |0002: return-object v0 │ │ +018228: |[018228] org.jsl.wfwt.Channel.access$1000:(Lorg/jsl/wfwt/Channel;)Landroid/net/nsd/NsdManager; │ │ +018238: 5400 fa01 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_nsdManager:Landroid/net/nsd/NsdManager; // field@01fa │ │ +01823c: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ │ │ #4 : (in Lorg/jsl/wfwt/Channel;) │ │ @@ -11372,17 +11372,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$StateListener;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -018434: |[018434] org.jsl.wfwt.Channel.access$1100:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$StateListener; │ │ -018444: 5400 0302 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ -018448: 1100 |0002: return-object v0 │ │ +018438: |[018438] org.jsl.wfwt.Channel.access$1100:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$StateListener; │ │ +018448: 5400 0302 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ +01844c: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ │ │ #5 : (in Lorg/jsl/wfwt/Channel;) │ │ @@ -11390,18 +11390,18 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;)[Lorg/jsl/wfwt/StationInfo;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 5 16-bit code units │ │ -018464: |[018464] org.jsl.wfwt.Channel.access$1200:(Lorg/jsl/wfwt/Channel;)[Lorg/jsl/wfwt/StationInfo; │ │ -018474: 7010 8a04 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ -01847a: 0c00 |0003: move-result-object v0 │ │ -01847c: 1100 |0004: return-object v0 │ │ +018468: |[018468] org.jsl.wfwt.Channel.access$1200:(Lorg/jsl/wfwt/Channel;)[Lorg/jsl/wfwt/StationInfo; │ │ +018478: 7010 8a04 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ +01847e: 0c00 |0003: move-result-object v0 │ │ +018480: 1100 |0004: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0005 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ │ │ #6 : (in Lorg/jsl/wfwt/Channel;) │ │ @@ -11409,17 +11409,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)V' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 4 16-bit code units │ │ -0186fc: |[0186fc] org.jsl.wfwt.Channel.access$1300:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)V │ │ -01870c: 7020 8e04 1000 |0000: invoke-direct {v0, v1}, Lorg/jsl/wfwt/Channel;.resolveNextLocked:(Ljava/lang/String;)V // method@048e │ │ -018712: 0e00 |0003: return-void │ │ +018700: |[018700] org.jsl.wfwt.Channel.access$1300:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)V │ │ +018710: 7020 8e04 1000 |0000: invoke-direct {v0, v1}, Lorg/jsl/wfwt/Channel;.resolveNextLocked:(Ljava/lang/String;)V // method@048e │ │ +018716: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ 0x0000 - 0x0004 reg=1 (null) Ljava/lang/String; │ │ │ │ @@ -11428,17 +11428,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;)Ljava/lang/String;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -018284: |[018284] org.jsl.wfwt.Channel.access$1400:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; │ │ -018294: 5400 f401 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_audioFormat:Ljava/lang/String; // field@01f4 │ │ -018298: 1100 |0002: return-object v0 │ │ +018288: |[018288] org.jsl.wfwt.Channel.access$1400:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; │ │ +018298: 5400 f401 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_audioFormat:Ljava/lang/String; // field@01f4 │ │ +01829c: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ │ │ #8 : (in Lorg/jsl/wfwt/Channel;) │ │ @@ -11446,17 +11446,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;)Ljava/lang/String;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01829c: |[01829c] org.jsl.wfwt.Channel.access$1500:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; │ │ -0182ac: 5400 0402 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_stationName:Ljava/lang/String; // field@0204 │ │ -0182b0: 1100 |0002: return-object v0 │ │ +0182a0: |[0182a0] org.jsl.wfwt.Channel.access$1500:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; │ │ +0182b0: 5400 0402 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_stationName:Ljava/lang/String; // field@0204 │ │ +0182b4: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ │ │ #9 : (in Lorg/jsl/wfwt/Channel;) │ │ @@ -11464,17 +11464,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/SessionManager;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01844c: |[01844c] org.jsl.wfwt.Channel.access$1600:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/SessionManager; │ │ -01845c: 5400 0102 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_sessionManager:Lorg/jsl/wfwt/SessionManager; // field@0201 │ │ -018460: 1100 |0002: return-object v0 │ │ +018450: |[018450] org.jsl.wfwt.Channel.access$1600:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/SessionManager; │ │ +018460: 5400 0102 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_sessionManager:Lorg/jsl/wfwt/SessionManager; // field@0201 │ │ +018464: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ │ │ #10 : (in Lorg/jsl/wfwt/Channel;) │ │ @@ -11482,17 +11482,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;)Lorg/jsl/collider/TimerQueue;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01838c: |[01838c] org.jsl.wfwt.Channel.access$1700:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/collider/TimerQueue; │ │ -01839c: 5400 0602 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_timerQueue:Lorg/jsl/collider/TimerQueue; // field@0206 │ │ -0183a0: 1100 |0002: return-object v0 │ │ +018390: |[018390] org.jsl.wfwt.Channel.access$1700:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/collider/TimerQueue; │ │ +0183a0: 5400 0602 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_timerQueue:Lorg/jsl/collider/TimerQueue; // field@0206 │ │ +0183a4: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ │ │ #11 : (in Lorg/jsl/wfwt/Channel;) │ │ @@ -11500,17 +11500,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;)I' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01823c: |[01823c] org.jsl.wfwt.Channel.access$1800:(Lorg/jsl/wfwt/Channel;)I │ │ -01824c: 5200 fb01 |0000: iget v0, v0, Lorg/jsl/wfwt/Channel;.m_pingInterval:I // field@01fb │ │ -018250: 0f00 |0002: return v0 │ │ +018240: |[018240] org.jsl.wfwt.Channel.access$1800:(Lorg/jsl/wfwt/Channel;)I │ │ +018250: 5200 fb01 |0000: iget v0, v0, Lorg/jsl/wfwt/Channel;.m_pingInterval:I // field@01fb │ │ +018254: 0f00 |0002: return v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ │ │ #12 : (in Lorg/jsl/wfwt/Channel;) │ │ @@ -11518,17 +11518,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;I)I' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -018254: |[018254] org.jsl.wfwt.Channel.access$1902:(Lorg/jsl/wfwt/Channel;I)I │ │ -018264: 5901 f701 |0000: iput v1, v0, Lorg/jsl/wfwt/Channel;.m_localPort:I // field@01f7 │ │ -018268: 0f01 |0002: return v1 │ │ +018258: |[018258] org.jsl.wfwt.Channel.access$1902:(Lorg/jsl/wfwt/Channel;I)I │ │ +018268: 5901 f701 |0000: iput v1, v0, Lorg/jsl/wfwt/Channel;.m_localPort:I // field@01f7 │ │ +01826c: 0f01 |0002: return v1 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ 0x0000 - 0x0003 reg=1 (null) I │ │ │ │ @@ -11537,17 +11537,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$RegistrationListener;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -0183d4: |[0183d4] org.jsl.wfwt.Channel.access$200:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$RegistrationListener; │ │ -0183e4: 5400 fc01 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_registrationListener:Lorg/jsl/wfwt/Channel$RegistrationListener; // field@01fc │ │ -0183e8: 1100 |0002: return-object v0 │ │ +0183d8: |[0183d8] org.jsl.wfwt.Channel.access$200:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$RegistrationListener; │ │ +0183e8: 5400 fc01 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_registrationListener:Lorg/jsl/wfwt/Channel$RegistrationListener; // field@01fc │ │ +0183ec: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ │ │ #14 : (in Lorg/jsl/wfwt/Channel;) │ │ @@ -11555,17 +11555,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;)Ljava/lang/String;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -0182b4: |[0182b4] org.jsl.wfwt.Channel.access$2000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; │ │ -0182c4: 5400 f601 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_deviceID:Ljava/lang/String; // field@01f6 │ │ -0182c8: 1100 |0002: return-object v0 │ │ +0182b8: |[0182b8] org.jsl.wfwt.Channel.access$2000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; │ │ +0182c8: 5400 f601 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_deviceID:Ljava/lang/String; // field@01f6 │ │ +0182cc: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ │ │ #15 : (in Lorg/jsl/wfwt/Channel;) │ │ @@ -11573,17 +11573,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$RegistrationListener;)Lorg/jsl/wfwt/Channel$RegistrationListener;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -0183ec: |[0183ec] org.jsl.wfwt.Channel.access$202:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$RegistrationListener;)Lorg/jsl/wfwt/Channel$RegistrationListener; │ │ -0183fc: 5b01 fc01 |0000: iput-object v1, v0, Lorg/jsl/wfwt/Channel;.m_registrationListener:Lorg/jsl/wfwt/Channel$RegistrationListener; // field@01fc │ │ -018400: 1101 |0002: return-object v1 │ │ +0183f0: |[0183f0] org.jsl.wfwt.Channel.access$202:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$RegistrationListener;)Lorg/jsl/wfwt/Channel$RegistrationListener; │ │ +018400: 5b01 fc01 |0000: iput-object v1, v0, Lorg/jsl/wfwt/Channel;.m_registrationListener:Lorg/jsl/wfwt/Channel$RegistrationListener; // field@01fc │ │ +018404: 1101 |0002: return-object v1 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ 0x0000 - 0x0003 reg=1 (null) Lorg/jsl/wfwt/Channel$RegistrationListener; │ │ │ │ @@ -11592,17 +11592,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;)Ljava/lang/String;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -0182cc: |[0182cc] org.jsl.wfwt.Channel.access$2100:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; │ │ -0182dc: 5400 0002 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_serviceType:Ljava/lang/String; // field@0200 │ │ -0182e0: 1100 |0002: return-object v0 │ │ +0182d0: |[0182d0] org.jsl.wfwt.Channel.access$2100:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; │ │ +0182e0: 5400 0002 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_serviceType:Ljava/lang/String; // field@0200 │ │ +0182e4: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ │ │ #17 : (in Lorg/jsl/wfwt/Channel;) │ │ @@ -11610,17 +11610,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$ChannelAcceptor;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -0183a4: |[0183a4] org.jsl.wfwt.Channel.access$300:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$ChannelAcceptor; │ │ -0183b4: 5400 f301 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_acceptor:Lorg/jsl/wfwt/Channel$ChannelAcceptor; // field@01f3 │ │ -0183b8: 1100 |0002: return-object v0 │ │ +0183a8: |[0183a8] org.jsl.wfwt.Channel.access$300:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$ChannelAcceptor; │ │ +0183b8: 5400 f301 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_acceptor:Lorg/jsl/wfwt/Channel$ChannelAcceptor; // field@01f3 │ │ +0183bc: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ │ │ #18 : (in Lorg/jsl/wfwt/Channel;) │ │ @@ -11628,17 +11628,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$ChannelAcceptor;)Lorg/jsl/wfwt/Channel$ChannelAcceptor;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -0183bc: |[0183bc] org.jsl.wfwt.Channel.access$302:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$ChannelAcceptor;)Lorg/jsl/wfwt/Channel$ChannelAcceptor; │ │ -0183cc: 5b01 f301 |0000: iput-object v1, v0, Lorg/jsl/wfwt/Channel;.m_acceptor:Lorg/jsl/wfwt/Channel$ChannelAcceptor; // field@01f3 │ │ -0183d0: 1101 |0002: return-object v1 │ │ +0183c0: |[0183c0] org.jsl.wfwt.Channel.access$302:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$ChannelAcceptor;)Lorg/jsl/wfwt/Channel$ChannelAcceptor; │ │ +0183d0: 5b01 f301 |0000: iput-object v1, v0, Lorg/jsl/wfwt/Channel;.m_acceptor:Lorg/jsl/wfwt/Channel$ChannelAcceptor; // field@01f3 │ │ +0183d4: 1101 |0002: return-object v1 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ 0x0000 - 0x0003 reg=1 (null) Lorg/jsl/wfwt/Channel$ChannelAcceptor; │ │ │ │ @@ -11647,17 +11647,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/CountDownLatch;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -018344: |[018344] org.jsl.wfwt.Channel.access$400:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/CountDownLatch; │ │ -018354: 5400 0502 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_stopLatch:Ljava/util/concurrent/CountDownLatch; // field@0205 │ │ -018358: 1100 |0002: return-object v0 │ │ +018348: |[018348] org.jsl.wfwt.Channel.access$400:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/CountDownLatch; │ │ +018358: 5400 0502 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_stopLatch:Ljava/util/concurrent/CountDownLatch; // field@0205 │ │ +01835c: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ │ │ #20 : (in Lorg/jsl/wfwt/Channel;) │ │ @@ -11665,17 +11665,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;)Lorg/jsl/collider/Collider;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -018374: |[018374] org.jsl.wfwt.Channel.access$500:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/collider/Collider; │ │ -018384: 5400 f501 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_collider:Lorg/jsl/collider/Collider; // field@01f5 │ │ -018388: 1100 |0002: return-object v0 │ │ +018378: |[018378] org.jsl.wfwt.Channel.access$500:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/collider/Collider; │ │ +018388: 5400 f501 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_collider:Lorg/jsl/collider/Collider; // field@01f5 │ │ +01838c: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ │ │ #21 : (in Lorg/jsl/wfwt/Channel;) │ │ @@ -11683,17 +11683,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;)Ljava/lang/String;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -0182e4: |[0182e4] org.jsl.wfwt.Channel.access$600:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; │ │ -0182f4: 5400 ff01 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_serviceName:Ljava/lang/String; // field@01ff │ │ -0182f8: 1100 |0002: return-object v0 │ │ +0182e8: |[0182e8] org.jsl.wfwt.Channel.access$600:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; │ │ +0182f8: 5400 ff01 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_serviceName:Ljava/lang/String; // field@01ff │ │ +0182fc: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ │ │ #22 : (in Lorg/jsl/wfwt/Channel;) │ │ @@ -11701,17 +11701,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)Ljava/lang/String;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -0182fc: |[0182fc] org.jsl.wfwt.Channel.access$602:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)Ljava/lang/String; │ │ -01830c: 5b01 ff01 |0000: iput-object v1, v0, Lorg/jsl/wfwt/Channel;.m_serviceName:Ljava/lang/String; // field@01ff │ │ -018310: 1101 |0002: return-object v1 │ │ +018300: |[018300] org.jsl.wfwt.Channel.access$602:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)Ljava/lang/String; │ │ +018310: 5b01 ff01 |0000: iput-object v1, v0, Lorg/jsl/wfwt/Channel;.m_serviceName:Ljava/lang/String; // field@01ff │ │ +018314: 1101 |0002: return-object v1 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ 0x0000 - 0x0003 reg=1 (null) Ljava/lang/String; │ │ │ │ @@ -11720,17 +11720,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;)V' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -018714: |[018714] org.jsl.wfwt.Channel.access$700:(Lorg/jsl/wfwt/Channel;)V │ │ -018724: 7010 9604 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/Channel;.updateStateLocked:()V // method@0496 │ │ -01872a: 0e00 |0003: return-void │ │ +018718: |[018718] org.jsl.wfwt.Channel.access$700:(Lorg/jsl/wfwt/Channel;)V │ │ +018728: 7010 9604 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/Channel;.updateStateLocked:()V // method@0496 │ │ +01872e: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ │ │ #24 : (in Lorg/jsl/wfwt/Channel;) │ │ @@ -11738,17 +11738,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;)Ljava/util/TreeMap;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01832c: |[01832c] org.jsl.wfwt.Channel.access$800:(Lorg/jsl/wfwt/Channel;)Ljava/util/TreeMap; │ │ -01833c: 5400 fe01 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ -018340: 1100 |0002: return-object v0 │ │ +018330: |[018330] org.jsl.wfwt.Channel.access$800:(Lorg/jsl/wfwt/Channel;)Ljava/util/TreeMap; │ │ +018340: 5400 fe01 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ +018344: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ │ │ #25 : (in Lorg/jsl/wfwt/Channel;) │ │ @@ -11756,17 +11756,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$ResolveListener;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -018404: |[018404] org.jsl.wfwt.Channel.access$900:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$ResolveListener; │ │ -018414: 5400 fd01 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_resolveListener:Lorg/jsl/wfwt/Channel$ResolveListener; // field@01fd │ │ -018418: 1100 |0002: return-object v0 │ │ +018408: |[018408] org.jsl.wfwt.Channel.access$900:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$ResolveListener; │ │ +018418: 5400 fd01 |0000: iget-object v0, v0, Lorg/jsl/wfwt/Channel;.m_resolveListener:Lorg/jsl/wfwt/Channel$ResolveListener; // field@01fd │ │ +01841c: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ │ │ #26 : (in Lorg/jsl/wfwt/Channel;) │ │ @@ -11774,17 +11774,17 @@ │ │ type : '(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$ResolveListener;)Lorg/jsl/wfwt/Channel$ResolveListener;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01841c: |[01841c] org.jsl.wfwt.Channel.access$902:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$ResolveListener;)Lorg/jsl/wfwt/Channel$ResolveListener; │ │ -01842c: 5b01 fd01 |0000: iput-object v1, v0, Lorg/jsl/wfwt/Channel;.m_resolveListener:Lorg/jsl/wfwt/Channel$ResolveListener; // field@01fd │ │ -018430: 1101 |0002: return-object v1 │ │ +018420: |[018420] org.jsl.wfwt.Channel.access$902:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$ResolveListener;)Lorg/jsl/wfwt/Channel$ResolveListener; │ │ +018430: 5b01 fd01 |0000: iput-object v1, v0, Lorg/jsl/wfwt/Channel;.m_resolveListener:Lorg/jsl/wfwt/Channel$ResolveListener; // field@01fd │ │ +018434: 1101 |0002: return-object v1 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=34 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/Channel; │ │ 0x0000 - 0x0003 reg=1 (null) Lorg/jsl/wfwt/Channel$ResolveListener; │ │ │ │ @@ -11793,132 +11793,132 @@ │ │ type : '()[Lorg/jsl/wfwt/StationInfo;' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 14 │ │ ins : 1 │ │ outs : 7 │ │ insns size : 224 16-bit code units │ │ -018480: |[018480] org.jsl.wfwt.Channel.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; │ │ -018490: 54d0 ff01 |0000: iget-object v0, v13, Lorg/jsl/wfwt/Channel;.m_serviceName:Ljava/lang/String; // field@01ff │ │ -018494: 1201 |0002: const/4 v1, #int 0 // #0 │ │ -018496: 3900 0500 |0003: if-nez v0, 0008 // +0005 │ │ -01849a: 2310 6601 |0005: new-array v0, v1, [Lorg/jsl/wfwt/StationInfo; // type@0166 │ │ -01849e: 1100 |0007: return-object v0 │ │ -0184a0: 54d0 fe01 |0008: iget-object v0, v13, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ -0184a4: 6e10 7b01 0000 |000a: invoke-virtual {v0}, Ljava/util/TreeMap;.entrySet:()Ljava/util/Set; // method@017b │ │ -0184aa: 0c00 |000d: move-result-object v0 │ │ -0184ac: 7210 7801 0000 |000e: invoke-interface {v0}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@0178 │ │ -0184b2: 0c00 |0011: move-result-object v0 │ │ -0184b4: 1202 |0012: const/4 v2, #int 0 // #0 │ │ -0184b6: 7210 6101 0000 |0013: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@0161 │ │ -0184bc: 0a03 |0016: move-result v3 │ │ -0184be: 3803 2300 |0017: if-eqz v3, 003a // +0023 │ │ -0184c2: 7210 6201 0000 |0019: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0162 │ │ -0184c8: 0c03 |001c: move-result-object v3 │ │ -0184ca: 1f03 9400 |001d: check-cast v3, Ljava/util/Map$Entry; // type@0094 │ │ -0184ce: 54d4 ff01 |001f: iget-object v4, v13, Lorg/jsl/wfwt/Channel;.m_serviceName:Ljava/lang/String; // field@01ff │ │ -0184d2: 7210 6a01 0300 |0021: invoke-interface {v3}, Ljava/util/Map$Entry;.getKey:()Ljava/lang/Object; // method@016a │ │ -0184d8: 0c05 |0024: move-result-object v5 │ │ -0184da: 1f05 6600 |0025: check-cast v5, Ljava/lang/String; // type@0066 │ │ -0184de: 6e20 bb00 5400 |0027: invoke-virtual {v4, v5}, Ljava/lang/String;.compareTo:(Ljava/lang/String;)I // method@00bb │ │ -0184e4: 0a04 |002a: move-result v4 │ │ -0184e6: 3d04 e8ff |002b: if-lez v4, 0013 // -0018 │ │ -0184ea: 7210 6b01 0300 |002d: invoke-interface {v3}, Ljava/util/Map$Entry;.getValue:()Ljava/lang/Object; // method@016b │ │ -0184f0: 0c03 |0030: move-result-object v3 │ │ -0184f2: 1f03 1a01 |0031: check-cast v3, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ -0184f6: 5433 e501 |0033: iget-object v3, v3, Lorg/jsl/wfwt/Channel$ServiceInfo;.channelSession:Lorg/jsl/wfwt/ChannelSession; // field@01e5 │ │ -0184fa: 3803 deff |0035: if-eqz v3, 0013 // -0022 │ │ -0184fe: d802 0201 |0037: add-int/lit8 v2, v2, #int 1 // #01 │ │ -018502: 28da |0039: goto 0013 // -0026 │ │ -018504: 54d0 0202 |003a: iget-object v0, v13, Lorg/jsl/wfwt/Channel;.m_sessions:Ljava/util/LinkedHashMap; // field@0202 │ │ -018508: 6e10 6501 0000 |003c: invoke-virtual {v0}, Ljava/util/LinkedHashMap;.entrySet:()Ljava/util/Set; // method@0165 │ │ -01850e: 0c00 |003f: move-result-object v0 │ │ -018510: 7210 7801 0000 |0040: invoke-interface {v0}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@0178 │ │ -018516: 0c00 |0043: move-result-object v0 │ │ -018518: 7210 6101 0000 |0044: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@0161 │ │ -01851e: 0a03 |0047: move-result v3 │ │ -018520: 3803 1500 |0048: if-eqz v3, 005d // +0015 │ │ -018524: 7210 6201 0000 |004a: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0162 │ │ -01852a: 0c03 |004d: move-result-object v3 │ │ -01852c: 1f03 9400 |004e: check-cast v3, Ljava/util/Map$Entry; // type@0094 │ │ -018530: 7210 6b01 0300 |0050: invoke-interface {v3}, Ljava/util/Map$Entry;.getValue:()Ljava/lang/Object; // method@016b │ │ -018536: 0c03 |0053: move-result-object v3 │ │ -018538: 1f03 1b01 |0054: check-cast v3, Lorg/jsl/wfwt/Channel$SessionInfo; // type@011b │ │ -01853c: 5433 f101 |0056: iget-object v3, v3, Lorg/jsl/wfwt/Channel$SessionInfo;.stationName:Ljava/lang/String; // field@01f1 │ │ -018540: 3803 ecff |0058: if-eqz v3, 0044 // -0014 │ │ -018544: d802 0201 |005a: add-int/lit8 v2, v2, #int 1 // #01 │ │ -018548: 28e8 |005c: goto 0044 // -0018 │ │ -01854a: 2320 6601 |005d: new-array v0, v2, [Lorg/jsl/wfwt/StationInfo; // type@0166 │ │ -01854e: 54d2 fe01 |005f: iget-object v2, v13, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ -018552: 6e10 7b01 0200 |0061: invoke-virtual {v2}, Ljava/util/TreeMap;.entrySet:()Ljava/util/Set; // method@017b │ │ -018558: 0c02 |0064: move-result-object v2 │ │ -01855a: 7210 7801 0200 |0065: invoke-interface {v2}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@0178 │ │ -018560: 0c02 |0068: move-result-object v2 │ │ -018562: 7210 6101 0200 |0069: invoke-interface {v2}, Ljava/util/Iterator;.hasNext:()Z // method@0161 │ │ -018568: 0a03 |006c: move-result v3 │ │ -01856a: 3803 3c00 |006d: if-eqz v3, 00a9 // +003c │ │ -01856e: 7210 6201 0200 |006f: invoke-interface {v2}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0162 │ │ -018574: 0c03 |0072: move-result-object v3 │ │ -018576: 1f03 9400 |0073: check-cast v3, Ljava/util/Map$Entry; // type@0094 │ │ -01857a: 54d4 ff01 |0075: iget-object v4, v13, Lorg/jsl/wfwt/Channel;.m_serviceName:Ljava/lang/String; // field@01ff │ │ -01857e: 7210 6a01 0300 |0077: invoke-interface {v3}, Ljava/util/Map$Entry;.getKey:()Ljava/lang/Object; // method@016a │ │ -018584: 0c05 |007a: move-result-object v5 │ │ -018586: 1f05 6600 |007b: check-cast v5, Ljava/lang/String; // type@0066 │ │ -01858a: 6e20 bb00 5400 |007d: invoke-virtual {v4, v5}, Ljava/lang/String;.compareTo:(Ljava/lang/String;)I // method@00bb │ │ -018590: 0a04 |0080: move-result v4 │ │ -018592: 3d04 e8ff |0081: if-lez v4, 0069 // -0018 │ │ -018596: 7210 6b01 0300 |0083: invoke-interface {v3}, Ljava/util/Map$Entry;.getValue:()Ljava/lang/Object; // method@016b │ │ -01859c: 0c04 |0086: move-result-object v4 │ │ -01859e: 1f04 1a01 |0087: check-cast v4, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ -0185a2: 5444 e501 |0089: iget-object v4, v4, Lorg/jsl/wfwt/Channel$ServiceInfo;.channelSession:Lorg/jsl/wfwt/ChannelSession; // field@01e5 │ │ -0185a6: 3804 deff |008b: if-eqz v4, 0069 // -0022 │ │ -0185aa: 7210 6b01 0300 |008d: invoke-interface {v3}, Ljava/util/Map$Entry;.getValue:()Ljava/lang/Object; // method@016b │ │ -0185b0: 0c03 |0090: move-result-object v3 │ │ -0185b2: 1f03 1a01 |0091: check-cast v3, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ -0185b6: d804 0101 |0093: add-int/lit8 v4, v1, #int 1 // #01 │ │ -0185ba: 220c 4601 |0095: new-instance v12, Lorg/jsl/wfwt/StationInfo; // type@0146 │ │ -0185be: 5436 ec01 |0097: iget-object v6, v3, Lorg/jsl/wfwt/Channel$ServiceInfo;.stationName:Ljava/lang/String; // field@01ec │ │ -0185c2: 5437 e401 |0099: iget-object v7, v3, Lorg/jsl/wfwt/Channel$ServiceInfo;.addr:Ljava/lang/String; // field@01e4 │ │ -0185c6: 5238 eb01 |009b: iget v8, v3, Lorg/jsl/wfwt/Channel$ServiceInfo;.state:I // field@01eb │ │ -0185ca: 5339 e901 |009d: iget-wide v9, v3, Lorg/jsl/wfwt/Channel$ServiceInfo;.ping:J // field@01e9 │ │ -0185ce: 543b e501 |009f: iget-object v11, v3, Lorg/jsl/wfwt/Channel$ServiceInfo;.channelSession:Lorg/jsl/wfwt/ChannelSession; // field@01e5 │ │ -0185d2: 07c5 |00a1: move-object v5, v12 │ │ -0185d4: 7607 4f05 0500 |00a2: invoke-direct/range {v5, v6, v7, v8, v9, v10, v11}, Lorg/jsl/wfwt/StationInfo;.:(Ljava/lang/String;Ljava/lang/String;IJLorg/jsl/wfwt/ChannelSession;)V // method@054f │ │ -0185da: 4d0c 0001 |00a5: aput-object v12, v0, v1 │ │ -0185de: 0141 |00a7: move v1, v4 │ │ -0185e0: 28c1 |00a8: goto 0069 // -003f │ │ -0185e2: 54d2 0202 |00a9: iget-object v2, v13, Lorg/jsl/wfwt/Channel;.m_sessions:Ljava/util/LinkedHashMap; // field@0202 │ │ -0185e6: 6e10 6501 0200 |00ab: invoke-virtual {v2}, Ljava/util/LinkedHashMap;.entrySet:()Ljava/util/Set; // method@0165 │ │ -0185ec: 0c02 |00ae: move-result-object v2 │ │ -0185ee: 7210 7801 0200 |00af: invoke-interface {v2}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@0178 │ │ -0185f4: 0c02 |00b2: move-result-object v2 │ │ -0185f6: 7210 6101 0200 |00b3: invoke-interface {v2}, Ljava/util/Iterator;.hasNext:()Z // method@0161 │ │ -0185fc: 0a03 |00b6: move-result v3 │ │ -0185fe: 3803 2800 |00b7: if-eqz v3, 00df // +0028 │ │ -018602: 7210 6201 0200 |00b9: invoke-interface {v2}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0162 │ │ -018608: 0c03 |00bc: move-result-object v3 │ │ -01860a: 1f03 9400 |00bd: check-cast v3, Ljava/util/Map$Entry; // type@0094 │ │ -01860e: 7210 6b01 0300 |00bf: invoke-interface {v3}, Ljava/util/Map$Entry;.getValue:()Ljava/lang/Object; // method@016b │ │ -018614: 0c03 |00c2: move-result-object v3 │ │ -018616: 1f03 1b01 |00c3: check-cast v3, Lorg/jsl/wfwt/Channel$SessionInfo; // type@011b │ │ -01861a: 5434 f101 |00c5: iget-object v4, v3, Lorg/jsl/wfwt/Channel$SessionInfo;.stationName:Ljava/lang/String; // field@01f1 │ │ -01861e: 3804 ecff |00c7: if-eqz v4, 00b3 // -0014 │ │ -018622: d804 0101 |00c9: add-int/lit8 v4, v1, #int 1 // #01 │ │ -018626: 220c 4601 |00cb: new-instance v12, Lorg/jsl/wfwt/StationInfo; // type@0146 │ │ -01862a: 5436 f101 |00cd: iget-object v6, v3, Lorg/jsl/wfwt/Channel$SessionInfo;.stationName:Ljava/lang/String; // field@01f1 │ │ -01862e: 5437 ed01 |00cf: iget-object v7, v3, Lorg/jsl/wfwt/Channel$SessionInfo;.addr:Ljava/lang/String; // field@01ed │ │ -018632: 5238 f001 |00d1: iget v8, v3, Lorg/jsl/wfwt/Channel$SessionInfo;.state:I // field@01f0 │ │ -018636: 5339 ef01 |00d3: iget-wide v9, v3, Lorg/jsl/wfwt/Channel$SessionInfo;.ping:J // field@01ef │ │ -01863a: 543b ee01 |00d5: iget-object v11, v3, Lorg/jsl/wfwt/Channel$SessionInfo;.channelSession:Lorg/jsl/wfwt/ChannelSession; // field@01ee │ │ -01863e: 07c5 |00d7: move-object v5, v12 │ │ -018640: 7607 4f05 0500 |00d8: invoke-direct/range {v5, v6, v7, v8, v9, v10, v11}, Lorg/jsl/wfwt/StationInfo;.:(Ljava/lang/String;Ljava/lang/String;IJLorg/jsl/wfwt/ChannelSession;)V // method@054f │ │ -018646: 4d0c 0001 |00db: aput-object v12, v0, v1 │ │ -01864a: 0141 |00dd: move v1, v4 │ │ -01864c: 28d5 |00de: goto 00b3 // -002b │ │ -01864e: 1100 |00df: return-object v0 │ │ +018484: |[018484] org.jsl.wfwt.Channel.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; │ │ +018494: 54d0 ff01 |0000: iget-object v0, v13, Lorg/jsl/wfwt/Channel;.m_serviceName:Ljava/lang/String; // field@01ff │ │ +018498: 1201 |0002: const/4 v1, #int 0 // #0 │ │ +01849a: 3900 0500 |0003: if-nez v0, 0008 // +0005 │ │ +01849e: 2310 6601 |0005: new-array v0, v1, [Lorg/jsl/wfwt/StationInfo; // type@0166 │ │ +0184a2: 1100 |0007: return-object v0 │ │ +0184a4: 54d0 fe01 |0008: iget-object v0, v13, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ +0184a8: 6e10 7b01 0000 |000a: invoke-virtual {v0}, Ljava/util/TreeMap;.entrySet:()Ljava/util/Set; // method@017b │ │ +0184ae: 0c00 |000d: move-result-object v0 │ │ +0184b0: 7210 7801 0000 |000e: invoke-interface {v0}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@0178 │ │ +0184b6: 0c00 |0011: move-result-object v0 │ │ +0184b8: 1202 |0012: const/4 v2, #int 0 // #0 │ │ +0184ba: 7210 6101 0000 |0013: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@0161 │ │ +0184c0: 0a03 |0016: move-result v3 │ │ +0184c2: 3803 2300 |0017: if-eqz v3, 003a // +0023 │ │ +0184c6: 7210 6201 0000 |0019: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0162 │ │ +0184cc: 0c03 |001c: move-result-object v3 │ │ +0184ce: 1f03 9400 |001d: check-cast v3, Ljava/util/Map$Entry; // type@0094 │ │ +0184d2: 54d4 ff01 |001f: iget-object v4, v13, Lorg/jsl/wfwt/Channel;.m_serviceName:Ljava/lang/String; // field@01ff │ │ +0184d6: 7210 6a01 0300 |0021: invoke-interface {v3}, Ljava/util/Map$Entry;.getKey:()Ljava/lang/Object; // method@016a │ │ +0184dc: 0c05 |0024: move-result-object v5 │ │ +0184de: 1f05 6600 |0025: check-cast v5, Ljava/lang/String; // type@0066 │ │ +0184e2: 6e20 bb00 5400 |0027: invoke-virtual {v4, v5}, Ljava/lang/String;.compareTo:(Ljava/lang/String;)I // method@00bb │ │ +0184e8: 0a04 |002a: move-result v4 │ │ +0184ea: 3d04 e8ff |002b: if-lez v4, 0013 // -0018 │ │ +0184ee: 7210 6b01 0300 |002d: invoke-interface {v3}, Ljava/util/Map$Entry;.getValue:()Ljava/lang/Object; // method@016b │ │ +0184f4: 0c03 |0030: move-result-object v3 │ │ +0184f6: 1f03 1a01 |0031: check-cast v3, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ +0184fa: 5433 e501 |0033: iget-object v3, v3, Lorg/jsl/wfwt/Channel$ServiceInfo;.channelSession:Lorg/jsl/wfwt/ChannelSession; // field@01e5 │ │ +0184fe: 3803 deff |0035: if-eqz v3, 0013 // -0022 │ │ +018502: d802 0201 |0037: add-int/lit8 v2, v2, #int 1 // #01 │ │ +018506: 28da |0039: goto 0013 // -0026 │ │ +018508: 54d0 0202 |003a: iget-object v0, v13, Lorg/jsl/wfwt/Channel;.m_sessions:Ljava/util/LinkedHashMap; // field@0202 │ │ +01850c: 6e10 6501 0000 |003c: invoke-virtual {v0}, Ljava/util/LinkedHashMap;.entrySet:()Ljava/util/Set; // method@0165 │ │ +018512: 0c00 |003f: move-result-object v0 │ │ +018514: 7210 7801 0000 |0040: invoke-interface {v0}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@0178 │ │ +01851a: 0c00 |0043: move-result-object v0 │ │ +01851c: 7210 6101 0000 |0044: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@0161 │ │ +018522: 0a03 |0047: move-result v3 │ │ +018524: 3803 1500 |0048: if-eqz v3, 005d // +0015 │ │ +018528: 7210 6201 0000 |004a: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0162 │ │ +01852e: 0c03 |004d: move-result-object v3 │ │ +018530: 1f03 9400 |004e: check-cast v3, Ljava/util/Map$Entry; // type@0094 │ │ +018534: 7210 6b01 0300 |0050: invoke-interface {v3}, Ljava/util/Map$Entry;.getValue:()Ljava/lang/Object; // method@016b │ │ +01853a: 0c03 |0053: move-result-object v3 │ │ +01853c: 1f03 1b01 |0054: check-cast v3, Lorg/jsl/wfwt/Channel$SessionInfo; // type@011b │ │ +018540: 5433 f101 |0056: iget-object v3, v3, Lorg/jsl/wfwt/Channel$SessionInfo;.stationName:Ljava/lang/String; // field@01f1 │ │ +018544: 3803 ecff |0058: if-eqz v3, 0044 // -0014 │ │ +018548: d802 0201 |005a: add-int/lit8 v2, v2, #int 1 // #01 │ │ +01854c: 28e8 |005c: goto 0044 // -0018 │ │ +01854e: 2320 6601 |005d: new-array v0, v2, [Lorg/jsl/wfwt/StationInfo; // type@0166 │ │ +018552: 54d2 fe01 |005f: iget-object v2, v13, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ +018556: 6e10 7b01 0200 |0061: invoke-virtual {v2}, Ljava/util/TreeMap;.entrySet:()Ljava/util/Set; // method@017b │ │ +01855c: 0c02 |0064: move-result-object v2 │ │ +01855e: 7210 7801 0200 |0065: invoke-interface {v2}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@0178 │ │ +018564: 0c02 |0068: move-result-object v2 │ │ +018566: 7210 6101 0200 |0069: invoke-interface {v2}, Ljava/util/Iterator;.hasNext:()Z // method@0161 │ │ +01856c: 0a03 |006c: move-result v3 │ │ +01856e: 3803 3c00 |006d: if-eqz v3, 00a9 // +003c │ │ +018572: 7210 6201 0200 |006f: invoke-interface {v2}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0162 │ │ +018578: 0c03 |0072: move-result-object v3 │ │ +01857a: 1f03 9400 |0073: check-cast v3, Ljava/util/Map$Entry; // type@0094 │ │ +01857e: 54d4 ff01 |0075: iget-object v4, v13, Lorg/jsl/wfwt/Channel;.m_serviceName:Ljava/lang/String; // field@01ff │ │ +018582: 7210 6a01 0300 |0077: invoke-interface {v3}, Ljava/util/Map$Entry;.getKey:()Ljava/lang/Object; // method@016a │ │ +018588: 0c05 |007a: move-result-object v5 │ │ +01858a: 1f05 6600 |007b: check-cast v5, Ljava/lang/String; // type@0066 │ │ +01858e: 6e20 bb00 5400 |007d: invoke-virtual {v4, v5}, Ljava/lang/String;.compareTo:(Ljava/lang/String;)I // method@00bb │ │ +018594: 0a04 |0080: move-result v4 │ │ +018596: 3d04 e8ff |0081: if-lez v4, 0069 // -0018 │ │ +01859a: 7210 6b01 0300 |0083: invoke-interface {v3}, Ljava/util/Map$Entry;.getValue:()Ljava/lang/Object; // method@016b │ │ +0185a0: 0c04 |0086: move-result-object v4 │ │ +0185a2: 1f04 1a01 |0087: check-cast v4, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ +0185a6: 5444 e501 |0089: iget-object v4, v4, Lorg/jsl/wfwt/Channel$ServiceInfo;.channelSession:Lorg/jsl/wfwt/ChannelSession; // field@01e5 │ │ +0185aa: 3804 deff |008b: if-eqz v4, 0069 // -0022 │ │ +0185ae: 7210 6b01 0300 |008d: invoke-interface {v3}, Ljava/util/Map$Entry;.getValue:()Ljava/lang/Object; // method@016b │ │ +0185b4: 0c03 |0090: move-result-object v3 │ │ +0185b6: 1f03 1a01 |0091: check-cast v3, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ +0185ba: d804 0101 |0093: add-int/lit8 v4, v1, #int 1 // #01 │ │ +0185be: 220c 4601 |0095: new-instance v12, Lorg/jsl/wfwt/StationInfo; // type@0146 │ │ +0185c2: 5436 ec01 |0097: iget-object v6, v3, Lorg/jsl/wfwt/Channel$ServiceInfo;.stationName:Ljava/lang/String; // field@01ec │ │ +0185c6: 5437 e401 |0099: iget-object v7, v3, Lorg/jsl/wfwt/Channel$ServiceInfo;.addr:Ljava/lang/String; // field@01e4 │ │ +0185ca: 5238 eb01 |009b: iget v8, v3, Lorg/jsl/wfwt/Channel$ServiceInfo;.state:I // field@01eb │ │ +0185ce: 5339 e901 |009d: iget-wide v9, v3, Lorg/jsl/wfwt/Channel$ServiceInfo;.ping:J // field@01e9 │ │ +0185d2: 543b e501 |009f: iget-object v11, v3, Lorg/jsl/wfwt/Channel$ServiceInfo;.channelSession:Lorg/jsl/wfwt/ChannelSession; // field@01e5 │ │ +0185d6: 07c5 |00a1: move-object v5, v12 │ │ +0185d8: 7607 4f05 0500 |00a2: invoke-direct/range {v5, v6, v7, v8, v9, v10, v11}, Lorg/jsl/wfwt/StationInfo;.:(Ljava/lang/String;Ljava/lang/String;IJLorg/jsl/wfwt/ChannelSession;)V // method@054f │ │ +0185de: 4d0c 0001 |00a5: aput-object v12, v0, v1 │ │ +0185e2: 0141 |00a7: move v1, v4 │ │ +0185e4: 28c1 |00a8: goto 0069 // -003f │ │ +0185e6: 54d2 0202 |00a9: iget-object v2, v13, Lorg/jsl/wfwt/Channel;.m_sessions:Ljava/util/LinkedHashMap; // field@0202 │ │ +0185ea: 6e10 6501 0200 |00ab: invoke-virtual {v2}, Ljava/util/LinkedHashMap;.entrySet:()Ljava/util/Set; // method@0165 │ │ +0185f0: 0c02 |00ae: move-result-object v2 │ │ +0185f2: 7210 7801 0200 |00af: invoke-interface {v2}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@0178 │ │ +0185f8: 0c02 |00b2: move-result-object v2 │ │ +0185fa: 7210 6101 0200 |00b3: invoke-interface {v2}, Ljava/util/Iterator;.hasNext:()Z // method@0161 │ │ +018600: 0a03 |00b6: move-result v3 │ │ +018602: 3803 2800 |00b7: if-eqz v3, 00df // +0028 │ │ +018606: 7210 6201 0200 |00b9: invoke-interface {v2}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0162 │ │ +01860c: 0c03 |00bc: move-result-object v3 │ │ +01860e: 1f03 9400 |00bd: check-cast v3, Ljava/util/Map$Entry; // type@0094 │ │ +018612: 7210 6b01 0300 |00bf: invoke-interface {v3}, Ljava/util/Map$Entry;.getValue:()Ljava/lang/Object; // method@016b │ │ +018618: 0c03 |00c2: move-result-object v3 │ │ +01861a: 1f03 1b01 |00c3: check-cast v3, Lorg/jsl/wfwt/Channel$SessionInfo; // type@011b │ │ +01861e: 5434 f101 |00c5: iget-object v4, v3, Lorg/jsl/wfwt/Channel$SessionInfo;.stationName:Ljava/lang/String; // field@01f1 │ │ +018622: 3804 ecff |00c7: if-eqz v4, 00b3 // -0014 │ │ +018626: d804 0101 |00c9: add-int/lit8 v4, v1, #int 1 // #01 │ │ +01862a: 220c 4601 |00cb: new-instance v12, Lorg/jsl/wfwt/StationInfo; // type@0146 │ │ +01862e: 5436 f101 |00cd: iget-object v6, v3, Lorg/jsl/wfwt/Channel$SessionInfo;.stationName:Ljava/lang/String; // field@01f1 │ │ +018632: 5437 ed01 |00cf: iget-object v7, v3, Lorg/jsl/wfwt/Channel$SessionInfo;.addr:Ljava/lang/String; // field@01ed │ │ +018636: 5238 f001 |00d1: iget v8, v3, Lorg/jsl/wfwt/Channel$SessionInfo;.state:I // field@01f0 │ │ +01863a: 5339 ef01 |00d3: iget-wide v9, v3, Lorg/jsl/wfwt/Channel$SessionInfo;.ping:J // field@01ef │ │ +01863e: 543b ee01 |00d5: iget-object v11, v3, Lorg/jsl/wfwt/Channel$SessionInfo;.channelSession:Lorg/jsl/wfwt/ChannelSession; // field@01ee │ │ +018642: 07c5 |00d7: move-object v5, v12 │ │ +018644: 7607 4f05 0500 |00d8: invoke-direct/range {v5, v6, v7, v8, v9, v10, v11}, Lorg/jsl/wfwt/StationInfo;.:(Ljava/lang/String;Ljava/lang/String;IJLorg/jsl/wfwt/ChannelSession;)V // method@054f │ │ +01864a: 4d0c 0001 |00db: aput-object v12, v0, v1 │ │ +01864e: 0141 |00dd: move v1, v4 │ │ +018650: 28d5 |00de: goto 00b3 // -002b │ │ +018652: 1100 |00df: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=534 │ │ 0x0008 line=538 │ │ 0x001f line=540 │ │ 0x002d line=543 │ │ 0x003a line=548 │ │ @@ -11941,68 +11941,68 @@ │ │ type : '(Ljava/lang/String;)V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 7 │ │ ins : 2 │ │ outs : 3 │ │ insns size : 110 16-bit code units │ │ -018b90: |[018b90] org.jsl.wfwt.Channel.resolveNextLocked:(Ljava/lang/String;)V │ │ -018ba0: 5450 fe01 |0000: iget-object v0, v5, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ -018ba4: 6e10 7b01 0000 |0002: invoke-virtual {v0}, Ljava/util/TreeMap;.entrySet:()Ljava/util/Set; // method@017b │ │ -018baa: 0c00 |0005: move-result-object v0 │ │ -018bac: 7210 7801 0000 |0006: invoke-interface {v0}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@0178 │ │ -018bb2: 0c00 |0009: move-result-object v0 │ │ -018bb4: 7210 6101 0000 |000a: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@0161 │ │ -018bba: 0a01 |000d: move-result v1 │ │ -018bbc: 3801 5f00 |000e: if-eqz v1, 006d // +005f │ │ -018bc0: 7210 6201 0000 |0010: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0162 │ │ -018bc6: 0c01 |0013: move-result-object v1 │ │ -018bc8: 1f01 9400 |0014: check-cast v1, Ljava/util/Map$Entry; // type@0094 │ │ -018bcc: 7210 6a01 0100 |0016: invoke-interface {v1}, Ljava/util/Map$Entry;.getKey:()Ljava/lang/Object; // method@016a │ │ -018bd2: 0c02 |0019: move-result-object v2 │ │ -018bd4: 1f02 6600 |001a: check-cast v2, Ljava/lang/String; // type@0066 │ │ -018bd8: 6e20 bc00 6200 |001c: invoke-virtual {v2, v6}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@00bc │ │ -018bde: 0a03 |001f: move-result v3 │ │ -018be0: 3903 eaff |0020: if-nez v3, 000a // -0016 │ │ -018be4: 5453 ff01 |0022: iget-object v3, v5, Lorg/jsl/wfwt/Channel;.m_serviceName:Ljava/lang/String; // field@01ff │ │ -018be8: 6e20 bb00 2300 |0024: invoke-virtual {v3, v2}, Ljava/lang/String;.compareTo:(Ljava/lang/String;)I // method@00bb │ │ -018bee: 0a03 |0027: move-result v3 │ │ -018bf0: 3d03 e2ff |0028: if-lez v3, 000a // -001e │ │ -018bf4: 7210 6b01 0100 |002a: invoke-interface {v1}, Ljava/util/Map$Entry;.getValue:()Ljava/lang/Object; // method@016b │ │ -018bfa: 0c01 |002d: move-result-object v1 │ │ -018bfc: 1f01 1a01 |002e: check-cast v1, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ -018c00: 5213 e801 |0030: iget v3, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdUpdates:I // field@01e8 │ │ -018c04: 3d03 d8ff |0032: if-lez v3, 000a // -0028 │ │ -018c08: 5413 e601 |0034: iget-object v3, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.connector:Lorg/jsl/collider/Connector; // field@01e6 │ │ -018c0c: 3903 d4ff |0036: if-nez v3, 000a // -002c │ │ -018c10: 5413 ea01 |0038: iget-object v3, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.session:Lorg/jsl/collider/Session; // field@01ea │ │ -018c14: 3903 d0ff |003a: if-nez v3, 000a // -0030 │ │ -018c18: 2203 6700 |003c: new-instance v3, Ljava/lang/StringBuilder; // type@0067 │ │ -018c1c: 7010 c500 0300 |003e: invoke-direct {v3}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -018c22: 5454 f901 |0041: iget-object v4, v5, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ -018c26: 6e20 cb00 4300 |0043: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -018c2c: 1a04 7600 |0046: const-string v4, ": resolveNextLocked: " // string@0076 │ │ -018c30: 6e20 cb00 4300 |0048: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -018c36: 5414 e701 |004b: iget-object v4, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ -018c3a: 6e20 ca00 4300 |004d: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ -018c40: 6e10 ce00 0300 |0050: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -018c46: 0c03 |0053: move-result-object v3 │ │ -018c48: 1a04 aa00 |0054: const-string v4, "Channel" // string@00aa │ │ -018c4c: 7120 6400 3400 |0056: invoke-static {v4, v3}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -018c52: 1203 |0059: const/4 v3, #int 0 // #0 │ │ -018c54: 5913 e801 |005a: iput v3, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdUpdates:I // field@01e8 │ │ -018c58: 2203 1901 |005c: new-instance v3, Lorg/jsl/wfwt/Channel$ResolveListener; // type@0119 │ │ -018c5c: 7030 6404 5302 |005e: invoke-direct {v3, v5, v2}, Lorg/jsl/wfwt/Channel$ResolveListener;.:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)V // method@0464 │ │ -018c62: 5b53 fd01 |0061: iput-object v3, v5, Lorg/jsl/wfwt/Channel;.m_resolveListener:Lorg/jsl/wfwt/Channel$ResolveListener; // field@01fd │ │ -018c66: 5452 fa01 |0063: iget-object v2, v5, Lorg/jsl/wfwt/Channel;.m_nsdManager:Landroid/net/nsd/NsdManager; // field@01fa │ │ -018c6a: 5411 e701 |0065: iget-object v1, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ -018c6e: 5453 fd01 |0067: iget-object v3, v5, Lorg/jsl/wfwt/Channel;.m_resolveListener:Lorg/jsl/wfwt/Channel$ResolveListener; // field@01fd │ │ -018c72: 6e30 4f00 1203 |0069: invoke-virtual {v2, v1, v3}, Landroid/net/nsd/NsdManager;.resolveService:(Landroid/net/nsd/NsdServiceInfo;Landroid/net/nsd/NsdManager$ResolveListener;)V // method@004f │ │ -018c78: 289e |006c: goto 000a // -0062 │ │ -018c7a: 0e00 |006d: return-void │ │ +018b94: |[018b94] org.jsl.wfwt.Channel.resolveNextLocked:(Ljava/lang/String;)V │ │ +018ba4: 5450 fe01 |0000: iget-object v0, v5, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ +018ba8: 6e10 7b01 0000 |0002: invoke-virtual {v0}, Ljava/util/TreeMap;.entrySet:()Ljava/util/Set; // method@017b │ │ +018bae: 0c00 |0005: move-result-object v0 │ │ +018bb0: 7210 7801 0000 |0006: invoke-interface {v0}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@0178 │ │ +018bb6: 0c00 |0009: move-result-object v0 │ │ +018bb8: 7210 6101 0000 |000a: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@0161 │ │ +018bbe: 0a01 |000d: move-result v1 │ │ +018bc0: 3801 5f00 |000e: if-eqz v1, 006d // +005f │ │ +018bc4: 7210 6201 0000 |0010: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0162 │ │ +018bca: 0c01 |0013: move-result-object v1 │ │ +018bcc: 1f01 9400 |0014: check-cast v1, Ljava/util/Map$Entry; // type@0094 │ │ +018bd0: 7210 6a01 0100 |0016: invoke-interface {v1}, Ljava/util/Map$Entry;.getKey:()Ljava/lang/Object; // method@016a │ │ +018bd6: 0c02 |0019: move-result-object v2 │ │ +018bd8: 1f02 6600 |001a: check-cast v2, Ljava/lang/String; // type@0066 │ │ +018bdc: 6e20 bc00 6200 |001c: invoke-virtual {v2, v6}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@00bc │ │ +018be2: 0a03 |001f: move-result v3 │ │ +018be4: 3903 eaff |0020: if-nez v3, 000a // -0016 │ │ +018be8: 5453 ff01 |0022: iget-object v3, v5, Lorg/jsl/wfwt/Channel;.m_serviceName:Ljava/lang/String; // field@01ff │ │ +018bec: 6e20 bb00 2300 |0024: invoke-virtual {v3, v2}, Ljava/lang/String;.compareTo:(Ljava/lang/String;)I // method@00bb │ │ +018bf2: 0a03 |0027: move-result v3 │ │ +018bf4: 3d03 e2ff |0028: if-lez v3, 000a // -001e │ │ +018bf8: 7210 6b01 0100 |002a: invoke-interface {v1}, Ljava/util/Map$Entry;.getValue:()Ljava/lang/Object; // method@016b │ │ +018bfe: 0c01 |002d: move-result-object v1 │ │ +018c00: 1f01 1a01 |002e: check-cast v1, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ +018c04: 5213 e801 |0030: iget v3, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdUpdates:I // field@01e8 │ │ +018c08: 3d03 d8ff |0032: if-lez v3, 000a // -0028 │ │ +018c0c: 5413 e601 |0034: iget-object v3, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.connector:Lorg/jsl/collider/Connector; // field@01e6 │ │ +018c10: 3903 d4ff |0036: if-nez v3, 000a // -002c │ │ +018c14: 5413 ea01 |0038: iget-object v3, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.session:Lorg/jsl/collider/Session; // field@01ea │ │ +018c18: 3903 d0ff |003a: if-nez v3, 000a // -0030 │ │ +018c1c: 2203 6700 |003c: new-instance v3, Ljava/lang/StringBuilder; // type@0067 │ │ +018c20: 7010 c500 0300 |003e: invoke-direct {v3}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +018c26: 5454 f901 |0041: iget-object v4, v5, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ +018c2a: 6e20 cb00 4300 |0043: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +018c30: 1a04 7600 |0046: const-string v4, ": resolveNextLocked: " // string@0076 │ │ +018c34: 6e20 cb00 4300 |0048: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +018c3a: 5414 e701 |004b: iget-object v4, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ +018c3e: 6e20 ca00 4300 |004d: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ +018c44: 6e10 ce00 0300 |0050: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +018c4a: 0c03 |0053: move-result-object v3 │ │ +018c4c: 1a04 aa00 |0054: const-string v4, "Channel" // string@00aa │ │ +018c50: 7120 6400 3400 |0056: invoke-static {v4, v3}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +018c56: 1203 |0059: const/4 v3, #int 0 // #0 │ │ +018c58: 5913 e801 |005a: iput v3, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdUpdates:I // field@01e8 │ │ +018c5c: 2203 1901 |005c: new-instance v3, Lorg/jsl/wfwt/Channel$ResolveListener; // type@0119 │ │ +018c60: 7030 6404 5302 |005e: invoke-direct {v3, v5, v2}, Lorg/jsl/wfwt/Channel$ResolveListener;.:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)V // method@0464 │ │ +018c66: 5b53 fd01 |0061: iput-object v3, v5, Lorg/jsl/wfwt/Channel;.m_resolveListener:Lorg/jsl/wfwt/Channel$ResolveListener; // field@01fd │ │ +018c6a: 5452 fa01 |0063: iget-object v2, v5, Lorg/jsl/wfwt/Channel;.m_nsdManager:Landroid/net/nsd/NsdManager; // field@01fa │ │ +018c6e: 5411 e701 |0065: iget-object v1, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ +018c72: 5453 fd01 |0067: iget-object v3, v5, Lorg/jsl/wfwt/Channel;.m_resolveListener:Lorg/jsl/wfwt/Channel$ResolveListener; // field@01fd │ │ +018c76: 6e30 4f00 1203 |0069: invoke-virtual {v2, v1, v3}, Landroid/net/nsd/NsdManager;.resolveService:(Landroid/net/nsd/NsdServiceInfo;Landroid/net/nsd/NsdManager$ResolveListener;)V // method@004f │ │ +018c7c: 289e |006c: goto 000a // -0062 │ │ +018c7e: 0e00 |006d: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=235 │ │ 0x0016 line=237 │ │ 0x001c line=238 │ │ 0x0024 line=239 │ │ 0x002a line=241 │ │ @@ -12020,58 +12020,58 @@ │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 5 │ │ ins : 1 │ │ outs : 3 │ │ insns size : 94 16-bit code units │ │ -01935c: |[01935c] org.jsl.wfwt.Channel.updateStateLocked:()V │ │ -01936c: 5440 0302 |0000: iget-object v0, v4, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ -019370: 3800 5b00 |0002: if-eqz v0, 005d // +005b │ │ -019374: 5441 f901 |0004: iget-object v1, v4, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ -019378: 5242 f701 |0006: iget v2, v4, Lorg/jsl/wfwt/Channel;.m_localPort:I // field@01f7 │ │ -01937c: 12f3 |0008: const/4 v3, #int -1 // #ff │ │ -01937e: 3232 2800 |0009: if-eq v2, v3, 0031 // +0028 │ │ -019382: 2202 6700 |000b: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ -019386: 7010 c500 0200 |000d: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -01938c: 6e20 cb00 1200 |0010: invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019392: 1a01 5100 |0013: const-string v1, ": " // string@0051 │ │ -019396: 6e20 cb00 1200 |0015: invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01939c: 6e10 ce00 0200 |0018: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -0193a2: 0c01 |001b: move-result-object v1 │ │ -0193a4: 2202 6700 |001c: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ -0193a8: 7010 c500 0200 |001e: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -0193ae: 6e20 cb00 1200 |0021: invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0193b4: 5241 f701 |0024: iget v1, v4, Lorg/jsl/wfwt/Channel;.m_localPort:I // field@01f7 │ │ -0193b8: 7110 aa00 0100 |0026: invoke-static {v1}, Ljava/lang/Integer;.toString:(I)Ljava/lang/String; // method@00aa │ │ -0193be: 0c01 |0029: move-result-object v1 │ │ -0193c0: 6e20 cb00 1200 |002a: invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0193c6: 6e10 ce00 0200 |002d: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -0193cc: 0c01 |0030: move-result-object v1 │ │ -0193ce: 5442 ff01 |0031: iget-object v2, v4, Lorg/jsl/wfwt/Channel;.m_serviceName:Ljava/lang/String; // field@01ff │ │ -0193d2: 3802 2600 |0033: if-eqz v2, 0059 // +0026 │ │ -0193d6: 2202 6700 |0035: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ -0193da: 7010 c500 0200 |0037: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -0193e0: 6e20 cb00 1200 |003a: invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0193e6: 1301 0a00 |003d: const/16 v1, #int 10 // #a │ │ -0193ea: 6e20 c700 1200 |003f: invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;.append:(C)Ljava/lang/StringBuilder; // method@00c7 │ │ -0193f0: 6e10 ce00 0200 |0042: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -0193f6: 0c01 |0045: move-result-object v1 │ │ -0193f8: 2202 6700 |0046: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ -0193fc: 7010 c500 0200 |0048: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -019402: 6e20 cb00 1200 |004b: invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019408: 5441 ff01 |004e: iget-object v1, v4, Lorg/jsl/wfwt/Channel;.m_serviceName:Ljava/lang/String; // field@01ff │ │ -01940c: 6e20 cb00 1200 |0050: invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019412: 6e10 ce00 0200 |0053: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -019418: 0c01 |0056: move-result-object v1 │ │ -01941a: 1212 |0057: const/4 v2, #int 1 // #1 │ │ -01941c: 2802 |0058: goto 005a // +0002 │ │ -01941e: 1202 |0059: const/4 v2, #int 0 // #0 │ │ -019420: 7230 6b04 1002 |005a: invoke-interface {v0, v1, v2}, Lorg/jsl/wfwt/Channel$StateListener;.onStateChanged:(Ljava/lang/String;Z)V // method@046b │ │ -019426: 0e00 |005d: return-void │ │ +019360: |[019360] org.jsl.wfwt.Channel.updateStateLocked:()V │ │ +019370: 5440 0302 |0000: iget-object v0, v4, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ +019374: 3800 5b00 |0002: if-eqz v0, 005d // +005b │ │ +019378: 5441 f901 |0004: iget-object v1, v4, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ +01937c: 5242 f701 |0006: iget v2, v4, Lorg/jsl/wfwt/Channel;.m_localPort:I // field@01f7 │ │ +019380: 12f3 |0008: const/4 v3, #int -1 // #ff │ │ +019382: 3232 2800 |0009: if-eq v2, v3, 0031 // +0028 │ │ +019386: 2202 6700 |000b: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ +01938a: 7010 c500 0200 |000d: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +019390: 6e20 cb00 1200 |0010: invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019396: 1a01 5100 |0013: const-string v1, ": " // string@0051 │ │ +01939a: 6e20 cb00 1200 |0015: invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0193a0: 6e10 ce00 0200 |0018: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +0193a6: 0c01 |001b: move-result-object v1 │ │ +0193a8: 2202 6700 |001c: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ +0193ac: 7010 c500 0200 |001e: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +0193b2: 6e20 cb00 1200 |0021: invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0193b8: 5241 f701 |0024: iget v1, v4, Lorg/jsl/wfwt/Channel;.m_localPort:I // field@01f7 │ │ +0193bc: 7110 aa00 0100 |0026: invoke-static {v1}, Ljava/lang/Integer;.toString:(I)Ljava/lang/String; // method@00aa │ │ +0193c2: 0c01 |0029: move-result-object v1 │ │ +0193c4: 6e20 cb00 1200 |002a: invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0193ca: 6e10 ce00 0200 |002d: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +0193d0: 0c01 |0030: move-result-object v1 │ │ +0193d2: 5442 ff01 |0031: iget-object v2, v4, Lorg/jsl/wfwt/Channel;.m_serviceName:Ljava/lang/String; // field@01ff │ │ +0193d6: 3802 2600 |0033: if-eqz v2, 0059 // +0026 │ │ +0193da: 2202 6700 |0035: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ +0193de: 7010 c500 0200 |0037: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +0193e4: 6e20 cb00 1200 |003a: invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0193ea: 1301 0a00 |003d: const/16 v1, #int 10 // #a │ │ +0193ee: 6e20 c700 1200 |003f: invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;.append:(C)Ljava/lang/StringBuilder; // method@00c7 │ │ +0193f4: 6e10 ce00 0200 |0042: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +0193fa: 0c01 |0045: move-result-object v1 │ │ +0193fc: 2202 6700 |0046: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ +019400: 7010 c500 0200 |0048: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +019406: 6e20 cb00 1200 |004b: invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01940c: 5441 ff01 |004e: iget-object v1, v4, Lorg/jsl/wfwt/Channel;.m_serviceName:Ljava/lang/String; // field@01ff │ │ +019410: 6e20 cb00 1200 |0050: invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019416: 6e10 ce00 0200 |0053: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01941c: 0c01 |0056: move-result-object v1 │ │ +01941e: 1212 |0057: const/4 v2, #int 1 // #1 │ │ +019420: 2802 |0058: goto 005a // +0002 │ │ +019422: 1202 |0059: const/4 v2, #int 0 // #0 │ │ +019424: 7230 6b04 1002 |005a: invoke-interface {v0, v1, v2}, Lorg/jsl/wfwt/Channel$StateListener;.onStateChanged:(Ljava/lang/String;Z)V // method@046b │ │ +01942a: 0e00 |005d: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=592 │ │ 0x0004 line=596 │ │ 0x0006 line=597 │ │ 0x000b line=599 │ │ 0x001c line=600 │ │ @@ -12088,58 +12088,58 @@ │ │ type : '(Lorg/jsl/collider/Session;Lorg/jsl/wfwt/ChannelSession;Ljava/lang/String;)V' │ │ access : 0x0000 () │ │ code - │ │ registers : 6 │ │ ins : 4 │ │ outs : 4 │ │ insns size : 94 16-bit code units │ │ -01872c: |[01872c] org.jsl.wfwt.Channel.addSession:(Lorg/jsl/collider/Session;Lorg/jsl/wfwt/ChannelSession;Ljava/lang/String;)V │ │ -01873c: 5420 f801 |0000: iget-object v0, v2, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -018740: 6e10 ae01 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ -018746: 5420 0202 |0005: iget-object v0, v2, Lorg/jsl/wfwt/Channel;.m_sessions:Ljava/util/LinkedHashMap; // field@0202 │ │ -01874a: 6e20 6601 3000 |0007: invoke-virtual {v0, v3}, Ljava/util/LinkedHashMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@0166 │ │ -018750: 0c00 |000a: move-result-object v0 │ │ -018752: 1f00 1b01 |000b: check-cast v0, Lorg/jsl/wfwt/Channel$SessionInfo; // type@011b │ │ -018756: 3900 2000 |000d: if-nez v0, 002d // +0020 │ │ -01875a: 7210 5003 0300 |000f: invoke-interface {v3}, Lorg/jsl/collider/Session;.getRemoteAddress:()Ljava/net/SocketAddress; // method@0350 │ │ -018760: 0c00 |0012: move-result-object v0 │ │ -018762: 6e10 b600 0000 |0013: invoke-virtual {v0}, Ljava/lang/Object;.toString:()Ljava/lang/String; // method@00b6 │ │ -018768: 0c00 |0016: move-result-object v0 │ │ -01876a: 2201 1b01 |0017: new-instance v1, Lorg/jsl/wfwt/Channel$SessionInfo; // type@011b │ │ -01876e: 7040 6a04 4150 |0019: invoke-direct {v1, v4, v0, v5}, Lorg/jsl/wfwt/Channel$SessionInfo;.:(Lorg/jsl/wfwt/ChannelSession;Ljava/lang/String;Ljava/lang/String;)V // method@046a │ │ -018774: 5424 0202 |001c: iget-object v4, v2, Lorg/jsl/wfwt/Channel;.m_sessions:Ljava/util/LinkedHashMap; // field@0202 │ │ -018778: 6e30 6801 3401 |001e: invoke-virtual {v4, v3, v1}, Ljava/util/LinkedHashMap;.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; // method@0168 │ │ -01877e: 5423 0302 |0021: iget-object v3, v2, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ -018782: 3803 2e00 |0023: if-eqz v3, 0051 // +002e │ │ -018786: 7010 8a04 0200 |0025: invoke-direct {v2}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ -01878c: 0c04 |0028: move-result-object v4 │ │ -01878e: 7220 6c04 4300 |0029: invoke-interface {v3, v4}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ -018794: 2825 |002c: goto 0051 // +0025 │ │ -018796: 1a04 aa00 |002d: const-string v4, "Channel" // string@00aa │ │ -01879a: 2205 6700 |002f: new-instance v5, Ljava/lang/StringBuilder; // type@0067 │ │ -01879e: 7010 c500 0500 |0031: invoke-direct {v5}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -0187a4: 5420 f901 |0034: iget-object v0, v2, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ -0187a8: 6e20 cb00 0500 |0036: invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0187ae: 1a00 6300 |0039: const-string v0, ": internal error: session " // string@0063 │ │ -0187b2: 6e20 cb00 0500 |003b: invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0187b8: 6e10 b600 0300 |003e: invoke-virtual {v3}, Ljava/lang/Object;.toString:()Ljava/lang/String; // method@00b6 │ │ -0187be: 0c03 |0041: move-result-object v3 │ │ -0187c0: 6e20 cb00 3500 |0042: invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0187c6: 1a03 1b00 |0045: const-string v3, " not found" // string@001b │ │ -0187ca: 6e20 cb00 3500 |0047: invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0187d0: 6e10 ce00 0500 |004a: invoke-virtual {v5}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -0187d6: 0c03 |004d: move-result-object v3 │ │ -0187d8: 7120 6200 3400 |004e: invoke-static {v4, v3}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ -0187de: 5423 f801 |0051: iget-object v3, v2, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -0187e2: 6e10 b001 0300 |0053: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -0187e8: 0e00 |0056: return-void │ │ -0187ea: 0d03 |0057: move-exception v3 │ │ -0187ec: 5424 f801 |0058: iget-object v4, v2, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -0187f0: 6e10 b001 0400 |005a: invoke-virtual {v4}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -0187f6: 2703 |005d: throw v3 │ │ +018730: |[018730] org.jsl.wfwt.Channel.addSession:(Lorg/jsl/collider/Session;Lorg/jsl/wfwt/ChannelSession;Ljava/lang/String;)V │ │ +018740: 5420 f801 |0000: iget-object v0, v2, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +018744: 6e10 ae01 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ +01874a: 5420 0202 |0005: iget-object v0, v2, Lorg/jsl/wfwt/Channel;.m_sessions:Ljava/util/LinkedHashMap; // field@0202 │ │ +01874e: 6e20 6601 3000 |0007: invoke-virtual {v0, v3}, Ljava/util/LinkedHashMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@0166 │ │ +018754: 0c00 |000a: move-result-object v0 │ │ +018756: 1f00 1b01 |000b: check-cast v0, Lorg/jsl/wfwt/Channel$SessionInfo; // type@011b │ │ +01875a: 3900 2000 |000d: if-nez v0, 002d // +0020 │ │ +01875e: 7210 5003 0300 |000f: invoke-interface {v3}, Lorg/jsl/collider/Session;.getRemoteAddress:()Ljava/net/SocketAddress; // method@0350 │ │ +018764: 0c00 |0012: move-result-object v0 │ │ +018766: 6e10 b600 0000 |0013: invoke-virtual {v0}, Ljava/lang/Object;.toString:()Ljava/lang/String; // method@00b6 │ │ +01876c: 0c00 |0016: move-result-object v0 │ │ +01876e: 2201 1b01 |0017: new-instance v1, Lorg/jsl/wfwt/Channel$SessionInfo; // type@011b │ │ +018772: 7040 6a04 4150 |0019: invoke-direct {v1, v4, v0, v5}, Lorg/jsl/wfwt/Channel$SessionInfo;.:(Lorg/jsl/wfwt/ChannelSession;Ljava/lang/String;Ljava/lang/String;)V // method@046a │ │ +018778: 5424 0202 |001c: iget-object v4, v2, Lorg/jsl/wfwt/Channel;.m_sessions:Ljava/util/LinkedHashMap; // field@0202 │ │ +01877c: 6e30 6801 3401 |001e: invoke-virtual {v4, v3, v1}, Ljava/util/LinkedHashMap;.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; // method@0168 │ │ +018782: 5423 0302 |0021: iget-object v3, v2, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ +018786: 3803 2e00 |0023: if-eqz v3, 0051 // +002e │ │ +01878a: 7010 8a04 0200 |0025: invoke-direct {v2}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ +018790: 0c04 |0028: move-result-object v4 │ │ +018792: 7220 6c04 4300 |0029: invoke-interface {v3, v4}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ +018798: 2825 |002c: goto 0051 // +0025 │ │ +01879a: 1a04 aa00 |002d: const-string v4, "Channel" // string@00aa │ │ +01879e: 2205 6700 |002f: new-instance v5, Ljava/lang/StringBuilder; // type@0067 │ │ +0187a2: 7010 c500 0500 |0031: invoke-direct {v5}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +0187a8: 5420 f901 |0034: iget-object v0, v2, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ +0187ac: 6e20 cb00 0500 |0036: invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0187b2: 1a00 6300 |0039: const-string v0, ": internal error: session " // string@0063 │ │ +0187b6: 6e20 cb00 0500 |003b: invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0187bc: 6e10 b600 0300 |003e: invoke-virtual {v3}, Ljava/lang/Object;.toString:()Ljava/lang/String; // method@00b6 │ │ +0187c2: 0c03 |0041: move-result-object v3 │ │ +0187c4: 6e20 cb00 3500 |0042: invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0187ca: 1a03 1b00 |0045: const-string v3, " not found" // string@001b │ │ +0187ce: 6e20 cb00 3500 |0047: invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0187d4: 6e10 ce00 0500 |004a: invoke-virtual {v5}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +0187da: 0c03 |004d: move-result-object v3 │ │ +0187dc: 7120 6200 3400 |004e: invoke-static {v4, v3}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ +0187e2: 5423 f801 |0051: iget-object v3, v2, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +0187e6: 6e10 b001 0300 |0053: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +0187ec: 0e00 |0056: return-void │ │ +0187ee: 0d03 |0057: move-exception v3 │ │ +0187f0: 5424 f801 |0058: iget-object v4, v2, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +0187f4: 6e10 b001 0400 |005a: invoke-virtual {v4}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +0187fa: 2703 |005d: throw v3 │ │ catches : 1 │ │ 0x0005 - 0x0051 │ │ -> 0x0057 │ │ positions : │ │ 0x0000 line=785 │ │ 0x0005 line=788 │ │ 0x000f line=791 │ │ @@ -12161,17 +12161,17 @@ │ │ type : '()Ljava/lang/String;' │ │ access : 0x0011 (PUBLIC FINAL) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -018314: |[018314] org.jsl.wfwt.Channel.getName:()Ljava/lang/String; │ │ -018324: 5410 f901 |0000: iget-object v0, v1, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ -018328: 1100 |0002: return-object v0 │ │ +018318: |[018318] org.jsl.wfwt.Channel.getName:()Ljava/lang/String; │ │ +018328: 5410 f901 |0000: iget-object v0, v1, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ +01832c: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=1158 │ │ locals : │ │ 0x0000 - 0x0003 reg=1 this Lorg/jsl/wfwt/Channel; │ │ │ │ #2 : (in Lorg/jsl/wfwt/Channel;) │ │ @@ -12179,80 +12179,80 @@ │ │ type : '(Landroid/net/nsd/NsdServiceInfo;)V' │ │ access : 0x0000 () │ │ code - │ │ registers : 7 │ │ ins : 2 │ │ outs : 3 │ │ insns size : 141 16-bit code units │ │ -018804: |[018804] org.jsl.wfwt.Channel.onServiceFound:(Landroid/net/nsd/NsdServiceInfo;)V │ │ -018814: 6e10 5500 0600 |0000: invoke-virtual {v6}, Landroid/net/nsd/NsdServiceInfo;.getServiceName:()Ljava/lang/String; // method@0055 │ │ -01881a: 0c00 |0003: move-result-object v0 │ │ -01881c: 5451 f801 |0004: iget-object v1, v5, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -018820: 6e10 ae01 0100 |0006: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ -018826: 5451 fe01 |0009: iget-object v1, v5, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ -01882a: 6e20 7e01 0100 |000b: invoke-virtual {v1, v0}, Ljava/util/TreeMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@017e │ │ -018830: 0c01 |000e: move-result-object v1 │ │ -018832: 1f01 1a01 |000f: check-cast v1, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ -018836: 3901 0d00 |0011: if-nez v1, 001e // +000d │ │ -01883a: 2201 1a01 |0013: new-instance v1, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ -01883e: 1202 |0015: const/4 v2, #int 0 // #0 │ │ -018840: 7020 6904 2100 |0016: invoke-direct {v1, v2}, Lorg/jsl/wfwt/Channel$ServiceInfo;.:(Lorg/jsl/wfwt/Channel$1;)V // method@0469 │ │ -018846: 5452 fe01 |0019: iget-object v2, v5, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ -01884a: 6e30 8001 0201 |001b: invoke-virtual {v2, v0, v1}, Ljava/util/TreeMap;.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; // method@0180 │ │ -018850: 5b16 e701 |001e: iput-object v6, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ -018854: 5212 e801 |0020: iget v2, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdUpdates:I // field@01e8 │ │ -018858: d802 0201 |0022: add-int/lit8 v2, v2, #int 1 // #01 │ │ -01885c: 5912 e801 |0024: iput v2, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdUpdates:I // field@01e8 │ │ -018860: 5452 ff01 |0026: iget-object v2, v5, Lorg/jsl/wfwt/Channel;.m_serviceName:Ljava/lang/String; // field@01ff │ │ -018864: 3802 5800 |0028: if-eqz v2, 0080 // +0058 │ │ -018868: 6e20 bb00 0200 |002a: invoke-virtual {v2, v0}, Ljava/lang/String;.compareTo:(Ljava/lang/String;)I // method@00bb │ │ -01886e: 0a02 |002d: move-result v2 │ │ -018870: 3d02 5200 |002e: if-lez v2, 0080 // +0052 │ │ -018874: 5412 ea01 |0030: iget-object v2, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.session:Lorg/jsl/collider/Session; // field@01ea │ │ -018878: 3902 4e00 |0032: if-nez v2, 0080 // +004e │ │ -01887c: 5412 e601 |0034: iget-object v2, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.connector:Lorg/jsl/collider/Connector; // field@01e6 │ │ -018880: 3902 4a00 |0036: if-nez v2, 0080 // +004a │ │ -018884: 5452 fd01 |0038: iget-object v2, v5, Lorg/jsl/wfwt/Channel;.m_resolveListener:Lorg/jsl/wfwt/Channel$ResolveListener; // field@01fd │ │ -018888: 1a03 aa00 |003a: const-string v3, "Channel" // string@00aa │ │ -01888c: 3902 2b00 |003c: if-nez v2, 0067 // +002b │ │ -018890: 2202 6700 |003e: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ -018894: 7010 c500 0200 |0040: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -01889a: 5454 f901 |0043: iget-object v4, v5, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ -01889e: 6e20 cb00 4200 |0045: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0188a4: 1a04 6c00 |0048: const-string v4, ": onServiceFound, resolve: " // string@006c │ │ -0188a8: 6e20 cb00 4200 |004a: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0188ae: 6e20 ca00 6200 |004d: invoke-virtual {v2, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ -0188b4: 6e10 ce00 0200 |0050: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -0188ba: 0c02 |0053: move-result-object v2 │ │ -0188bc: 7120 6400 2300 |0054: invoke-static {v3, v2}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -0188c2: 1202 |0057: const/4 v2, #int 0 // #0 │ │ -0188c4: 5912 e801 |0058: iput v2, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdUpdates:I // field@01e8 │ │ -0188c8: 2201 1901 |005a: new-instance v1, Lorg/jsl/wfwt/Channel$ResolveListener; // type@0119 │ │ -0188cc: 7030 6404 5100 |005c: invoke-direct {v1, v5, v0}, Lorg/jsl/wfwt/Channel$ResolveListener;.:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)V // method@0464 │ │ -0188d2: 5b51 fd01 |005f: iput-object v1, v5, Lorg/jsl/wfwt/Channel;.m_resolveListener:Lorg/jsl/wfwt/Channel$ResolveListener; // field@01fd │ │ -0188d6: 5450 fa01 |0061: iget-object v0, v5, Lorg/jsl/wfwt/Channel;.m_nsdManager:Landroid/net/nsd/NsdManager; // field@01fa │ │ -0188da: 6e30 4f00 6001 |0063: invoke-virtual {v0, v6, v1}, Landroid/net/nsd/NsdManager;.resolveService:(Landroid/net/nsd/NsdServiceInfo;Landroid/net/nsd/NsdManager$ResolveListener;)V // method@004f │ │ -0188e0: 281a |0066: goto 0080 // +001a │ │ -0188e2: 2200 6700 |0067: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -0188e6: 7010 c500 0000 |0069: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -0188ec: 5451 f901 |006c: iget-object v1, v5, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ -0188f0: 6e20 cb00 1000 |006e: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0188f6: 1a01 6d00 |0071: const-string v1, ": onServiceFound: " // string@006d │ │ -0188fa: 6e20 cb00 1000 |0073: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -018900: 6e20 ca00 6000 |0076: invoke-virtual {v0, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ -018906: 6e10 ce00 0000 |0079: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01890c: 0c06 |007c: move-result-object v6 │ │ -01890e: 7120 6400 6300 |007d: invoke-static {v3, v6}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -018914: 5456 f801 |0080: iget-object v6, v5, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -018918: 6e10 b001 0600 |0082: invoke-virtual {v6}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -01891e: 0e00 |0085: return-void │ │ -018920: 0d06 |0086: move-exception v6 │ │ -018922: 5450 f801 |0087: iget-object v0, v5, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -018926: 6e10 b001 0000 |0089: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -01892c: 2706 |008c: throw v6 │ │ +018808: |[018808] org.jsl.wfwt.Channel.onServiceFound:(Landroid/net/nsd/NsdServiceInfo;)V │ │ +018818: 6e10 5500 0600 |0000: invoke-virtual {v6}, Landroid/net/nsd/NsdServiceInfo;.getServiceName:()Ljava/lang/String; // method@0055 │ │ +01881e: 0c00 |0003: move-result-object v0 │ │ +018820: 5451 f801 |0004: iget-object v1, v5, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +018824: 6e10 ae01 0100 |0006: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ +01882a: 5451 fe01 |0009: iget-object v1, v5, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ +01882e: 6e20 7e01 0100 |000b: invoke-virtual {v1, v0}, Ljava/util/TreeMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@017e │ │ +018834: 0c01 |000e: move-result-object v1 │ │ +018836: 1f01 1a01 |000f: check-cast v1, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ +01883a: 3901 0d00 |0011: if-nez v1, 001e // +000d │ │ +01883e: 2201 1a01 |0013: new-instance v1, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ +018842: 1202 |0015: const/4 v2, #int 0 // #0 │ │ +018844: 7020 6904 2100 |0016: invoke-direct {v1, v2}, Lorg/jsl/wfwt/Channel$ServiceInfo;.:(Lorg/jsl/wfwt/Channel$1;)V // method@0469 │ │ +01884a: 5452 fe01 |0019: iget-object v2, v5, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ +01884e: 6e30 8001 0201 |001b: invoke-virtual {v2, v0, v1}, Ljava/util/TreeMap;.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; // method@0180 │ │ +018854: 5b16 e701 |001e: iput-object v6, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ +018858: 5212 e801 |0020: iget v2, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdUpdates:I // field@01e8 │ │ +01885c: d802 0201 |0022: add-int/lit8 v2, v2, #int 1 // #01 │ │ +018860: 5912 e801 |0024: iput v2, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdUpdates:I // field@01e8 │ │ +018864: 5452 ff01 |0026: iget-object v2, v5, Lorg/jsl/wfwt/Channel;.m_serviceName:Ljava/lang/String; // field@01ff │ │ +018868: 3802 5800 |0028: if-eqz v2, 0080 // +0058 │ │ +01886c: 6e20 bb00 0200 |002a: invoke-virtual {v2, v0}, Ljava/lang/String;.compareTo:(Ljava/lang/String;)I // method@00bb │ │ +018872: 0a02 |002d: move-result v2 │ │ +018874: 3d02 5200 |002e: if-lez v2, 0080 // +0052 │ │ +018878: 5412 ea01 |0030: iget-object v2, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.session:Lorg/jsl/collider/Session; // field@01ea │ │ +01887c: 3902 4e00 |0032: if-nez v2, 0080 // +004e │ │ +018880: 5412 e601 |0034: iget-object v2, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.connector:Lorg/jsl/collider/Connector; // field@01e6 │ │ +018884: 3902 4a00 |0036: if-nez v2, 0080 // +004a │ │ +018888: 5452 fd01 |0038: iget-object v2, v5, Lorg/jsl/wfwt/Channel;.m_resolveListener:Lorg/jsl/wfwt/Channel$ResolveListener; // field@01fd │ │ +01888c: 1a03 aa00 |003a: const-string v3, "Channel" // string@00aa │ │ +018890: 3902 2b00 |003c: if-nez v2, 0067 // +002b │ │ +018894: 2202 6700 |003e: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ +018898: 7010 c500 0200 |0040: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +01889e: 5454 f901 |0043: iget-object v4, v5, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ +0188a2: 6e20 cb00 4200 |0045: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0188a8: 1a04 6c00 |0048: const-string v4, ": onServiceFound, resolve: " // string@006c │ │ +0188ac: 6e20 cb00 4200 |004a: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0188b2: 6e20 ca00 6200 |004d: invoke-virtual {v2, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ +0188b8: 6e10 ce00 0200 |0050: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +0188be: 0c02 |0053: move-result-object v2 │ │ +0188c0: 7120 6400 2300 |0054: invoke-static {v3, v2}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +0188c6: 1202 |0057: const/4 v2, #int 0 // #0 │ │ +0188c8: 5912 e801 |0058: iput v2, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdUpdates:I // field@01e8 │ │ +0188cc: 2201 1901 |005a: new-instance v1, Lorg/jsl/wfwt/Channel$ResolveListener; // type@0119 │ │ +0188d0: 7030 6404 5100 |005c: invoke-direct {v1, v5, v0}, Lorg/jsl/wfwt/Channel$ResolveListener;.:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)V // method@0464 │ │ +0188d6: 5b51 fd01 |005f: iput-object v1, v5, Lorg/jsl/wfwt/Channel;.m_resolveListener:Lorg/jsl/wfwt/Channel$ResolveListener; // field@01fd │ │ +0188da: 5450 fa01 |0061: iget-object v0, v5, Lorg/jsl/wfwt/Channel;.m_nsdManager:Landroid/net/nsd/NsdManager; // field@01fa │ │ +0188de: 6e30 4f00 6001 |0063: invoke-virtual {v0, v6, v1}, Landroid/net/nsd/NsdManager;.resolveService:(Landroid/net/nsd/NsdServiceInfo;Landroid/net/nsd/NsdManager$ResolveListener;)V // method@004f │ │ +0188e4: 281a |0066: goto 0080 // +001a │ │ +0188e6: 2200 6700 |0067: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +0188ea: 7010 c500 0000 |0069: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +0188f0: 5451 f901 |006c: iget-object v1, v5, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ +0188f4: 6e20 cb00 1000 |006e: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0188fa: 1a01 6d00 |0071: const-string v1, ": onServiceFound: " // string@006d │ │ +0188fe: 6e20 cb00 1000 |0073: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +018904: 6e20 ca00 6000 |0076: invoke-virtual {v0, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ +01890a: 6e10 ce00 0000 |0079: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +018910: 0c06 |007c: move-result-object v6 │ │ +018912: 7120 6400 6300 |007d: invoke-static {v3, v6}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +018918: 5456 f801 |0080: iget-object v6, v5, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +01891c: 6e10 b001 0600 |0082: invoke-virtual {v6}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +018922: 0e00 |0085: return-void │ │ +018924: 0d06 |0086: move-exception v6 │ │ +018926: 5450 f801 |0087: iget-object v0, v5, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +01892a: 6e10 b001 0000 |0089: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +018930: 2706 |008c: throw v6 │ │ catches : 2 │ │ 0x0009 - 0x003a │ │ -> 0x0086 │ │ 0x003e - 0x0080 │ │ -> 0x0086 │ │ positions : │ │ 0x0000 line=675 │ │ @@ -12282,73 +12282,73 @@ │ │ type : '(Landroid/net/nsd/NsdServiceInfo;)V' │ │ access : 0x0000 () │ │ code - │ │ registers : 5 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 119 16-bit code units │ │ -018944: |[018944] org.jsl.wfwt.Channel.onServiceLost:(Landroid/net/nsd/NsdServiceInfo;)V │ │ -018954: 6e10 5500 0400 |0000: invoke-virtual {v4}, Landroid/net/nsd/NsdServiceInfo;.getServiceName:()Ljava/lang/String; // method@0055 │ │ -01895a: 0c00 |0003: move-result-object v0 │ │ -01895c: 5431 f801 |0004: iget-object v1, v3, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -018960: 6e10 ae01 0100 |0006: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ -018966: 5431 fe01 |0009: iget-object v1, v3, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ -01896a: 6e20 7e01 0100 |000b: invoke-virtual {v1, v0}, Ljava/util/TreeMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@017e │ │ -018970: 0c01 |000e: move-result-object v1 │ │ -018972: 1f01 1a01 |000f: check-cast v1, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ -018976: 3901 1e00 |0011: if-nez v1, 002f // +001e │ │ -01897a: 1a00 aa00 |0013: const-string v0, "Channel" // string@00aa │ │ -01897e: 2201 6700 |0015: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ -018982: 7010 c500 0100 |0017: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -018988: 5432 f901 |001a: iget-object v2, v3, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ -01898c: 6e20 cb00 2100 |001c: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -018992: 1a02 6100 |001f: const-string v2, ": internal error: service not found: " // string@0061 │ │ -018996: 6e20 cb00 2100 |0021: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01899c: 6e20 ca00 4100 |0024: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ -0189a2: 6e10 ce00 0100 |0027: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -0189a8: 0c04 |002a: move-result-object v4 │ │ -0189aa: 7120 6600 4000 |002b: invoke-static {v0, v4}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ -0189b0: 283c |002e: goto 006a // +003c │ │ -0189b2: 5434 ff01 |002f: iget-object v4, v3, Lorg/jsl/wfwt/Channel;.m_serviceName:Ljava/lang/String; // field@01ff │ │ -0189b6: 3804 3400 |0031: if-eqz v4, 0065 // +0034 │ │ -0189ba: 6e20 bb00 0400 |0033: invoke-virtual {v4, v0}, Ljava/lang/String;.compareTo:(Ljava/lang/String;)I // method@00bb │ │ -0189c0: 0a04 |0036: move-result v4 │ │ -0189c2: 3d04 2e00 |0037: if-lez v4, 0065 // +002e │ │ -0189c6: 5434 fd01 |0039: iget-object v4, v3, Lorg/jsl/wfwt/Channel;.m_resolveListener:Lorg/jsl/wfwt/Channel$ResolveListener; // field@01fd │ │ -0189ca: 3804 0c00 |003b: if-eqz v4, 0047 // +000c │ │ -0189ce: 6e10 6504 0400 |003d: invoke-virtual {v4}, Lorg/jsl/wfwt/Channel$ResolveListener;.getServiceName:()Ljava/lang/String; // method@0465 │ │ -0189d4: 0c04 |0040: move-result-object v4 │ │ -0189d6: 6e20 bc00 0400 |0041: invoke-virtual {v4, v0}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@00bc │ │ -0189dc: 0a04 |0044: move-result v4 │ │ -0189de: 3904 1c00 |0045: if-nez v4, 0061 // +001c │ │ -0189e2: 5414 e601 |0047: iget-object v4, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.connector:Lorg/jsl/collider/Connector; // field@01e6 │ │ -0189e6: 3904 1800 |0049: if-nez v4, 0061 // +0018 │ │ -0189ea: 5414 ea01 |004b: iget-object v4, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.session:Lorg/jsl/collider/Session; // field@01ea │ │ -0189ee: 3804 0300 |004d: if-eqz v4, 0050 // +0003 │ │ -0189f2: 2812 |004f: goto 0061 // +0012 │ │ -0189f4: 5434 fe01 |0050: iget-object v4, v3, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ -0189f8: 6e20 8101 0400 |0052: invoke-virtual {v4, v0}, Ljava/util/TreeMap;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@0181 │ │ -0189fe: 5434 0302 |0055: iget-object v4, v3, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ -018a02: 3804 1300 |0057: if-eqz v4, 006a // +0013 │ │ -018a06: 7010 8a04 0300 |0059: invoke-direct {v3}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ -018a0c: 0c00 |005c: move-result-object v0 │ │ -018a0e: 7220 6c04 0400 |005d: invoke-interface {v4, v0}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ -018a14: 280a |0060: goto 006a // +000a │ │ -018a16: 1204 |0061: const/4 v4, #int 0 // #0 │ │ -018a18: 5b14 e701 |0062: iput-object v4, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ -018a1c: 2806 |0064: goto 006a // +0006 │ │ -018a1e: 5434 fe01 |0065: iget-object v4, v3, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ -018a22: 6e20 8101 0400 |0067: invoke-virtual {v4, v0}, Ljava/util/TreeMap;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@0181 │ │ -018a28: 5434 f801 |006a: iget-object v4, v3, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -018a2c: 6e10 b001 0400 |006c: invoke-virtual {v4}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -018a32: 0e00 |006f: return-void │ │ -018a34: 0d04 |0070: move-exception v4 │ │ -018a36: 5430 f801 |0071: iget-object v0, v3, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -018a3a: 6e10 b001 0000 |0073: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -018a40: 2704 |0076: throw v4 │ │ +018948: |[018948] org.jsl.wfwt.Channel.onServiceLost:(Landroid/net/nsd/NsdServiceInfo;)V │ │ +018958: 6e10 5500 0400 |0000: invoke-virtual {v4}, Landroid/net/nsd/NsdServiceInfo;.getServiceName:()Ljava/lang/String; // method@0055 │ │ +01895e: 0c00 |0003: move-result-object v0 │ │ +018960: 5431 f801 |0004: iget-object v1, v3, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +018964: 6e10 ae01 0100 |0006: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ +01896a: 5431 fe01 |0009: iget-object v1, v3, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ +01896e: 6e20 7e01 0100 |000b: invoke-virtual {v1, v0}, Ljava/util/TreeMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@017e │ │ +018974: 0c01 |000e: move-result-object v1 │ │ +018976: 1f01 1a01 |000f: check-cast v1, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ +01897a: 3901 1e00 |0011: if-nez v1, 002f // +001e │ │ +01897e: 1a00 aa00 |0013: const-string v0, "Channel" // string@00aa │ │ +018982: 2201 6700 |0015: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ +018986: 7010 c500 0100 |0017: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +01898c: 5432 f901 |001a: iget-object v2, v3, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ +018990: 6e20 cb00 2100 |001c: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +018996: 1a02 6100 |001f: const-string v2, ": internal error: service not found: " // string@0061 │ │ +01899a: 6e20 cb00 2100 |0021: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0189a0: 6e20 ca00 4100 |0024: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ +0189a6: 6e10 ce00 0100 |0027: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +0189ac: 0c04 |002a: move-result-object v4 │ │ +0189ae: 7120 6600 4000 |002b: invoke-static {v0, v4}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ +0189b4: 283c |002e: goto 006a // +003c │ │ +0189b6: 5434 ff01 |002f: iget-object v4, v3, Lorg/jsl/wfwt/Channel;.m_serviceName:Ljava/lang/String; // field@01ff │ │ +0189ba: 3804 3400 |0031: if-eqz v4, 0065 // +0034 │ │ +0189be: 6e20 bb00 0400 |0033: invoke-virtual {v4, v0}, Ljava/lang/String;.compareTo:(Ljava/lang/String;)I // method@00bb │ │ +0189c4: 0a04 |0036: move-result v4 │ │ +0189c6: 3d04 2e00 |0037: if-lez v4, 0065 // +002e │ │ +0189ca: 5434 fd01 |0039: iget-object v4, v3, Lorg/jsl/wfwt/Channel;.m_resolveListener:Lorg/jsl/wfwt/Channel$ResolveListener; // field@01fd │ │ +0189ce: 3804 0c00 |003b: if-eqz v4, 0047 // +000c │ │ +0189d2: 6e10 6504 0400 |003d: invoke-virtual {v4}, Lorg/jsl/wfwt/Channel$ResolveListener;.getServiceName:()Ljava/lang/String; // method@0465 │ │ +0189d8: 0c04 |0040: move-result-object v4 │ │ +0189da: 6e20 bc00 0400 |0041: invoke-virtual {v4, v0}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@00bc │ │ +0189e0: 0a04 |0044: move-result v4 │ │ +0189e2: 3904 1c00 |0045: if-nez v4, 0061 // +001c │ │ +0189e6: 5414 e601 |0047: iget-object v4, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.connector:Lorg/jsl/collider/Connector; // field@01e6 │ │ +0189ea: 3904 1800 |0049: if-nez v4, 0061 // +0018 │ │ +0189ee: 5414 ea01 |004b: iget-object v4, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.session:Lorg/jsl/collider/Session; // field@01ea │ │ +0189f2: 3804 0300 |004d: if-eqz v4, 0050 // +0003 │ │ +0189f6: 2812 |004f: goto 0061 // +0012 │ │ +0189f8: 5434 fe01 |0050: iget-object v4, v3, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ +0189fc: 6e20 8101 0400 |0052: invoke-virtual {v4, v0}, Ljava/util/TreeMap;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@0181 │ │ +018a02: 5434 0302 |0055: iget-object v4, v3, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ +018a06: 3804 1300 |0057: if-eqz v4, 006a // +0013 │ │ +018a0a: 7010 8a04 0300 |0059: invoke-direct {v3}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ +018a10: 0c00 |005c: move-result-object v0 │ │ +018a12: 7220 6c04 0400 |005d: invoke-interface {v4, v0}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ +018a18: 280a |0060: goto 006a // +000a │ │ +018a1a: 1204 |0061: const/4 v4, #int 0 // #0 │ │ +018a1c: 5b14 e701 |0062: iput-object v4, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ +018a20: 2806 |0064: goto 006a // +0006 │ │ +018a22: 5434 fe01 |0065: iget-object v4, v3, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ +018a26: 6e20 8101 0400 |0067: invoke-virtual {v4, v0}, Ljava/util/TreeMap;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@0181 │ │ +018a2c: 5434 f801 |006a: iget-object v4, v3, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +018a30: 6e10 b001 0400 |006c: invoke-virtual {v4}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +018a36: 0e00 |006f: return-void │ │ +018a38: 0d04 |0070: move-exception v4 │ │ +018a3a: 5430 f801 |0071: iget-object v0, v3, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +018a3e: 6e10 b001 0000 |0073: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +018a44: 2704 |0076: throw v4 │ │ catches : 1 │ │ 0x0009 - 0x006a │ │ -> 0x0070 │ │ positions : │ │ 0x0000 line=733 │ │ 0x0004 line=735 │ │ 0x0009 line=738 │ │ @@ -12372,84 +12372,84 @@ │ │ type : '(Ljava/lang/String;Lorg/jsl/collider/Session;)V' │ │ access : 0x0000 () │ │ code - │ │ registers : 5 │ │ ins : 3 │ │ outs : 2 │ │ insns size : 145 16-bit code units │ │ -018a50: |[018a50] org.jsl.wfwt.Channel.removeSession:(Ljava/lang/String;Lorg/jsl/collider/Session;)V │ │ -018a60: 5420 f801 |0000: iget-object v0, v2, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -018a64: 6e10 ae01 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ -018a6a: 1a00 aa00 |0005: const-string v0, "Channel" // string@00aa │ │ -018a6e: 3903 2f00 |0007: if-nez v3, 0036 // +002f │ │ -018a72: 5423 0202 |0009: iget-object v3, v2, Lorg/jsl/wfwt/Channel;.m_sessions:Ljava/util/LinkedHashMap; // field@0202 │ │ -018a76: 6e20 6901 4300 |000b: invoke-virtual {v3, v4}, Ljava/util/LinkedHashMap;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@0169 │ │ -018a7c: 0c03 |000e: move-result-object v3 │ │ -018a7e: 1f03 1b01 |000f: check-cast v3, Lorg/jsl/wfwt/Channel$SessionInfo; // type@011b │ │ -018a82: 3903 1900 |0011: if-nez v3, 002a // +0019 │ │ -018a86: 2203 6700 |0013: new-instance v3, Ljava/lang/StringBuilder; // type@0067 │ │ -018a8a: 7010 c500 0300 |0015: invoke-direct {v3}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -018a90: 5424 f901 |0018: iget-object v4, v2, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ -018a94: 6e20 cb00 4300 |001a: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -018a9a: 1a04 6400 |001d: const-string v4, ": internal error: session not found" // string@0064 │ │ -018a9e: 6e20 cb00 4300 |001f: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -018aa4: 6e10 ce00 0300 |0022: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -018aaa: 0c03 |0025: move-result-object v3 │ │ -018aac: 7120 6200 3000 |0026: invoke-static {v0, v3}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ -018ab2: 285b |0029: goto 0084 // +005b │ │ -018ab4: 5423 0302 |002a: iget-object v3, v2, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ -018ab8: 3803 5800 |002c: if-eqz v3, 0084 // +0058 │ │ -018abc: 7010 8a04 0200 |002e: invoke-direct {v2}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ -018ac2: 0c04 |0031: move-result-object v4 │ │ -018ac4: 7220 6c04 4300 |0032: invoke-interface {v3, v4}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ -018aca: 284f |0035: goto 0084 // +004f │ │ -018acc: 5424 fe01 |0036: iget-object v4, v2, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ -018ad0: 6e20 7e01 3400 |0038: invoke-virtual {v4, v3}, Ljava/util/TreeMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@017e │ │ -018ad6: 0c04 |003b: move-result-object v4 │ │ -018ad8: 1f04 1a01 |003c: check-cast v4, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ -018adc: 3904 2100 |003e: if-nez v4, 005f // +0021 │ │ -018ae0: 2204 6700 |0040: new-instance v4, Ljava/lang/StringBuilder; // type@0067 │ │ -018ae4: 7010 c500 0400 |0042: invoke-direct {v4}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -018aea: 5421 f901 |0045: iget-object v1, v2, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ -018aee: 6e20 cb00 1400 |0047: invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -018af4: 1a01 6200 |004a: const-string v1, ": internal error: service session [" // string@0062 │ │ -018af8: 6e20 cb00 1400 |004c: invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -018afe: 6e20 cb00 3400 |004f: invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -018b04: 1a03 a103 |0052: const-string v3, "] not found" // string@03a1 │ │ -018b08: 6e20 cb00 3400 |0054: invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -018b0e: 6e10 ce00 0400 |0057: invoke-virtual {v4}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -018b14: 0c03 |005a: move-result-object v3 │ │ -018b16: 7120 6200 3000 |005b: invoke-static {v0, v3}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ -018b1c: 2826 |005e: goto 0084 // +0026 │ │ -018b1e: 5440 e701 |005f: iget-object v0, v4, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ -018b22: 3900 0800 |0061: if-nez v0, 0069 // +0008 │ │ -018b26: 5424 fe01 |0063: iget-object v4, v2, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ -018b2a: 6e20 8101 3400 |0065: invoke-virtual {v4, v3}, Ljava/util/TreeMap;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@0181 │ │ -018b30: 2811 |0068: goto 0079 // +0011 │ │ -018b32: 1203 |0069: const/4 v3, #int 0 // #0 │ │ -018b34: 5b43 ea01 |006a: iput-object v3, v4, Lorg/jsl/wfwt/Channel$ServiceInfo;.session:Lorg/jsl/collider/Session; // field@01ea │ │ -018b38: 5b43 e501 |006c: iput-object v3, v4, Lorg/jsl/wfwt/Channel$ServiceInfo;.channelSession:Lorg/jsl/wfwt/ChannelSession; // field@01e5 │ │ -018b3c: 5b43 ec01 |006e: iput-object v3, v4, Lorg/jsl/wfwt/Channel$ServiceInfo;.stationName:Ljava/lang/String; // field@01ec │ │ -018b40: 5b43 e401 |0070: iput-object v3, v4, Lorg/jsl/wfwt/Channel$ServiceInfo;.addr:Ljava/lang/String; // field@01e4 │ │ -018b44: 1203 |0072: const/4 v3, #int 0 // #0 │ │ -018b46: 5943 eb01 |0073: iput v3, v4, Lorg/jsl/wfwt/Channel$ServiceInfo;.state:I // field@01eb │ │ -018b4a: 1600 0000 |0075: const-wide/16 v0, #int 0 // #0 │ │ -018b4e: 5a40 e901 |0077: iput-wide v0, v4, Lorg/jsl/wfwt/Channel$ServiceInfo;.ping:J // field@01e9 │ │ -018b52: 5423 0302 |0079: iget-object v3, v2, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ -018b56: 3803 0900 |007b: if-eqz v3, 0084 // +0009 │ │ -018b5a: 7010 8a04 0200 |007d: invoke-direct {v2}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ -018b60: 0c04 |0080: move-result-object v4 │ │ -018b62: 7220 6c04 4300 |0081: invoke-interface {v3, v4}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ -018b68: 5423 f801 |0084: iget-object v3, v2, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -018b6c: 6e10 b001 0300 |0086: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -018b72: 0e00 |0089: return-void │ │ -018b74: 0d03 |008a: move-exception v3 │ │ -018b76: 5424 f801 |008b: iget-object v4, v2, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -018b7a: 6e10 b001 0400 |008d: invoke-virtual {v4}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -018b80: 2703 |0090: throw v3 │ │ +018a54: |[018a54] org.jsl.wfwt.Channel.removeSession:(Ljava/lang/String;Lorg/jsl/collider/Session;)V │ │ +018a64: 5420 f801 |0000: iget-object v0, v2, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +018a68: 6e10 ae01 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ +018a6e: 1a00 aa00 |0005: const-string v0, "Channel" // string@00aa │ │ +018a72: 3903 2f00 |0007: if-nez v3, 0036 // +002f │ │ +018a76: 5423 0202 |0009: iget-object v3, v2, Lorg/jsl/wfwt/Channel;.m_sessions:Ljava/util/LinkedHashMap; // field@0202 │ │ +018a7a: 6e20 6901 4300 |000b: invoke-virtual {v3, v4}, Ljava/util/LinkedHashMap;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@0169 │ │ +018a80: 0c03 |000e: move-result-object v3 │ │ +018a82: 1f03 1b01 |000f: check-cast v3, Lorg/jsl/wfwt/Channel$SessionInfo; // type@011b │ │ +018a86: 3903 1900 |0011: if-nez v3, 002a // +0019 │ │ +018a8a: 2203 6700 |0013: new-instance v3, Ljava/lang/StringBuilder; // type@0067 │ │ +018a8e: 7010 c500 0300 |0015: invoke-direct {v3}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +018a94: 5424 f901 |0018: iget-object v4, v2, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ +018a98: 6e20 cb00 4300 |001a: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +018a9e: 1a04 6400 |001d: const-string v4, ": internal error: session not found" // string@0064 │ │ +018aa2: 6e20 cb00 4300 |001f: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +018aa8: 6e10 ce00 0300 |0022: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +018aae: 0c03 |0025: move-result-object v3 │ │ +018ab0: 7120 6200 3000 |0026: invoke-static {v0, v3}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ +018ab6: 285b |0029: goto 0084 // +005b │ │ +018ab8: 5423 0302 |002a: iget-object v3, v2, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ +018abc: 3803 5800 |002c: if-eqz v3, 0084 // +0058 │ │ +018ac0: 7010 8a04 0200 |002e: invoke-direct {v2}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ +018ac6: 0c04 |0031: move-result-object v4 │ │ +018ac8: 7220 6c04 4300 |0032: invoke-interface {v3, v4}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ +018ace: 284f |0035: goto 0084 // +004f │ │ +018ad0: 5424 fe01 |0036: iget-object v4, v2, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ +018ad4: 6e20 7e01 3400 |0038: invoke-virtual {v4, v3}, Ljava/util/TreeMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@017e │ │ +018ada: 0c04 |003b: move-result-object v4 │ │ +018adc: 1f04 1a01 |003c: check-cast v4, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ +018ae0: 3904 2100 |003e: if-nez v4, 005f // +0021 │ │ +018ae4: 2204 6700 |0040: new-instance v4, Ljava/lang/StringBuilder; // type@0067 │ │ +018ae8: 7010 c500 0400 |0042: invoke-direct {v4}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +018aee: 5421 f901 |0045: iget-object v1, v2, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ +018af2: 6e20 cb00 1400 |0047: invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +018af8: 1a01 6200 |004a: const-string v1, ": internal error: service session [" // string@0062 │ │ +018afc: 6e20 cb00 1400 |004c: invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +018b02: 6e20 cb00 3400 |004f: invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +018b08: 1a03 a103 |0052: const-string v3, "] not found" // string@03a1 │ │ +018b0c: 6e20 cb00 3400 |0054: invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +018b12: 6e10 ce00 0400 |0057: invoke-virtual {v4}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +018b18: 0c03 |005a: move-result-object v3 │ │ +018b1a: 7120 6200 3000 |005b: invoke-static {v0, v3}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ +018b20: 2826 |005e: goto 0084 // +0026 │ │ +018b22: 5440 e701 |005f: iget-object v0, v4, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ +018b26: 3900 0800 |0061: if-nez v0, 0069 // +0008 │ │ +018b2a: 5424 fe01 |0063: iget-object v4, v2, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ +018b2e: 6e20 8101 3400 |0065: invoke-virtual {v4, v3}, Ljava/util/TreeMap;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@0181 │ │ +018b34: 2811 |0068: goto 0079 // +0011 │ │ +018b36: 1203 |0069: const/4 v3, #int 0 // #0 │ │ +018b38: 5b43 ea01 |006a: iput-object v3, v4, Lorg/jsl/wfwt/Channel$ServiceInfo;.session:Lorg/jsl/collider/Session; // field@01ea │ │ +018b3c: 5b43 e501 |006c: iput-object v3, v4, Lorg/jsl/wfwt/Channel$ServiceInfo;.channelSession:Lorg/jsl/wfwt/ChannelSession; // field@01e5 │ │ +018b40: 5b43 ec01 |006e: iput-object v3, v4, Lorg/jsl/wfwt/Channel$ServiceInfo;.stationName:Ljava/lang/String; // field@01ec │ │ +018b44: 5b43 e401 |0070: iput-object v3, v4, Lorg/jsl/wfwt/Channel$ServiceInfo;.addr:Ljava/lang/String; // field@01e4 │ │ +018b48: 1203 |0072: const/4 v3, #int 0 // #0 │ │ +018b4a: 5943 eb01 |0073: iput v3, v4, Lorg/jsl/wfwt/Channel$ServiceInfo;.state:I // field@01eb │ │ +018b4e: 1600 0000 |0075: const-wide/16 v0, #int 0 // #0 │ │ +018b52: 5a40 e901 |0077: iput-wide v0, v4, Lorg/jsl/wfwt/Channel$ServiceInfo;.ping:J // field@01e9 │ │ +018b56: 5423 0302 |0079: iget-object v3, v2, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ +018b5a: 3803 0900 |007b: if-eqz v3, 0084 // +0009 │ │ +018b5e: 7010 8a04 0200 |007d: invoke-direct {v2}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ +018b64: 0c04 |0080: move-result-object v4 │ │ +018b66: 7220 6c04 4300 |0081: invoke-interface {v3, v4}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ +018b6c: 5423 f801 |0084: iget-object v3, v2, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +018b70: 6e10 b001 0300 |0086: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +018b76: 0e00 |0089: return-void │ │ +018b78: 0d03 |008a: move-exception v3 │ │ +018b7a: 5424 f801 |008b: iget-object v4, v2, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +018b7e: 6e10 b001 0400 |008d: invoke-virtual {v4}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +018b84: 2703 |0090: throw v3 │ │ catches : 1 │ │ 0x0009 - 0x0084 │ │ -> 0x008a │ │ positions : │ │ 0x0000 line=1028 │ │ 0x0009 line=1034 │ │ 0x0013 line=1037 │ │ @@ -12479,72 +12479,72 @@ │ │ type : '(Ljava/lang/String;Lorg/jsl/collider/Session;J)V' │ │ access : 0x0000 () │ │ code - │ │ registers : 6 │ │ ins : 5 │ │ outs : 2 │ │ insns size : 123 16-bit code units │ │ -018c7c: |[018c7c] org.jsl.wfwt.Channel.setPing:(Ljava/lang/String;Lorg/jsl/collider/Session;J)V │ │ -018c8c: 5410 f801 |0000: iget-object v0, v1, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -018c90: 6e10 ae01 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ -018c96: 1a00 aa00 |0005: const-string v0, "Channel" // string@00aa │ │ -018c9a: 3902 3100 |0007: if-nez v2, 0038 // +0031 │ │ -018c9e: 5412 0202 |0009: iget-object v2, v1, Lorg/jsl/wfwt/Channel;.m_sessions:Ljava/util/LinkedHashMap; // field@0202 │ │ -018ca2: 6e20 6601 3200 |000b: invoke-virtual {v2, v3}, Ljava/util/LinkedHashMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@0166 │ │ -018ca8: 0c02 |000e: move-result-object v2 │ │ -018caa: 1f02 1b01 |000f: check-cast v2, Lorg/jsl/wfwt/Channel$SessionInfo; // type@011b │ │ -018cae: 3902 1900 |0011: if-nez v2, 002a // +0019 │ │ -018cb2: 2202 6700 |0013: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ -018cb6: 7010 c500 0200 |0015: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -018cbc: 5413 f901 |0018: iget-object v3, v1, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ -018cc0: 6e20 cb00 3200 |001a: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -018cc6: 1a03 6400 |001d: const-string v3, ": internal error: session not found" // string@0064 │ │ -018cca: 6e20 cb00 3200 |001f: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -018cd0: 6e10 ce00 0200 |0022: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -018cd6: 0c02 |0025: move-result-object v2 │ │ -018cd8: 7120 6200 2000 |0026: invoke-static {v0, v2}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ -018cde: 2845 |0029: goto 006e // +0045 │ │ -018ce0: 5a24 ef01 |002a: iput-wide v4, v2, Lorg/jsl/wfwt/Channel$SessionInfo;.ping:J // field@01ef │ │ -018ce4: 5412 0302 |002c: iget-object v2, v1, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ -018ce8: 3802 4000 |002e: if-eqz v2, 006e // +0040 │ │ -018cec: 7010 8a04 0100 |0030: invoke-direct {v1}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ -018cf2: 0c03 |0033: move-result-object v3 │ │ -018cf4: 7220 6c04 3200 |0034: invoke-interface {v2, v3}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ -018cfa: 2837 |0037: goto 006e // +0037 │ │ -018cfc: 5413 fe01 |0038: iget-object v3, v1, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ -018d00: 6e20 7e01 2300 |003a: invoke-virtual {v3, v2}, Ljava/util/TreeMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@017e │ │ -018d06: 0c03 |003d: move-result-object v3 │ │ -018d08: 1f03 1a01 |003e: check-cast v3, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ -018d0c: 3803 1000 |0040: if-eqz v3, 0050 // +0010 │ │ -018d10: 5a34 e901 |0042: iput-wide v4, v3, Lorg/jsl/wfwt/Channel$ServiceInfo;.ping:J // field@01e9 │ │ -018d14: 5412 0302 |0044: iget-object v2, v1, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ -018d18: 3802 2800 |0046: if-eqz v2, 006e // +0028 │ │ -018d1c: 7010 8a04 0100 |0048: invoke-direct {v1}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ -018d22: 0c03 |004b: move-result-object v3 │ │ -018d24: 7220 6c04 3200 |004c: invoke-interface {v2, v3}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ -018d2a: 281f |004f: goto 006e // +001f │ │ -018d2c: 2203 6700 |0050: new-instance v3, Ljava/lang/StringBuilder; // type@0067 │ │ -018d30: 7010 c500 0300 |0052: invoke-direct {v3}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -018d36: 5414 f901 |0055: iget-object v4, v1, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ -018d3a: 6e20 cb00 4300 |0057: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -018d40: 1a04 5f00 |005a: const-string v4, ": internal error: service [" // string@005f │ │ -018d44: 6e20 cb00 4300 |005c: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -018d4a: 6e20 cb00 2300 |005f: invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -018d50: 1a02 a203 |0062: const-string v2, "] not found." // string@03a2 │ │ -018d54: 6e20 cb00 2300 |0064: invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -018d5a: 6e10 ce00 0300 |0067: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -018d60: 0c02 |006a: move-result-object v2 │ │ -018d62: 7120 6200 2000 |006b: invoke-static {v0, v2}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ -018d68: 5412 f801 |006e: iget-object v2, v1, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -018d6c: 6e10 b001 0200 |0070: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -018d72: 0e00 |0073: return-void │ │ -018d74: 0d02 |0074: move-exception v2 │ │ -018d76: 5413 f801 |0075: iget-object v3, v1, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -018d7a: 6e10 b001 0300 |0077: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -018d80: 2702 |007a: throw v2 │ │ +018c80: |[018c80] org.jsl.wfwt.Channel.setPing:(Ljava/lang/String;Lorg/jsl/collider/Session;J)V │ │ +018c90: 5410 f801 |0000: iget-object v0, v1, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +018c94: 6e10 ae01 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ +018c9a: 1a00 aa00 |0005: const-string v0, "Channel" // string@00aa │ │ +018c9e: 3902 3100 |0007: if-nez v2, 0038 // +0031 │ │ +018ca2: 5412 0202 |0009: iget-object v2, v1, Lorg/jsl/wfwt/Channel;.m_sessions:Ljava/util/LinkedHashMap; // field@0202 │ │ +018ca6: 6e20 6601 3200 |000b: invoke-virtual {v2, v3}, Ljava/util/LinkedHashMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@0166 │ │ +018cac: 0c02 |000e: move-result-object v2 │ │ +018cae: 1f02 1b01 |000f: check-cast v2, Lorg/jsl/wfwt/Channel$SessionInfo; // type@011b │ │ +018cb2: 3902 1900 |0011: if-nez v2, 002a // +0019 │ │ +018cb6: 2202 6700 |0013: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ +018cba: 7010 c500 0200 |0015: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +018cc0: 5413 f901 |0018: iget-object v3, v1, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ +018cc4: 6e20 cb00 3200 |001a: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +018cca: 1a03 6400 |001d: const-string v3, ": internal error: session not found" // string@0064 │ │ +018cce: 6e20 cb00 3200 |001f: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +018cd4: 6e10 ce00 0200 |0022: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +018cda: 0c02 |0025: move-result-object v2 │ │ +018cdc: 7120 6200 2000 |0026: invoke-static {v0, v2}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ +018ce2: 2845 |0029: goto 006e // +0045 │ │ +018ce4: 5a24 ef01 |002a: iput-wide v4, v2, Lorg/jsl/wfwt/Channel$SessionInfo;.ping:J // field@01ef │ │ +018ce8: 5412 0302 |002c: iget-object v2, v1, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ +018cec: 3802 4000 |002e: if-eqz v2, 006e // +0040 │ │ +018cf0: 7010 8a04 0100 |0030: invoke-direct {v1}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ +018cf6: 0c03 |0033: move-result-object v3 │ │ +018cf8: 7220 6c04 3200 |0034: invoke-interface {v2, v3}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ +018cfe: 2837 |0037: goto 006e // +0037 │ │ +018d00: 5413 fe01 |0038: iget-object v3, v1, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ +018d04: 6e20 7e01 2300 |003a: invoke-virtual {v3, v2}, Ljava/util/TreeMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@017e │ │ +018d0a: 0c03 |003d: move-result-object v3 │ │ +018d0c: 1f03 1a01 |003e: check-cast v3, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ +018d10: 3803 1000 |0040: if-eqz v3, 0050 // +0010 │ │ +018d14: 5a34 e901 |0042: iput-wide v4, v3, Lorg/jsl/wfwt/Channel$ServiceInfo;.ping:J // field@01e9 │ │ +018d18: 5412 0302 |0044: iget-object v2, v1, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ +018d1c: 3802 2800 |0046: if-eqz v2, 006e // +0028 │ │ +018d20: 7010 8a04 0100 |0048: invoke-direct {v1}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ +018d26: 0c03 |004b: move-result-object v3 │ │ +018d28: 7220 6c04 3200 |004c: invoke-interface {v2, v3}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ +018d2e: 281f |004f: goto 006e // +001f │ │ +018d30: 2203 6700 |0050: new-instance v3, Ljava/lang/StringBuilder; // type@0067 │ │ +018d34: 7010 c500 0300 |0052: invoke-direct {v3}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +018d3a: 5414 f901 |0055: iget-object v4, v1, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ +018d3e: 6e20 cb00 4300 |0057: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +018d44: 1a04 5f00 |005a: const-string v4, ": internal error: service [" // string@005f │ │ +018d48: 6e20 cb00 4300 |005c: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +018d4e: 6e20 cb00 2300 |005f: invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +018d54: 1a02 a203 |0062: const-string v2, "] not found." // string@03a2 │ │ +018d58: 6e20 cb00 2300 |0064: invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +018d5e: 6e10 ce00 0300 |0067: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +018d64: 0c02 |006a: move-result-object v2 │ │ +018d66: 7120 6200 2000 |006b: invoke-static {v0, v2}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ +018d6c: 5412 f801 |006e: iget-object v2, v1, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +018d70: 6e10 b001 0200 |0070: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +018d76: 0e00 |0073: return-void │ │ +018d78: 0d02 |0074: move-exception v2 │ │ +018d7a: 5413 f801 |0075: iget-object v3, v1, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +018d7e: 6e10 b001 0300 |0077: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +018d84: 2702 |007a: throw v2 │ │ catches : 1 │ │ 0x0009 - 0x006e │ │ -> 0x0074 │ │ positions : │ │ 0x0000 line=979 │ │ 0x0009 line=985 │ │ 0x0013 line=988 │ │ @@ -12569,48 +12569,48 @@ │ │ type : '(Ljava/lang/String;Lorg/jsl/collider/Session;I)V' │ │ access : 0x0000 () │ │ code - │ │ registers : 5 │ │ ins : 4 │ │ outs : 2 │ │ insns size : 67 16-bit code units │ │ -018d90: |[018d90] org.jsl.wfwt.Channel.setSessionState:(Ljava/lang/String;Lorg/jsl/collider/Session;I)V │ │ -018da0: 5410 f801 |0000: iget-object v0, v1, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -018da4: 6e10 ae01 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ -018daa: 3902 1a00 |0005: if-nez v2, 001f // +001a │ │ -018dae: 5412 0202 |0007: iget-object v2, v1, Lorg/jsl/wfwt/Channel;.m_sessions:Ljava/util/LinkedHashMap; // field@0202 │ │ -018db2: 6e20 6601 3200 |0009: invoke-virtual {v2, v3}, Ljava/util/LinkedHashMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@0166 │ │ -018db8: 0c02 |000c: move-result-object v2 │ │ -018dba: 1f02 1b01 |000d: check-cast v2, Lorg/jsl/wfwt/Channel$SessionInfo; // type@011b │ │ -018dbe: 3802 2700 |000f: if-eqz v2, 0036 // +0027 │ │ -018dc2: 5924 f001 |0011: iput v4, v2, Lorg/jsl/wfwt/Channel$SessionInfo;.state:I // field@01f0 │ │ -018dc6: 5412 0302 |0013: iget-object v2, v1, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ -018dca: 3802 2100 |0015: if-eqz v2, 0036 // +0021 │ │ -018dce: 7010 8a04 0100 |0017: invoke-direct {v1}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ -018dd4: 0c03 |001a: move-result-object v3 │ │ -018dd6: 7220 6c04 3200 |001b: invoke-interface {v2, v3}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ -018ddc: 2818 |001e: goto 0036 // +0018 │ │ -018dde: 5413 fe01 |001f: iget-object v3, v1, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ -018de2: 6e20 7e01 2300 |0021: invoke-virtual {v3, v2}, Ljava/util/TreeMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@017e │ │ -018de8: 0c02 |0024: move-result-object v2 │ │ -018dea: 1f02 1a01 |0025: check-cast v2, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ -018dee: 3802 0f00 |0027: if-eqz v2, 0036 // +000f │ │ -018df2: 5924 eb01 |0029: iput v4, v2, Lorg/jsl/wfwt/Channel$ServiceInfo;.state:I // field@01eb │ │ -018df6: 5412 0302 |002b: iget-object v2, v1, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ -018dfa: 3802 0900 |002d: if-eqz v2, 0036 // +0009 │ │ -018dfe: 7010 8a04 0100 |002f: invoke-direct {v1}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ -018e04: 0c03 |0032: move-result-object v3 │ │ -018e06: 7220 6c04 3200 |0033: invoke-interface {v2, v3}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ -018e0c: 5412 f801 |0036: iget-object v2, v1, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -018e10: 6e10 b001 0200 |0038: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -018e16: 0e00 |003b: return-void │ │ -018e18: 0d02 |003c: move-exception v2 │ │ -018e1a: 5413 f801 |003d: iget-object v3, v1, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -018e1e: 6e10 b001 0300 |003f: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -018e24: 2702 |0042: throw v2 │ │ +018d94: |[018d94] org.jsl.wfwt.Channel.setSessionState:(Ljava/lang/String;Lorg/jsl/collider/Session;I)V │ │ +018da4: 5410 f801 |0000: iget-object v0, v1, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +018da8: 6e10 ae01 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ +018dae: 3902 1a00 |0005: if-nez v2, 001f // +001a │ │ +018db2: 5412 0202 |0007: iget-object v2, v1, Lorg/jsl/wfwt/Channel;.m_sessions:Ljava/util/LinkedHashMap; // field@0202 │ │ +018db6: 6e20 6601 3200 |0009: invoke-virtual {v2, v3}, Ljava/util/LinkedHashMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@0166 │ │ +018dbc: 0c02 |000c: move-result-object v2 │ │ +018dbe: 1f02 1b01 |000d: check-cast v2, Lorg/jsl/wfwt/Channel$SessionInfo; // type@011b │ │ +018dc2: 3802 2700 |000f: if-eqz v2, 0036 // +0027 │ │ +018dc6: 5924 f001 |0011: iput v4, v2, Lorg/jsl/wfwt/Channel$SessionInfo;.state:I // field@01f0 │ │ +018dca: 5412 0302 |0013: iget-object v2, v1, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ +018dce: 3802 2100 |0015: if-eqz v2, 0036 // +0021 │ │ +018dd2: 7010 8a04 0100 |0017: invoke-direct {v1}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ +018dd8: 0c03 |001a: move-result-object v3 │ │ +018dda: 7220 6c04 3200 |001b: invoke-interface {v2, v3}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ +018de0: 2818 |001e: goto 0036 // +0018 │ │ +018de2: 5413 fe01 |001f: iget-object v3, v1, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ +018de6: 6e20 7e01 2300 |0021: invoke-virtual {v3, v2}, Ljava/util/TreeMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@017e │ │ +018dec: 0c02 |0024: move-result-object v2 │ │ +018dee: 1f02 1a01 |0025: check-cast v2, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ +018df2: 3802 0f00 |0027: if-eqz v2, 0036 // +000f │ │ +018df6: 5924 eb01 |0029: iput v4, v2, Lorg/jsl/wfwt/Channel$ServiceInfo;.state:I // field@01eb │ │ +018dfa: 5412 0302 |002b: iget-object v2, v1, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ +018dfe: 3802 0900 |002d: if-eqz v2, 0036 // +0009 │ │ +018e02: 7010 8a04 0100 |002f: invoke-direct {v1}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ +018e08: 0c03 |0032: move-result-object v3 │ │ +018e0a: 7220 6c04 3200 |0033: invoke-interface {v2, v3}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ +018e10: 5412 f801 |0036: iget-object v2, v1, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +018e14: 6e10 b001 0200 |0038: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +018e1a: 0e00 |003b: return-void │ │ +018e1c: 0d02 |003c: move-exception v2 │ │ +018e1e: 5413 f801 |003d: iget-object v3, v1, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +018e22: 6e10 b001 0300 |003f: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +018e28: 2702 |0042: throw v2 │ │ catches : 1 │ │ 0x0007 - 0x0036 │ │ -> 0x003c │ │ positions : │ │ 0x0000 line=933 │ │ 0x0007 line=939 │ │ 0x0011 line=945 │ │ @@ -12633,32 +12633,32 @@ │ │ type : '(Lorg/jsl/wfwt/Channel$StateListener;)V' │ │ access : 0x0000 () │ │ code - │ │ registers : 3 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 36 16-bit code units │ │ -018e34: |[018e34] org.jsl.wfwt.Channel.setStateListener:(Lorg/jsl/wfwt/Channel$StateListener;)V │ │ -018e44: 5410 f801 |0000: iget-object v0, v1, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -018e48: 6e10 ae01 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ -018e4e: 5b12 0302 |0005: iput-object v2, v1, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ -018e52: 3802 1000 |0007: if-eqz v2, 0017 // +0010 │ │ -018e56: 7010 9604 0100 |0009: invoke-direct {v1}, Lorg/jsl/wfwt/Channel;.updateStateLocked:()V // method@0496 │ │ -018e5c: 5410 ff01 |000c: iget-object v0, v1, Lorg/jsl/wfwt/Channel;.m_serviceName:Ljava/lang/String; // field@01ff │ │ -018e60: 3800 0900 |000e: if-eqz v0, 0017 // +0009 │ │ -018e64: 7010 8a04 0100 |0010: invoke-direct {v1}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ -018e6a: 0c00 |0013: move-result-object v0 │ │ -018e6c: 7220 6c04 0200 |0014: invoke-interface {v2, v0}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ -018e72: 5412 f801 |0017: iget-object v2, v1, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -018e76: 6e10 b001 0200 |0019: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -018e7c: 0e00 |001c: return-void │ │ -018e7e: 0d02 |001d: move-exception v2 │ │ -018e80: 5410 f801 |001e: iget-object v0, v1, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -018e84: 6e10 b001 0000 |0020: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -018e8a: 2702 |0023: throw v2 │ │ +018e38: |[018e38] org.jsl.wfwt.Channel.setStateListener:(Lorg/jsl/wfwt/Channel$StateListener;)V │ │ +018e48: 5410 f801 |0000: iget-object v0, v1, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +018e4c: 6e10 ae01 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ +018e52: 5b12 0302 |0005: iput-object v2, v1, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ +018e56: 3802 1000 |0007: if-eqz v2, 0017 // +0010 │ │ +018e5a: 7010 9604 0100 |0009: invoke-direct {v1}, Lorg/jsl/wfwt/Channel;.updateStateLocked:()V // method@0496 │ │ +018e60: 5410 ff01 |000c: iget-object v0, v1, Lorg/jsl/wfwt/Channel;.m_serviceName:Ljava/lang/String; // field@01ff │ │ +018e64: 3800 0900 |000e: if-eqz v0, 0017 // +0009 │ │ +018e68: 7010 8a04 0100 |0010: invoke-direct {v1}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ +018e6e: 0c00 |0013: move-result-object v0 │ │ +018e70: 7220 6c04 0200 |0014: invoke-interface {v2, v0}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ +018e76: 5412 f801 |0017: iget-object v2, v1, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +018e7a: 6e10 b001 0200 |0019: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +018e80: 0e00 |001c: return-void │ │ +018e82: 0d02 |001d: move-exception v2 │ │ +018e84: 5410 f801 |001e: iget-object v0, v1, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +018e88: 6e10 b001 0000 |0020: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +018e8e: 2702 |0023: throw v2 │ │ catches : 1 │ │ 0x0005 - 0x0017 │ │ -> 0x001d │ │ positions : │ │ 0x0000 line=655 │ │ 0x0005 line=658 │ │ 0x0009 line=661 │ │ @@ -12675,59 +12675,59 @@ │ │ type : '(Ljava/lang/String;Lorg/jsl/wfwt/ChannelSession;Ljava/lang/String;)V' │ │ access : 0x0000 () │ │ code - │ │ registers : 5 │ │ ins : 4 │ │ outs : 2 │ │ insns size : 93 16-bit code units │ │ -018e98: |[018e98] org.jsl.wfwt.Channel.setStationInfo:(Ljava/lang/String;Lorg/jsl/wfwt/ChannelSession;Ljava/lang/String;)V │ │ -018ea8: 5410 f801 |0000: iget-object v0, v1, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -018eac: 6e10 ae01 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ -018eb2: 5410 fe01 |0005: iget-object v0, v1, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ -018eb6: 6e20 7e01 2000 |0007: invoke-virtual {v0, v2}, Ljava/util/TreeMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@017e │ │ -018ebc: 0c00 |000a: move-result-object v0 │ │ -018ebe: 1f00 1a01 |000b: check-cast v0, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ -018ec2: 3800 2300 |000d: if-eqz v0, 0030 // +0023 │ │ -018ec6: 5b03 e501 |000f: iput-object v3, v0, Lorg/jsl/wfwt/Channel$ServiceInfo;.channelSession:Lorg/jsl/wfwt/ChannelSession; // field@01e5 │ │ -018eca: 5b04 ec01 |0011: iput-object v4, v0, Lorg/jsl/wfwt/Channel$ServiceInfo;.stationName:Ljava/lang/String; // field@01ec │ │ -018ece: 6e10 a004 0300 |0013: invoke-virtual {v3}, Lorg/jsl/wfwt/ChannelSession;.getRemoteAddress:()Ljava/net/SocketAddress; // method@04a0 │ │ -018ed4: 0c02 |0016: move-result-object v2 │ │ -018ed6: 6e10 b600 0200 |0017: invoke-virtual {v2}, Ljava/lang/Object;.toString:()Ljava/lang/String; // method@00b6 │ │ -018edc: 0c02 |001a: move-result-object v2 │ │ -018ede: 5b02 e401 |001b: iput-object v2, v0, Lorg/jsl/wfwt/Channel$ServiceInfo;.addr:Ljava/lang/String; // field@01e4 │ │ -018ee2: 1202 |001d: const/4 v2, #int 0 // #0 │ │ -018ee4: 5902 eb01 |001e: iput v2, v0, Lorg/jsl/wfwt/Channel$ServiceInfo;.state:I // field@01eb │ │ -018ee8: 1602 0000 |0020: const-wide/16 v2, #int 0 // #0 │ │ -018eec: 5a02 e901 |0022: iput-wide v2, v0, Lorg/jsl/wfwt/Channel$ServiceInfo;.ping:J // field@01e9 │ │ -018ef0: 5412 0302 |0024: iget-object v2, v1, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ -018ef4: 3802 2a00 |0026: if-eqz v2, 0050 // +002a │ │ -018ef8: 7010 8a04 0100 |0028: invoke-direct {v1}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ -018efe: 0c03 |002b: move-result-object v3 │ │ -018f00: 7220 6c04 3200 |002c: invoke-interface {v2, v3}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ -018f06: 2821 |002f: goto 0050 // +0021 │ │ -018f08: 1a03 aa00 |0030: const-string v3, "Channel" // string@00aa │ │ -018f0c: 2204 6700 |0032: new-instance v4, Ljava/lang/StringBuilder; // type@0067 │ │ -018f10: 7010 c500 0400 |0034: invoke-direct {v4}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -018f16: 5410 f901 |0037: iget-object v0, v1, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ -018f1a: 6e20 cb00 0400 |0039: invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -018f20: 1a00 5f00 |003c: const-string v0, ": internal error: service [" // string@005f │ │ -018f24: 6e20 cb00 0400 |003e: invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -018f2a: 6e20 cb00 2400 |0041: invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -018f30: 1a02 a103 |0044: const-string v2, "] not found" // string@03a1 │ │ -018f34: 6e20 cb00 2400 |0046: invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -018f3a: 6e10 ce00 0400 |0049: invoke-virtual {v4}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -018f40: 0c02 |004c: move-result-object v2 │ │ -018f42: 7120 6200 2300 |004d: invoke-static {v3, v2}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ -018f48: 5412 f801 |0050: iget-object v2, v1, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -018f4c: 6e10 b001 0200 |0052: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -018f52: 0e00 |0055: return-void │ │ -018f54: 0d02 |0056: move-exception v2 │ │ -018f56: 5413 f801 |0057: iget-object v3, v1, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -018f5a: 6e10 b001 0300 |0059: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -018f60: 2702 |005c: throw v2 │ │ +018e9c: |[018e9c] org.jsl.wfwt.Channel.setStationInfo:(Ljava/lang/String;Lorg/jsl/wfwt/ChannelSession;Ljava/lang/String;)V │ │ +018eac: 5410 f801 |0000: iget-object v0, v1, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +018eb0: 6e10 ae01 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ +018eb6: 5410 fe01 |0005: iget-object v0, v1, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ +018eba: 6e20 7e01 2000 |0007: invoke-virtual {v0, v2}, Ljava/util/TreeMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@017e │ │ +018ec0: 0c00 |000a: move-result-object v0 │ │ +018ec2: 1f00 1a01 |000b: check-cast v0, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ +018ec6: 3800 2300 |000d: if-eqz v0, 0030 // +0023 │ │ +018eca: 5b03 e501 |000f: iput-object v3, v0, Lorg/jsl/wfwt/Channel$ServiceInfo;.channelSession:Lorg/jsl/wfwt/ChannelSession; // field@01e5 │ │ +018ece: 5b04 ec01 |0011: iput-object v4, v0, Lorg/jsl/wfwt/Channel$ServiceInfo;.stationName:Ljava/lang/String; // field@01ec │ │ +018ed2: 6e10 a004 0300 |0013: invoke-virtual {v3}, Lorg/jsl/wfwt/ChannelSession;.getRemoteAddress:()Ljava/net/SocketAddress; // method@04a0 │ │ +018ed8: 0c02 |0016: move-result-object v2 │ │ +018eda: 6e10 b600 0200 |0017: invoke-virtual {v2}, Ljava/lang/Object;.toString:()Ljava/lang/String; // method@00b6 │ │ +018ee0: 0c02 |001a: move-result-object v2 │ │ +018ee2: 5b02 e401 |001b: iput-object v2, v0, Lorg/jsl/wfwt/Channel$ServiceInfo;.addr:Ljava/lang/String; // field@01e4 │ │ +018ee6: 1202 |001d: const/4 v2, #int 0 // #0 │ │ +018ee8: 5902 eb01 |001e: iput v2, v0, Lorg/jsl/wfwt/Channel$ServiceInfo;.state:I // field@01eb │ │ +018eec: 1602 0000 |0020: const-wide/16 v2, #int 0 // #0 │ │ +018ef0: 5a02 e901 |0022: iput-wide v2, v0, Lorg/jsl/wfwt/Channel$ServiceInfo;.ping:J // field@01e9 │ │ +018ef4: 5412 0302 |0024: iget-object v2, v1, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ +018ef8: 3802 2a00 |0026: if-eqz v2, 0050 // +002a │ │ +018efc: 7010 8a04 0100 |0028: invoke-direct {v1}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ +018f02: 0c03 |002b: move-result-object v3 │ │ +018f04: 7220 6c04 3200 |002c: invoke-interface {v2, v3}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ +018f0a: 2821 |002f: goto 0050 // +0021 │ │ +018f0c: 1a03 aa00 |0030: const-string v3, "Channel" // string@00aa │ │ +018f10: 2204 6700 |0032: new-instance v4, Ljava/lang/StringBuilder; // type@0067 │ │ +018f14: 7010 c500 0400 |0034: invoke-direct {v4}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +018f1a: 5410 f901 |0037: iget-object v0, v1, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ +018f1e: 6e20 cb00 0400 |0039: invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +018f24: 1a00 5f00 |003c: const-string v0, ": internal error: service [" // string@005f │ │ +018f28: 6e20 cb00 0400 |003e: invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +018f2e: 6e20 cb00 2400 |0041: invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +018f34: 1a02 a103 |0044: const-string v2, "] not found" // string@03a1 │ │ +018f38: 6e20 cb00 2400 |0046: invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +018f3e: 6e10 ce00 0400 |0049: invoke-virtual {v4}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +018f44: 0c02 |004c: move-result-object v2 │ │ +018f46: 7120 6200 2300 |004d: invoke-static {v3, v2}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ +018f4c: 5412 f801 |0050: iget-object v2, v1, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +018f50: 6e10 b001 0200 |0052: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +018f56: 0e00 |0055: return-void │ │ +018f58: 0d02 |0056: move-exception v2 │ │ +018f5a: 5413 f801 |0057: iget-object v3, v1, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +018f5e: 6e10 b001 0300 |0059: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +018f64: 2702 |005c: throw v2 │ │ catches : 1 │ │ 0x0005 - 0x0050 │ │ -> 0x0056 │ │ positions : │ │ 0x0000 line=870 │ │ 0x0005 line=873 │ │ 0x000f line=876 │ │ @@ -12751,68 +12751,68 @@ │ │ type : '(Ljava/lang/String;)V' │ │ access : 0x0000 () │ │ code - │ │ registers : 4 │ │ ins : 2 │ │ outs : 3 │ │ insns size : 103 16-bit code units │ │ -018f70: |[018f70] org.jsl.wfwt.Channel.setStationName:(Ljava/lang/String;)V │ │ -018f80: 5420 f801 |0000: iget-object v0, v2, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -018f84: 6e10 ae01 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ -018f8a: 5b23 0402 |0005: iput-object v3, v2, Lorg/jsl/wfwt/Channel;.m_stationName:Ljava/lang/String; // field@0204 │ │ -018f8e: 7110 3105 0300 |0007: invoke-static {v3}, Lorg/jsl/wfwt/Protocol$StationName;.create:(Ljava/lang/String;)Lorg/jsl/collider/RetainableByteBuffer; // method@0531 │ │ -018f94: 0c03 |000a: move-result-object v3 │ │ -018f96: 5420 fe01 |000b: iget-object v0, v2, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ -018f9a: 6e10 7b01 0000 |000d: invoke-virtual {v0}, Ljava/util/TreeMap;.entrySet:()Ljava/util/Set; // method@017b │ │ -018fa0: 0c00 |0010: move-result-object v0 │ │ -018fa2: 7210 7801 0000 |0011: invoke-interface {v0}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@0178 │ │ -018fa8: 0c00 |0014: move-result-object v0 │ │ -018faa: 7210 6101 0000 |0015: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@0161 │ │ -018fb0: 0a01 |0018: move-result v1 │ │ -018fb2: 3801 1600 |0019: if-eqz v1, 002f // +0016 │ │ -018fb6: 7210 6201 0000 |001b: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0162 │ │ -018fbc: 0c01 |001e: move-result-object v1 │ │ -018fbe: 1f01 9400 |001f: check-cast v1, Ljava/util/Map$Entry; // type@0094 │ │ -018fc2: 7210 6b01 0100 |0021: invoke-interface {v1}, Ljava/util/Map$Entry;.getValue:()Ljava/lang/Object; // method@016b │ │ -018fc8: 0c01 |0024: move-result-object v1 │ │ -018fca: 1f01 1a01 |0025: check-cast v1, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ -018fce: 5411 ea01 |0027: iget-object v1, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.session:Lorg/jsl/collider/Session; // field@01ea │ │ -018fd2: 3801 ecff |0029: if-eqz v1, 0015 // -0014 │ │ -018fd6: 7220 5303 3100 |002b: invoke-interface {v1, v3}, Lorg/jsl/collider/Session;.sendData:(Lorg/jsl/collider/RetainableByteBuffer;)I // method@0353 │ │ -018fdc: 28e7 |002e: goto 0015 // -0019 │ │ -018fde: 5420 0202 |002f: iget-object v0, v2, Lorg/jsl/wfwt/Channel;.m_sessions:Ljava/util/LinkedHashMap; // field@0202 │ │ -018fe2: 6e10 6701 0000 |0031: invoke-virtual {v0}, Ljava/util/LinkedHashMap;.keySet:()Ljava/util/Set; // method@0167 │ │ -018fe8: 0c00 |0034: move-result-object v0 │ │ -018fea: 7210 7801 0000 |0035: invoke-interface {v0}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@0178 │ │ -018ff0: 0c00 |0038: move-result-object v0 │ │ -018ff2: 7210 6101 0000 |0039: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@0161 │ │ -018ff8: 0a01 |003c: move-result v1 │ │ -018ffa: 3801 0c00 |003d: if-eqz v1, 0049 // +000c │ │ -018ffe: 7210 6201 0000 |003f: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0162 │ │ -019004: 0c01 |0042: move-result-object v1 │ │ -019006: 1f01 e500 |0043: check-cast v1, Lorg/jsl/collider/Session; // type@00e5 │ │ -01900a: 7220 5303 3100 |0045: invoke-interface {v1, v3}, Lorg/jsl/collider/Session;.sendData:(Lorg/jsl/collider/RetainableByteBuffer;)I // method@0353 │ │ -019010: 28f1 |0048: goto 0039 // -000f │ │ -019012: 6e10 e602 0300 |0049: invoke-virtual {v3}, Lorg/jsl/collider/RetainableByteBuffer;.release:()V // method@02e6 │ │ -019018: 280d |004c: goto 0059 // +000d │ │ -01901a: 0d03 |004d: move-exception v3 │ │ -01901c: 2811 |004e: goto 005f // +0011 │ │ -01901e: 0d03 |004f: move-exception v3 │ │ -019020: 1a00 aa00 |0050: const-string v0, "Channel" // string@00aa │ │ -019024: 6e10 5301 0300 |0052: invoke-virtual {v3}, Ljava/nio/charset/CharacterCodingException;.toString:()Ljava/lang/String; // method@0153 │ │ -01902a: 0c01 |0055: move-result-object v1 │ │ -01902c: 7130 6700 1003 |0056: invoke-static {v0, v1, v3}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I // method@0067 │ │ -019032: 5423 f801 |0059: iget-object v3, v2, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -019036: 6e10 b001 0300 |005b: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -01903c: 0e00 |005e: return-void │ │ -01903e: 5420 f801 |005f: iget-object v0, v2, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -019042: 6e10 b001 0000 |0061: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -019048: 2802 |0064: goto 0066 // +0002 │ │ -01904a: 2703 |0065: throw v3 │ │ -01904c: 28ff |0066: goto 0065 // -0001 │ │ +018f74: |[018f74] org.jsl.wfwt.Channel.setStationName:(Ljava/lang/String;)V │ │ +018f84: 5420 f801 |0000: iget-object v0, v2, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +018f88: 6e10 ae01 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ +018f8e: 5b23 0402 |0005: iput-object v3, v2, Lorg/jsl/wfwt/Channel;.m_stationName:Ljava/lang/String; // field@0204 │ │ +018f92: 7110 3105 0300 |0007: invoke-static {v3}, Lorg/jsl/wfwt/Protocol$StationName;.create:(Ljava/lang/String;)Lorg/jsl/collider/RetainableByteBuffer; // method@0531 │ │ +018f98: 0c03 |000a: move-result-object v3 │ │ +018f9a: 5420 fe01 |000b: iget-object v0, v2, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ +018f9e: 6e10 7b01 0000 |000d: invoke-virtual {v0}, Ljava/util/TreeMap;.entrySet:()Ljava/util/Set; // method@017b │ │ +018fa4: 0c00 |0010: move-result-object v0 │ │ +018fa6: 7210 7801 0000 |0011: invoke-interface {v0}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@0178 │ │ +018fac: 0c00 |0014: move-result-object v0 │ │ +018fae: 7210 6101 0000 |0015: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@0161 │ │ +018fb4: 0a01 |0018: move-result v1 │ │ +018fb6: 3801 1600 |0019: if-eqz v1, 002f // +0016 │ │ +018fba: 7210 6201 0000 |001b: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0162 │ │ +018fc0: 0c01 |001e: move-result-object v1 │ │ +018fc2: 1f01 9400 |001f: check-cast v1, Ljava/util/Map$Entry; // type@0094 │ │ +018fc6: 7210 6b01 0100 |0021: invoke-interface {v1}, Ljava/util/Map$Entry;.getValue:()Ljava/lang/Object; // method@016b │ │ +018fcc: 0c01 |0024: move-result-object v1 │ │ +018fce: 1f01 1a01 |0025: check-cast v1, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ +018fd2: 5411 ea01 |0027: iget-object v1, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.session:Lorg/jsl/collider/Session; // field@01ea │ │ +018fd6: 3801 ecff |0029: if-eqz v1, 0015 // -0014 │ │ +018fda: 7220 5303 3100 |002b: invoke-interface {v1, v3}, Lorg/jsl/collider/Session;.sendData:(Lorg/jsl/collider/RetainableByteBuffer;)I // method@0353 │ │ +018fe0: 28e7 |002e: goto 0015 // -0019 │ │ +018fe2: 5420 0202 |002f: iget-object v0, v2, Lorg/jsl/wfwt/Channel;.m_sessions:Ljava/util/LinkedHashMap; // field@0202 │ │ +018fe6: 6e10 6701 0000 |0031: invoke-virtual {v0}, Ljava/util/LinkedHashMap;.keySet:()Ljava/util/Set; // method@0167 │ │ +018fec: 0c00 |0034: move-result-object v0 │ │ +018fee: 7210 7801 0000 |0035: invoke-interface {v0}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@0178 │ │ +018ff4: 0c00 |0038: move-result-object v0 │ │ +018ff6: 7210 6101 0000 |0039: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@0161 │ │ +018ffc: 0a01 |003c: move-result v1 │ │ +018ffe: 3801 0c00 |003d: if-eqz v1, 0049 // +000c │ │ +019002: 7210 6201 0000 |003f: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0162 │ │ +019008: 0c01 |0042: move-result-object v1 │ │ +01900a: 1f01 e500 |0043: check-cast v1, Lorg/jsl/collider/Session; // type@00e5 │ │ +01900e: 7220 5303 3100 |0045: invoke-interface {v1, v3}, Lorg/jsl/collider/Session;.sendData:(Lorg/jsl/collider/RetainableByteBuffer;)I // method@0353 │ │ +019014: 28f1 |0048: goto 0039 // -000f │ │ +019016: 6e10 e602 0300 |0049: invoke-virtual {v3}, Lorg/jsl/collider/RetainableByteBuffer;.release:()V // method@02e6 │ │ +01901c: 280d |004c: goto 0059 // +000d │ │ +01901e: 0d03 |004d: move-exception v3 │ │ +019020: 2811 |004e: goto 005f // +0011 │ │ +019022: 0d03 |004f: move-exception v3 │ │ +019024: 1a00 aa00 |0050: const-string v0, "Channel" // string@00aa │ │ +019028: 6e10 5301 0300 |0052: invoke-virtual {v3}, Ljava/nio/charset/CharacterCodingException;.toString:()Ljava/lang/String; // method@0153 │ │ +01902e: 0c01 |0055: move-result-object v1 │ │ +019030: 7130 6700 1003 |0056: invoke-static {v0, v1, v3}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I // method@0067 │ │ +019036: 5423 f801 |0059: iget-object v3, v2, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +01903a: 6e10 b001 0300 |005b: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +019040: 0e00 |005e: return-void │ │ +019042: 5420 f801 |005f: iget-object v0, v2, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +019046: 6e10 b001 0000 |0061: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +01904c: 2802 |0064: goto 0066 // +0002 │ │ +01904e: 2703 |0065: throw v3 │ │ +019050: 28ff |0066: goto 0065 // -0001 │ │ catches : 2 │ │ 0x0005 - 0x004c │ │ Ljava/nio/charset/CharacterCodingException; -> 0x004f │ │ -> 0x004d │ │ 0x0050 - 0x0059 │ │ -> 0x004d │ │ positions : │ │ @@ -12838,97 +12838,97 @@ │ │ type : '(Ljava/lang/String;Lorg/jsl/collider/Session;Ljava/lang/String;)V' │ │ access : 0x0000 () │ │ code - │ │ registers : 6 │ │ ins : 4 │ │ outs : 2 │ │ insns size : 180 16-bit code units │ │ -019068: |[019068] org.jsl.wfwt.Channel.setStationName:(Ljava/lang/String;Lorg/jsl/collider/Session;Ljava/lang/String;)V │ │ -019078: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -01907c: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -019082: 7210 5003 0400 |0005: invoke-interface {v4}, Lorg/jsl/collider/Session;.getRemoteAddress:()Ljava/net/SocketAddress; // method@0350 │ │ -019088: 0c01 |0008: move-result-object v1 │ │ -01908a: 6e10 b600 0100 |0009: invoke-virtual {v1}, Ljava/lang/Object;.toString:()Ljava/lang/String; // method@00b6 │ │ -019090: 0c01 |000c: move-result-object v1 │ │ -019092: 6e20 cb00 1000 |000d: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019098: 1a01 7800 |0010: const-string v1, ": serviceName=" // string@0078 │ │ -01909c: 6e20 cb00 1000 |0012: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0190a2: 3903 0500 |0015: if-nez v3, 001a // +0005 │ │ -0190a6: 1a01 8a00 |0017: const-string v1, "" // string@008a │ │ -0190aa: 2802 |0019: goto 001b // +0002 │ │ -0190ac: 0731 |001a: move-object v1, v3 │ │ -0190ae: 6e20 cb00 1000 |001b: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0190b4: 1a01 2600 |001e: const-string v1, " stationName=" // string@0026 │ │ -0190b8: 6e20 cb00 1000 |0020: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0190be: 6e20 cb00 5000 |0023: invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0190c4: 6e10 ce00 0000 |0026: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -0190ca: 0c00 |0029: move-result-object v0 │ │ -0190cc: 1a01 aa00 |002a: const-string v1, "Channel" // string@00aa │ │ -0190d0: 7120 6100 0100 |002c: invoke-static {v1, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -0190d6: 5420 f801 |002f: iget-object v0, v2, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -0190da: 6e10 ae01 0000 |0031: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ -0190e0: 3903 3d00 |0034: if-nez v3, 0071 // +003d │ │ -0190e4: 5423 0202 |0036: iget-object v3, v2, Lorg/jsl/wfwt/Channel;.m_sessions:Ljava/util/LinkedHashMap; // field@0202 │ │ -0190e8: 6e20 6601 4300 |0038: invoke-virtual {v3, v4}, Ljava/util/LinkedHashMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@0166 │ │ -0190ee: 0c03 |003b: move-result-object v3 │ │ -0190f0: 1f03 1b01 |003c: check-cast v3, Lorg/jsl/wfwt/Channel$SessionInfo; // type@011b │ │ -0190f4: 3903 2500 |003e: if-nez v3, 0063 // +0025 │ │ -0190f8: 2203 6700 |0040: new-instance v3, Ljava/lang/StringBuilder; // type@0067 │ │ -0190fc: 7010 c500 0300 |0042: invoke-direct {v3}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -019102: 5425 f901 |0045: iget-object v5, v2, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ -019106: 6e20 cb00 5300 |0047: invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01910c: 1a05 6300 |004a: const-string v5, ": internal error: session " // string@0063 │ │ -019110: 6e20 cb00 5300 |004c: invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019116: 6e10 b600 0400 |004f: invoke-virtual {v4}, Ljava/lang/Object;.toString:()Ljava/lang/String; // method@00b6 │ │ -01911c: 0c04 |0052: move-result-object v4 │ │ -01911e: 6e20 cb00 4300 |0053: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019124: 1a04 1b00 |0056: const-string v4, " not found" // string@001b │ │ -019128: 6e20 cb00 4300 |0058: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01912e: 6e10 ce00 0300 |005b: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -019134: 0c03 |005e: move-result-object v3 │ │ -019136: 7120 6200 3100 |005f: invoke-static {v1, v3}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ -01913c: 2845 |0062: goto 00a7 // +0045 │ │ -01913e: 5b35 f101 |0063: iput-object v5, v3, Lorg/jsl/wfwt/Channel$SessionInfo;.stationName:Ljava/lang/String; // field@01f1 │ │ -019142: 5423 0302 |0065: iget-object v3, v2, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ -019146: 3803 4000 |0067: if-eqz v3, 00a7 // +0040 │ │ -01914a: 7010 8a04 0200 |0069: invoke-direct {v2}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ -019150: 0c04 |006c: move-result-object v4 │ │ -019152: 7220 6c04 4300 |006d: invoke-interface {v3, v4}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ -019158: 2837 |0070: goto 00a7 // +0037 │ │ -01915a: 5424 fe01 |0071: iget-object v4, v2, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ -01915e: 6e20 7e01 3400 |0073: invoke-virtual {v4, v3}, Ljava/util/TreeMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@017e │ │ -019164: 0c04 |0076: move-result-object v4 │ │ -019166: 1f04 1a01 |0077: check-cast v4, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ -01916a: 3804 1000 |0079: if-eqz v4, 0089 // +0010 │ │ -01916e: 5b45 ec01 |007b: iput-object v5, v4, Lorg/jsl/wfwt/Channel$ServiceInfo;.stationName:Ljava/lang/String; // field@01ec │ │ -019172: 5423 0302 |007d: iget-object v3, v2, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ -019176: 3803 2800 |007f: if-eqz v3, 00a7 // +0028 │ │ -01917a: 7010 8a04 0200 |0081: invoke-direct {v2}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ -019180: 0c04 |0084: move-result-object v4 │ │ -019182: 7220 6c04 4300 |0085: invoke-interface {v3, v4}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ -019188: 281f |0088: goto 00a7 // +001f │ │ -01918a: 2204 6700 |0089: new-instance v4, Ljava/lang/StringBuilder; // type@0067 │ │ -01918e: 7010 c500 0400 |008b: invoke-direct {v4}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -019194: 5425 f901 |008e: iget-object v5, v2, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ -019198: 6e20 cb00 5400 |0090: invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01919e: 1a05 5f00 |0093: const-string v5, ": internal error: service [" // string@005f │ │ -0191a2: 6e20 cb00 5400 |0095: invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0191a8: 6e20 cb00 3400 |0098: invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0191ae: 1a03 a103 |009b: const-string v3, "] not found" // string@03a1 │ │ -0191b2: 6e20 cb00 3400 |009d: invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0191b8: 6e10 ce00 0400 |00a0: invoke-virtual {v4}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -0191be: 0c03 |00a3: move-result-object v3 │ │ -0191c0: 7120 6200 3100 |00a4: invoke-static {v1, v3}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ -0191c6: 5423 f801 |00a7: iget-object v3, v2, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -0191ca: 6e10 b001 0300 |00a9: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -0191d0: 0e00 |00ac: return-void │ │ -0191d2: 0d03 |00ad: move-exception v3 │ │ -0191d4: 5424 f801 |00ae: iget-object v4, v2, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -0191d8: 6e10 b001 0400 |00b0: invoke-virtual {v4}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -0191de: 2703 |00b3: throw v3 │ │ +01906c: |[01906c] org.jsl.wfwt.Channel.setStationName:(Ljava/lang/String;Lorg/jsl/collider/Session;Ljava/lang/String;)V │ │ +01907c: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +019080: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +019086: 7210 5003 0400 |0005: invoke-interface {v4}, Lorg/jsl/collider/Session;.getRemoteAddress:()Ljava/net/SocketAddress; // method@0350 │ │ +01908c: 0c01 |0008: move-result-object v1 │ │ +01908e: 6e10 b600 0100 |0009: invoke-virtual {v1}, Ljava/lang/Object;.toString:()Ljava/lang/String; // method@00b6 │ │ +019094: 0c01 |000c: move-result-object v1 │ │ +019096: 6e20 cb00 1000 |000d: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01909c: 1a01 7800 |0010: const-string v1, ": serviceName=" // string@0078 │ │ +0190a0: 6e20 cb00 1000 |0012: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0190a6: 3903 0500 |0015: if-nez v3, 001a // +0005 │ │ +0190aa: 1a01 8a00 |0017: const-string v1, "" // string@008a │ │ +0190ae: 2802 |0019: goto 001b // +0002 │ │ +0190b0: 0731 |001a: move-object v1, v3 │ │ +0190b2: 6e20 cb00 1000 |001b: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0190b8: 1a01 2600 |001e: const-string v1, " stationName=" // string@0026 │ │ +0190bc: 6e20 cb00 1000 |0020: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0190c2: 6e20 cb00 5000 |0023: invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0190c8: 6e10 ce00 0000 |0026: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +0190ce: 0c00 |0029: move-result-object v0 │ │ +0190d0: 1a01 aa00 |002a: const-string v1, "Channel" // string@00aa │ │ +0190d4: 7120 6100 0100 |002c: invoke-static {v1, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +0190da: 5420 f801 |002f: iget-object v0, v2, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +0190de: 6e10 ae01 0000 |0031: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ +0190e4: 3903 3d00 |0034: if-nez v3, 0071 // +003d │ │ +0190e8: 5423 0202 |0036: iget-object v3, v2, Lorg/jsl/wfwt/Channel;.m_sessions:Ljava/util/LinkedHashMap; // field@0202 │ │ +0190ec: 6e20 6601 4300 |0038: invoke-virtual {v3, v4}, Ljava/util/LinkedHashMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@0166 │ │ +0190f2: 0c03 |003b: move-result-object v3 │ │ +0190f4: 1f03 1b01 |003c: check-cast v3, Lorg/jsl/wfwt/Channel$SessionInfo; // type@011b │ │ +0190f8: 3903 2500 |003e: if-nez v3, 0063 // +0025 │ │ +0190fc: 2203 6700 |0040: new-instance v3, Ljava/lang/StringBuilder; // type@0067 │ │ +019100: 7010 c500 0300 |0042: invoke-direct {v3}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +019106: 5425 f901 |0045: iget-object v5, v2, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ +01910a: 6e20 cb00 5300 |0047: invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019110: 1a05 6300 |004a: const-string v5, ": internal error: session " // string@0063 │ │ +019114: 6e20 cb00 5300 |004c: invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01911a: 6e10 b600 0400 |004f: invoke-virtual {v4}, Ljava/lang/Object;.toString:()Ljava/lang/String; // method@00b6 │ │ +019120: 0c04 |0052: move-result-object v4 │ │ +019122: 6e20 cb00 4300 |0053: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019128: 1a04 1b00 |0056: const-string v4, " not found" // string@001b │ │ +01912c: 6e20 cb00 4300 |0058: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019132: 6e10 ce00 0300 |005b: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +019138: 0c03 |005e: move-result-object v3 │ │ +01913a: 7120 6200 3100 |005f: invoke-static {v1, v3}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ +019140: 2845 |0062: goto 00a7 // +0045 │ │ +019142: 5b35 f101 |0063: iput-object v5, v3, Lorg/jsl/wfwt/Channel$SessionInfo;.stationName:Ljava/lang/String; // field@01f1 │ │ +019146: 5423 0302 |0065: iget-object v3, v2, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ +01914a: 3803 4000 |0067: if-eqz v3, 00a7 // +0040 │ │ +01914e: 7010 8a04 0200 |0069: invoke-direct {v2}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ +019154: 0c04 |006c: move-result-object v4 │ │ +019156: 7220 6c04 4300 |006d: invoke-interface {v3, v4}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ +01915c: 2837 |0070: goto 00a7 // +0037 │ │ +01915e: 5424 fe01 |0071: iget-object v4, v2, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ +019162: 6e20 7e01 3400 |0073: invoke-virtual {v4, v3}, Ljava/util/TreeMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@017e │ │ +019168: 0c04 |0076: move-result-object v4 │ │ +01916a: 1f04 1a01 |0077: check-cast v4, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ +01916e: 3804 1000 |0079: if-eqz v4, 0089 // +0010 │ │ +019172: 5b45 ec01 |007b: iput-object v5, v4, Lorg/jsl/wfwt/Channel$ServiceInfo;.stationName:Ljava/lang/String; // field@01ec │ │ +019176: 5423 0302 |007d: iget-object v3, v2, Lorg/jsl/wfwt/Channel;.m_stateListener:Lorg/jsl/wfwt/Channel$StateListener; // field@0203 │ │ +01917a: 3803 2800 |007f: if-eqz v3, 00a7 // +0028 │ │ +01917e: 7010 8a04 0200 |0081: invoke-direct {v2}, Lorg/jsl/wfwt/Channel;.getStationListLocked:()[Lorg/jsl/wfwt/StationInfo; // method@048a │ │ +019184: 0c04 |0084: move-result-object v4 │ │ +019186: 7220 6c04 4300 |0085: invoke-interface {v3, v4}, Lorg/jsl/wfwt/Channel$StateListener;.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V // method@046c │ │ +01918c: 281f |0088: goto 00a7 // +001f │ │ +01918e: 2204 6700 |0089: new-instance v4, Ljava/lang/StringBuilder; // type@0067 │ │ +019192: 7010 c500 0400 |008b: invoke-direct {v4}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +019198: 5425 f901 |008e: iget-object v5, v2, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ +01919c: 6e20 cb00 5400 |0090: invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0191a2: 1a05 5f00 |0093: const-string v5, ": internal error: service [" // string@005f │ │ +0191a6: 6e20 cb00 5400 |0095: invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0191ac: 6e20 cb00 3400 |0098: invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0191b2: 1a03 a103 |009b: const-string v3, "] not found" // string@03a1 │ │ +0191b6: 6e20 cb00 3400 |009d: invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0191bc: 6e10 ce00 0400 |00a0: invoke-virtual {v4}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +0191c2: 0c03 |00a3: move-result-object v3 │ │ +0191c4: 7120 6200 3100 |00a4: invoke-static {v1, v3}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ +0191ca: 5423 f801 |00a7: iget-object v3, v2, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +0191ce: 6e10 b001 0300 |00a9: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +0191d4: 0e00 |00ac: return-void │ │ +0191d6: 0d03 |00ad: move-exception v3 │ │ +0191d8: 5424 f801 |00ae: iget-object v4, v2, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +0191dc: 6e10 b001 0400 |00b0: invoke-virtual {v4}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +0191e2: 2703 |00b3: throw v3 │ │ catches : 1 │ │ 0x0036 - 0x00a7 │ │ -> 0x00ad │ │ positions : │ │ 0x0000 line=814 │ │ 0x001b line=815 │ │ 0x002c line=814 │ │ @@ -12956,96 +12956,96 @@ │ │ type : '(Ljava/util/concurrent/CountDownLatch;)V' │ │ access : 0x0000 () │ │ code - │ │ registers : 6 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 165 16-bit code units │ │ -0191ec: |[0191ec] org.jsl.wfwt.Channel.stop:(Ljava/util/concurrent/CountDownLatch;)V │ │ -0191fc: 5440 f801 |0000: iget-object v0, v4, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -019200: 6e10 ae01 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ -019206: 5440 0502 |0005: iget-object v0, v4, Lorg/jsl/wfwt/Channel;.m_stopLatch:Ljava/util/concurrent/CountDownLatch; // field@0205 │ │ -01920a: 3800 0300 |0007: if-eqz v0, 000a // +0003 │ │ -01920e: 2845 |0009: goto 004e // +0045 │ │ -019210: 5440 f301 |000a: iget-object v0, v4, Lorg/jsl/wfwt/Channel;.m_acceptor:Lorg/jsl/wfwt/Channel$ChannelAcceptor; // field@01f3 │ │ -019214: 3800 3f00 |000c: if-eqz v0, 004b // +003f │ │ -019218: 5b45 0502 |000e: iput-object v5, v4, Lorg/jsl/wfwt/Channel;.m_stopLatch:Ljava/util/concurrent/CountDownLatch; // field@0205 │ │ -01921c: 5440 fc01 |0010: iget-object v0, v4, Lorg/jsl/wfwt/Channel;.m_registrationListener:Lorg/jsl/wfwt/Channel$RegistrationListener; // field@01fc │ │ -019220: 1a01 aa00 |0012: const-string v1, "Channel" // string@00aa │ │ -019224: 3900 1900 |0014: if-nez v0, 002d // +0019 │ │ -019228: 2200 6700 |0016: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -01922c: 7010 c500 0000 |0018: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -019232: 5442 f901 |001b: iget-object v2, v4, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ -019236: 6e20 cb00 2000 |001d: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01923c: 1a02 8200 |0020: const-string v2, ": wait acceptor" // string@0082 │ │ -019240: 6e20 cb00 2000 |0022: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019246: 6e10 ce00 0000 |0025: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01924c: 0c00 |0028: move-result-object v0 │ │ -01924e: 7120 6100 0100 |0029: invoke-static {v1, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -019254: 2822 |002c: goto 004e // +0022 │ │ -019256: 2200 6700 |002d: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -01925a: 7010 c500 0000 |002f: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -019260: 5442 f901 |0032: iget-object v2, v4, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ -019264: 6e20 cb00 2000 |0034: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01926a: 1a02 8100 |0037: const-string v2, ": unregister service" // string@0081 │ │ -01926e: 6e20 cb00 2000 |0039: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019274: 6e10 ce00 0000 |003c: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01927a: 0c00 |003f: move-result-object v0 │ │ -01927c: 7120 6100 0100 |0040: invoke-static {v1, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -019282: 5440 fa01 |0043: iget-object v0, v4, Lorg/jsl/wfwt/Channel;.m_nsdManager:Landroid/net/nsd/NsdManager; // field@01fa │ │ -019286: 5441 fc01 |0045: iget-object v1, v4, Lorg/jsl/wfwt/Channel;.m_registrationListener:Lorg/jsl/wfwt/Channel$RegistrationListener; // field@01fc │ │ -01928a: 6e20 5100 1000 |0047: invoke-virtual {v0, v1}, Landroid/net/nsd/NsdManager;.unregisterService:(Landroid/net/nsd/NsdManager$RegistrationListener;)V // method@0051 │ │ -019290: 2804 |004a: goto 004e // +0004 │ │ -019292: 6e10 8401 0500 |004b: invoke-virtual {v5}, Ljava/util/concurrent/CountDownLatch;.countDown:()V // method@0184 │ │ -019298: 5440 fe01 |004e: iget-object v0, v4, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ -01929c: 6e10 7b01 0000 |0050: invoke-virtual {v0}, Ljava/util/TreeMap;.entrySet:()Ljava/util/Set; // method@017b │ │ -0192a2: 0c00 |0053: move-result-object v0 │ │ -0192a4: 7210 7801 0000 |0054: invoke-interface {v0}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@0178 │ │ -0192aa: 0c00 |0057: move-result-object v0 │ │ -0192ac: 7210 6101 0000 |0058: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@0161 │ │ -0192b2: 0a01 |005b: move-result v1 │ │ -0192b4: 3801 3300 |005c: if-eqz v1, 008f // +0033 │ │ -0192b8: 7210 6201 0000 |005e: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0162 │ │ -0192be: 0c01 |0061: move-result-object v1 │ │ -0192c0: 1f01 9400 |0062: check-cast v1, Ljava/util/Map$Entry; // type@0094 │ │ -0192c4: 7210 6a01 0100 |0064: invoke-interface {v1}, Ljava/util/Map$Entry;.getKey:()Ljava/lang/Object; // method@016a │ │ -0192ca: 0c02 |0067: move-result-object v2 │ │ -0192cc: 1f02 6600 |0068: check-cast v2, Ljava/lang/String; // type@0066 │ │ -0192d0: 7210 6b01 0100 |006a: invoke-interface {v1}, Ljava/util/Map$Entry;.getValue:()Ljava/lang/Object; // method@016b │ │ -0192d6: 0c01 |006d: move-result-object v1 │ │ -0192d8: 1f01 1a01 |006e: check-cast v1, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ -0192dc: 5443 fd01 |0070: iget-object v3, v4, Lorg/jsl/wfwt/Channel;.m_resolveListener:Lorg/jsl/wfwt/Channel$ResolveListener; // field@01fd │ │ -0192e0: 3803 0c00 |0072: if-eqz v3, 007e // +000c │ │ -0192e4: 6e10 6504 0300 |0074: invoke-virtual {v3}, Lorg/jsl/wfwt/Channel$ResolveListener;.getServiceName:()Ljava/lang/String; // method@0465 │ │ -0192ea: 0c03 |0077: move-result-object v3 │ │ -0192ec: 6e20 bc00 2300 |0078: invoke-virtual {v3, v2}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@00bc │ │ -0192f2: 0a02 |007b: move-result v2 │ │ -0192f4: 3902 0f00 |007c: if-nez v2, 008b // +000f │ │ -0192f8: 5412 e601 |007e: iget-object v2, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.connector:Lorg/jsl/collider/Connector; // field@01e6 │ │ -0192fc: 3902 0b00 |0080: if-nez v2, 008b // +000b │ │ -019300: 5412 ea01 |0082: iget-object v2, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.session:Lorg/jsl/collider/Session; // field@01ea │ │ -019304: 3802 0300 |0084: if-eqz v2, 0087 // +0003 │ │ -019308: 2805 |0086: goto 008b // +0005 │ │ -01930a: 7210 6301 0000 |0087: invoke-interface {v0}, Ljava/util/Iterator;.remove:()V // method@0163 │ │ -019310: 28ce |008a: goto 0058 // -0032 │ │ -019312: 1202 |008b: const/4 v2, #int 0 // #0 │ │ -019314: 5b12 e701 |008c: iput-object v2, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ -019318: 28ca |008e: goto 0058 // -0036 │ │ -01931a: 5440 fd01 |008f: iget-object v0, v4, Lorg/jsl/wfwt/Channel;.m_resolveListener:Lorg/jsl/wfwt/Channel$ResolveListener; // field@01fd │ │ -01931e: 3900 0500 |0091: if-nez v0, 0096 // +0005 │ │ -019322: 6e10 8401 0500 |0093: invoke-virtual {v5}, Ljava/util/concurrent/CountDownLatch;.countDown:()V // method@0184 │ │ -019328: 5445 f801 |0096: iget-object v5, v4, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -01932c: 6e10 b001 0500 |0098: invoke-virtual {v5}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -019332: 0e00 |009b: return-void │ │ -019334: 0d05 |009c: move-exception v5 │ │ -019336: 5440 f801 |009d: iget-object v0, v4, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ -01933a: 6e10 b001 0000 |009f: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -019340: 2802 |00a2: goto 00a4 // +0002 │ │ -019342: 2705 |00a3: throw v5 │ │ -019344: 28ff |00a4: goto 00a3 // -0001 │ │ +0191f0: |[0191f0] org.jsl.wfwt.Channel.stop:(Ljava/util/concurrent/CountDownLatch;)V │ │ +019200: 5440 f801 |0000: iget-object v0, v4, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +019204: 6e10 ae01 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ +01920a: 5440 0502 |0005: iget-object v0, v4, Lorg/jsl/wfwt/Channel;.m_stopLatch:Ljava/util/concurrent/CountDownLatch; // field@0205 │ │ +01920e: 3800 0300 |0007: if-eqz v0, 000a // +0003 │ │ +019212: 2845 |0009: goto 004e // +0045 │ │ +019214: 5440 f301 |000a: iget-object v0, v4, Lorg/jsl/wfwt/Channel;.m_acceptor:Lorg/jsl/wfwt/Channel$ChannelAcceptor; // field@01f3 │ │ +019218: 3800 3f00 |000c: if-eqz v0, 004b // +003f │ │ +01921c: 5b45 0502 |000e: iput-object v5, v4, Lorg/jsl/wfwt/Channel;.m_stopLatch:Ljava/util/concurrent/CountDownLatch; // field@0205 │ │ +019220: 5440 fc01 |0010: iget-object v0, v4, Lorg/jsl/wfwt/Channel;.m_registrationListener:Lorg/jsl/wfwt/Channel$RegistrationListener; // field@01fc │ │ +019224: 1a01 aa00 |0012: const-string v1, "Channel" // string@00aa │ │ +019228: 3900 1900 |0014: if-nez v0, 002d // +0019 │ │ +01922c: 2200 6700 |0016: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +019230: 7010 c500 0000 |0018: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +019236: 5442 f901 |001b: iget-object v2, v4, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ +01923a: 6e20 cb00 2000 |001d: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019240: 1a02 8200 |0020: const-string v2, ": wait acceptor" // string@0082 │ │ +019244: 6e20 cb00 2000 |0022: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01924a: 6e10 ce00 0000 |0025: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +019250: 0c00 |0028: move-result-object v0 │ │ +019252: 7120 6100 0100 |0029: invoke-static {v1, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +019258: 2822 |002c: goto 004e // +0022 │ │ +01925a: 2200 6700 |002d: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +01925e: 7010 c500 0000 |002f: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +019264: 5442 f901 |0032: iget-object v2, v4, Lorg/jsl/wfwt/Channel;.m_name:Ljava/lang/String; // field@01f9 │ │ +019268: 6e20 cb00 2000 |0034: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01926e: 1a02 8100 |0037: const-string v2, ": unregister service" // string@0081 │ │ +019272: 6e20 cb00 2000 |0039: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019278: 6e10 ce00 0000 |003c: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01927e: 0c00 |003f: move-result-object v0 │ │ +019280: 7120 6100 0100 |0040: invoke-static {v1, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +019286: 5440 fa01 |0043: iget-object v0, v4, Lorg/jsl/wfwt/Channel;.m_nsdManager:Landroid/net/nsd/NsdManager; // field@01fa │ │ +01928a: 5441 fc01 |0045: iget-object v1, v4, Lorg/jsl/wfwt/Channel;.m_registrationListener:Lorg/jsl/wfwt/Channel$RegistrationListener; // field@01fc │ │ +01928e: 6e20 5100 1000 |0047: invoke-virtual {v0, v1}, Landroid/net/nsd/NsdManager;.unregisterService:(Landroid/net/nsd/NsdManager$RegistrationListener;)V // method@0051 │ │ +019294: 2804 |004a: goto 004e // +0004 │ │ +019296: 6e10 8401 0500 |004b: invoke-virtual {v5}, Ljava/util/concurrent/CountDownLatch;.countDown:()V // method@0184 │ │ +01929c: 5440 fe01 |004e: iget-object v0, v4, Lorg/jsl/wfwt/Channel;.m_serviceInfo:Ljava/util/TreeMap; // field@01fe │ │ +0192a0: 6e10 7b01 0000 |0050: invoke-virtual {v0}, Ljava/util/TreeMap;.entrySet:()Ljava/util/Set; // method@017b │ │ +0192a6: 0c00 |0053: move-result-object v0 │ │ +0192a8: 7210 7801 0000 |0054: invoke-interface {v0}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@0178 │ │ +0192ae: 0c00 |0057: move-result-object v0 │ │ +0192b0: 7210 6101 0000 |0058: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@0161 │ │ +0192b6: 0a01 |005b: move-result v1 │ │ +0192b8: 3801 3300 |005c: if-eqz v1, 008f // +0033 │ │ +0192bc: 7210 6201 0000 |005e: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0162 │ │ +0192c2: 0c01 |0061: move-result-object v1 │ │ +0192c4: 1f01 9400 |0062: check-cast v1, Ljava/util/Map$Entry; // type@0094 │ │ +0192c8: 7210 6a01 0100 |0064: invoke-interface {v1}, Ljava/util/Map$Entry;.getKey:()Ljava/lang/Object; // method@016a │ │ +0192ce: 0c02 |0067: move-result-object v2 │ │ +0192d0: 1f02 6600 |0068: check-cast v2, Ljava/lang/String; // type@0066 │ │ +0192d4: 7210 6b01 0100 |006a: invoke-interface {v1}, Ljava/util/Map$Entry;.getValue:()Ljava/lang/Object; // method@016b │ │ +0192da: 0c01 |006d: move-result-object v1 │ │ +0192dc: 1f01 1a01 |006e: check-cast v1, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ +0192e0: 5443 fd01 |0070: iget-object v3, v4, Lorg/jsl/wfwt/Channel;.m_resolveListener:Lorg/jsl/wfwt/Channel$ResolveListener; // field@01fd │ │ +0192e4: 3803 0c00 |0072: if-eqz v3, 007e // +000c │ │ +0192e8: 6e10 6504 0300 |0074: invoke-virtual {v3}, Lorg/jsl/wfwt/Channel$ResolveListener;.getServiceName:()Ljava/lang/String; // method@0465 │ │ +0192ee: 0c03 |0077: move-result-object v3 │ │ +0192f0: 6e20 bc00 2300 |0078: invoke-virtual {v3, v2}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@00bc │ │ +0192f6: 0a02 |007b: move-result v2 │ │ +0192f8: 3902 0f00 |007c: if-nez v2, 008b // +000f │ │ +0192fc: 5412 e601 |007e: iget-object v2, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.connector:Lorg/jsl/collider/Connector; // field@01e6 │ │ +019300: 3902 0b00 |0080: if-nez v2, 008b // +000b │ │ +019304: 5412 ea01 |0082: iget-object v2, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.session:Lorg/jsl/collider/Session; // field@01ea │ │ +019308: 3802 0300 |0084: if-eqz v2, 0087 // +0003 │ │ +01930c: 2805 |0086: goto 008b // +0005 │ │ +01930e: 7210 6301 0000 |0087: invoke-interface {v0}, Ljava/util/Iterator;.remove:()V // method@0163 │ │ +019314: 28ce |008a: goto 0058 // -0032 │ │ +019316: 1202 |008b: const/4 v2, #int 0 // #0 │ │ +019318: 5b12 e701 |008c: iput-object v2, v1, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ +01931c: 28ca |008e: goto 0058 // -0036 │ │ +01931e: 5440 fd01 |008f: iget-object v0, v4, Lorg/jsl/wfwt/Channel;.m_resolveListener:Lorg/jsl/wfwt/Channel$ResolveListener; // field@01fd │ │ +019322: 3900 0500 |0091: if-nez v0, 0096 // +0005 │ │ +019326: 6e10 8401 0500 |0093: invoke-virtual {v5}, Ljava/util/concurrent/CountDownLatch;.countDown:()V // method@0184 │ │ +01932c: 5445 f801 |0096: iget-object v5, v4, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +019330: 6e10 b001 0500 |0098: invoke-virtual {v5}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +019336: 0e00 |009b: return-void │ │ +019338: 0d05 |009c: move-exception v5 │ │ +01933a: 5440 f801 |009d: iget-object v0, v4, Lorg/jsl/wfwt/Channel;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@01f8 │ │ +01933e: 6e10 b001 0000 |009f: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +019344: 2802 |00a2: goto 00a4 // +0002 │ │ +019346: 2705 |00a3: throw v5 │ │ +019348: 28ff |00a4: goto 00a3 // -0001 │ │ catches : 2 │ │ 0x0005 - 0x0012 │ │ -> 0x009c │ │ 0x0016 - 0x0096 │ │ -> 0x009c │ │ positions : │ │ 0x0000 line=1096 │ │ @@ -13103,32 +13103,32 @@ │ │ type : '()V' │ │ access : 0x10008 (STATIC CONSTRUCTOR) │ │ code - │ │ registers : 0 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 1 16-bit code units │ │ -019428: |[019428] org.jsl.wfwt.Config.:()V │ │ -019438: 0e00 |0000: return-void │ │ +01942c: |[01942c] org.jsl.wfwt.Config.:()V │ │ +01943c: 0e00 |0000: return-void │ │ catches : (none) │ │ positions : │ │ locals : │ │ │ │ #1 : (in Lorg/jsl/wfwt/Config;) │ │ name : '' │ │ type : '()V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -01943c: |[01943c] org.jsl.wfwt.Config.:()V │ │ -01944c: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -019452: 0e00 |0003: return-void │ │ +019440: |[019440] org.jsl.wfwt.Config.:()V │ │ +019450: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +019456: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=22 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/jsl/wfwt/Config; │ │ │ │ Virtual methods - │ │ @@ -13234,32 +13234,32 @@ │ │ type : '()V' │ │ access : 0x10008 (STATIC CONSTRUCTOR) │ │ code - │ │ registers : 0 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 1 16-bit code units │ │ -01a04c: |[01a04c] org.jsl.wfwt.ListViewRow.:()V │ │ -01a05c: 0e00 |0000: return-void │ │ +01a050: |[01a050] org.jsl.wfwt.ListViewRow.:()V │ │ +01a060: 0e00 |0000: return-void │ │ catches : (none) │ │ positions : │ │ locals : │ │ │ │ #1 : (in Lorg/jsl/wfwt/ListViewRow;) │ │ name : '' │ │ type : '(Landroid/content/Context;)V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 4 16-bit code units │ │ -01a060: |[01a060] org.jsl.wfwt.ListViewRow.:(Landroid/content/Context;)V │ │ -01a070: 7020 8000 1000 |0000: invoke-direct {v0, v1}, Landroid/widget/LinearLayout;.:(Landroid/content/Context;)V // method@0080 │ │ -01a076: 0e00 |0003: return-void │ │ +01a064: |[01a064] org.jsl.wfwt.ListViewRow.:(Landroid/content/Context;)V │ │ +01a074: 7020 8000 1000 |0000: invoke-direct {v0, v1}, Landroid/widget/LinearLayout;.:(Landroid/content/Context;)V // method@0080 │ │ +01a07a: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=39 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/jsl/wfwt/ListViewRow; │ │ 0x0000 - 0x0004 reg=1 (null) Landroid/content/Context; │ │ │ │ @@ -13268,17 +13268,17 @@ │ │ type : '(Landroid/content/Context;Landroid/util/AttributeSet;)V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 3 │ │ ins : 3 │ │ outs : 3 │ │ insns size : 4 16-bit code units │ │ -01a078: |[01a078] org.jsl.wfwt.ListViewRow.:(Landroid/content/Context;Landroid/util/AttributeSet;)V │ │ -01a088: 7030 8100 1002 |0000: invoke-direct {v0, v1, v2}, Landroid/widget/LinearLayout;.:(Landroid/content/Context;Landroid/util/AttributeSet;)V // method@0081 │ │ -01a08e: 0e00 |0003: return-void │ │ +01a07c: |[01a07c] org.jsl.wfwt.ListViewRow.:(Landroid/content/Context;Landroid/util/AttributeSet;)V │ │ +01a08c: 7030 8100 1002 |0000: invoke-direct {v0, v1, v2}, Landroid/widget/LinearLayout;.:(Landroid/content/Context;Landroid/util/AttributeSet;)V // method@0081 │ │ +01a092: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=44 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/jsl/wfwt/ListViewRow; │ │ 0x0000 - 0x0004 reg=1 (null) Landroid/content/Context; │ │ 0x0000 - 0x0004 reg=2 (null) Landroid/util/AttributeSet; │ │ @@ -13288,17 +13288,17 @@ │ │ type : '(Landroid/content/Context;Landroid/util/AttributeSet;I)V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 4 │ │ ins : 4 │ │ outs : 4 │ │ insns size : 4 16-bit code units │ │ -01a090: |[01a090] org.jsl.wfwt.ListViewRow.:(Landroid/content/Context;Landroid/util/AttributeSet;I)V │ │ -01a0a0: 7040 8200 1032 |0000: invoke-direct {v0, v1, v2, v3}, Landroid/widget/LinearLayout;.:(Landroid/content/Context;Landroid/util/AttributeSet;I)V // method@0082 │ │ -01a0a6: 0e00 |0003: return-void │ │ +01a094: |[01a094] org.jsl.wfwt.ListViewRow.:(Landroid/content/Context;Landroid/util/AttributeSet;I)V │ │ +01a0a4: 7040 8200 1032 |0000: invoke-direct {v0, v1, v2, v3}, Landroid/widget/LinearLayout;.:(Landroid/content/Context;Landroid/util/AttributeSet;I)V // method@0082 │ │ +01a0aa: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=49 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/jsl/wfwt/ListViewRow; │ │ 0x0000 - 0x0004 reg=1 (null) Landroid/content/Context; │ │ 0x0000 - 0x0004 reg=2 (null) Landroid/util/AttributeSet; │ │ @@ -13310,32 +13310,32 @@ │ │ type : '(Lorg/jsl/wfwt/MainActivity;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 36 16-bit code units │ │ -01a0a8: |[01a0a8] org.jsl.wfwt.ListViewRow.init:(Lorg/jsl/wfwt/MainActivity;)V │ │ -01a0b8: 5b01 3302 |0000: iput-object v1, v0, Lorg/jsl/wfwt/ListViewRow;.m_activity:Lorg/jsl/wfwt/MainActivity; // field@0233 │ │ -01a0bc: 1401 1000 027f |0002: const v1, #float 1.728e+38 // #7f020010 │ │ -01a0c2: 6e20 c604 1000 |0005: invoke-virtual {v0, v1}, Lorg/jsl/wfwt/ListViewRow;.findViewById:(I)Landroid/view/View; // method@04c6 │ │ -01a0c8: 0c01 |0008: move-result-object v1 │ │ -01a0ca: 1f01 4900 |0009: check-cast v1, Landroid/widget/TextView; // type@0049 │ │ -01a0ce: 5b01 3702 |000b: iput-object v1, v0, Lorg/jsl/wfwt/ListViewRow;.m_textViewStationName:Landroid/widget/TextView; // field@0237 │ │ -01a0d2: 1401 0f00 027f |000d: const v1, #float 1.728e+38 // #7f02000f │ │ -01a0d8: 6e20 c604 1000 |0010: invoke-virtual {v0, v1}, Lorg/jsl/wfwt/ListViewRow;.findViewById:(I)Landroid/view/View; // method@04c6 │ │ -01a0de: 0c01 |0013: move-result-object v1 │ │ -01a0e0: 1f01 4900 |0014: check-cast v1, Landroid/widget/TextView; // type@0049 │ │ -01a0e4: 5b01 3602 |0016: iput-object v1, v0, Lorg/jsl/wfwt/ListViewRow;.m_textViewAddrAndPing:Landroid/widget/TextView; // field@0236 │ │ -01a0e8: 1401 0c00 027f |0018: const v1, #float 1.728e+38 // #7f02000c │ │ -01a0ee: 6e20 c604 1000 |001b: invoke-virtual {v0, v1}, Lorg/jsl/wfwt/ListViewRow;.findViewById:(I)Landroid/view/View; // method@04c6 │ │ -01a0f4: 0c01 |001e: move-result-object v1 │ │ -01a0f6: 1f01 4501 |001f: check-cast v1, Lorg/jsl/wfwt/StateView; // type@0145 │ │ -01a0fa: 5b01 3502 |0021: iput-object v1, v0, Lorg/jsl/wfwt/ListViewRow;.m_stateView:Lorg/jsl/wfwt/StateView; // field@0235 │ │ -01a0fe: 0e00 |0023: return-void │ │ +01a0ac: |[01a0ac] org.jsl.wfwt.ListViewRow.init:(Lorg/jsl/wfwt/MainActivity;)V │ │ +01a0bc: 5b01 3302 |0000: iput-object v1, v0, Lorg/jsl/wfwt/ListViewRow;.m_activity:Lorg/jsl/wfwt/MainActivity; // field@0233 │ │ +01a0c0: 1401 1000 027f |0002: const v1, #float 1.728e+38 // #7f020010 │ │ +01a0c6: 6e20 c604 1000 |0005: invoke-virtual {v0, v1}, Lorg/jsl/wfwt/ListViewRow;.findViewById:(I)Landroid/view/View; // method@04c6 │ │ +01a0cc: 0c01 |0008: move-result-object v1 │ │ +01a0ce: 1f01 4900 |0009: check-cast v1, Landroid/widget/TextView; // type@0049 │ │ +01a0d2: 5b01 3702 |000b: iput-object v1, v0, Lorg/jsl/wfwt/ListViewRow;.m_textViewStationName:Landroid/widget/TextView; // field@0237 │ │ +01a0d6: 1401 0f00 027f |000d: const v1, #float 1.728e+38 // #7f02000f │ │ +01a0dc: 6e20 c604 1000 |0010: invoke-virtual {v0, v1}, Lorg/jsl/wfwt/ListViewRow;.findViewById:(I)Landroid/view/View; // method@04c6 │ │ +01a0e2: 0c01 |0013: move-result-object v1 │ │ +01a0e4: 1f01 4900 |0014: check-cast v1, Landroid/widget/TextView; // type@0049 │ │ +01a0e8: 5b01 3602 |0016: iput-object v1, v0, Lorg/jsl/wfwt/ListViewRow;.m_textViewAddrAndPing:Landroid/widget/TextView; // field@0236 │ │ +01a0ec: 1401 0c00 027f |0018: const v1, #float 1.728e+38 // #7f02000c │ │ +01a0f2: 6e20 c604 1000 |001b: invoke-virtual {v0, v1}, Lorg/jsl/wfwt/ListViewRow;.findViewById:(I)Landroid/view/View; // method@04c6 │ │ +01a0f8: 0c01 |001e: move-result-object v1 │ │ +01a0fa: 1f01 4501 |001f: check-cast v1, Lorg/jsl/wfwt/StateView; // type@0145 │ │ +01a0fe: 5b01 3502 |0021: iput-object v1, v0, Lorg/jsl/wfwt/ListViewRow;.m_stateView:Lorg/jsl/wfwt/StateView; // field@0235 │ │ +01a102: 0e00 |0023: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=61 │ │ 0x0005 line=62 │ │ 0x0010 line=63 │ │ 0x001b line=64 │ │ locals : │ │ @@ -13347,23 +13347,23 @@ │ │ type : '(ILjava/lang/String;Ljava/lang/String;I)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 5 │ │ ins : 5 │ │ outs : 2 │ │ insns size : 18 16-bit code units │ │ -01a100: |[01a100] org.jsl.wfwt.ListViewRow.setData:(ILjava/lang/String;Ljava/lang/String;I)V │ │ -01a110: 5901 3402 |0000: iput v1, v0, Lorg/jsl/wfwt/ListViewRow;.m_position:I // field@0234 │ │ -01a114: 5401 3702 |0002: iget-object v1, v0, Lorg/jsl/wfwt/ListViewRow;.m_textViewStationName:Landroid/widget/TextView; // field@0237 │ │ -01a118: 6e20 8900 2100 |0004: invoke-virtual {v1, v2}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@0089 │ │ -01a11e: 5401 3602 |0007: iget-object v1, v0, Lorg/jsl/wfwt/ListViewRow;.m_textViewAddrAndPing:Landroid/widget/TextView; // field@0236 │ │ -01a122: 6e20 8900 3100 |0009: invoke-virtual {v1, v3}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@0089 │ │ -01a128: 5401 3502 |000c: iget-object v1, v0, Lorg/jsl/wfwt/ListViewRow;.m_stateView:Lorg/jsl/wfwt/StateView; // field@0235 │ │ -01a12c: 6e20 4b05 4100 |000e: invoke-virtual {v1, v4}, Lorg/jsl/wfwt/StateView;.setIndicatorState:(I)V // method@054b │ │ -01a132: 0e00 |0011: return-void │ │ +01a104: |[01a104] org.jsl.wfwt.ListViewRow.setData:(ILjava/lang/String;Ljava/lang/String;I)V │ │ +01a114: 5901 3402 |0000: iput v1, v0, Lorg/jsl/wfwt/ListViewRow;.m_position:I // field@0234 │ │ +01a118: 5401 3702 |0002: iget-object v1, v0, Lorg/jsl/wfwt/ListViewRow;.m_textViewStationName:Landroid/widget/TextView; // field@0237 │ │ +01a11c: 6e20 8900 2100 |0004: invoke-virtual {v1, v2}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@0089 │ │ +01a122: 5401 3602 |0007: iget-object v1, v0, Lorg/jsl/wfwt/ListViewRow;.m_textViewAddrAndPing:Landroid/widget/TextView; // field@0236 │ │ +01a126: 6e20 8900 3100 |0009: invoke-virtual {v1, v3}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@0089 │ │ +01a12c: 5401 3502 |000c: iget-object v1, v0, Lorg/jsl/wfwt/ListViewRow;.m_stateView:Lorg/jsl/wfwt/StateView; // field@0235 │ │ +01a130: 6e20 4b05 4100 |000e: invoke-virtual {v1, v4}, Lorg/jsl/wfwt/StateView;.setIndicatorState:(I)V // method@054b │ │ +01a136: 0e00 |0011: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=69 │ │ 0x0002 line=70 │ │ 0x0007 line=71 │ │ 0x000c line=72 │ │ locals : │ │ @@ -13378,28 +13378,28 @@ │ │ type : '(Z)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 5 │ │ ins : 2 │ │ outs : 3 │ │ insns size : 30 16-bit code units │ │ -01a134: |[01a134] org.jsl.wfwt.ListViewRow.setPressed:(Z)V │ │ -01a144: 6f20 8300 4300 |0000: invoke-super {v3, v4}, Landroid/widget/LinearLayout;.setPressed:(Z)V // method@0083 │ │ -01a14a: 6200 3202 |0003: sget-object v0, Lorg/jsl/wfwt/ListViewRow;.LOG_TAG:Ljava/lang/String; // field@0232 │ │ -01a14e: 2201 6700 |0005: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ -01a152: 1a02 b106 |0007: const-string v2, "setPressed: " // string@06b1 │ │ -01a156: 7020 c600 2100 |0009: invoke-direct {v1, v2}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ -01a15c: 6e20 cc00 4100 |000c: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(Z)Ljava/lang/StringBuilder; // method@00cc │ │ -01a162: 6e10 ce00 0100 |000f: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01a168: 0c01 |0012: move-result-object v1 │ │ -01a16a: 7120 6100 1000 |0013: invoke-static {v0, v1}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -01a170: 5430 3302 |0016: iget-object v0, v3, Lorg/jsl/wfwt/ListViewRow;.m_activity:Lorg/jsl/wfwt/MainActivity; // field@0233 │ │ -01a174: 5231 3402 |0018: iget v1, v3, Lorg/jsl/wfwt/ListViewRow;.m_position:I // field@0234 │ │ -01a178: 6e30 0205 1004 |001a: invoke-virtual {v0, v1, v4}, Lorg/jsl/wfwt/MainActivity;.onListViewItemPressed:(IZ)V // method@0502 │ │ -01a17e: 0e00 |001d: return-void │ │ +01a138: |[01a138] org.jsl.wfwt.ListViewRow.setPressed:(Z)V │ │ +01a148: 6f20 8300 4300 |0000: invoke-super {v3, v4}, Landroid/widget/LinearLayout;.setPressed:(Z)V // method@0083 │ │ +01a14e: 6200 3202 |0003: sget-object v0, Lorg/jsl/wfwt/ListViewRow;.LOG_TAG:Ljava/lang/String; // field@0232 │ │ +01a152: 2201 6700 |0005: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ +01a156: 1a02 b106 |0007: const-string v2, "setPressed: " // string@06b1 │ │ +01a15a: 7020 c600 2100 |0009: invoke-direct {v1, v2}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ +01a160: 6e20 cc00 4100 |000c: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(Z)Ljava/lang/StringBuilder; // method@00cc │ │ +01a166: 6e10 ce00 0100 |000f: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01a16c: 0c01 |0012: move-result-object v1 │ │ +01a16e: 7120 6100 1000 |0013: invoke-static {v0, v1}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +01a174: 5430 3302 |0016: iget-object v0, v3, Lorg/jsl/wfwt/ListViewRow;.m_activity:Lorg/jsl/wfwt/MainActivity; // field@0233 │ │ +01a178: 5231 3402 |0018: iget v1, v3, Lorg/jsl/wfwt/ListViewRow;.m_position:I // field@0234 │ │ +01a17c: 6e30 0205 1004 |001a: invoke-virtual {v0, v1, v4}, Lorg/jsl/wfwt/MainActivity;.onListViewItemPressed:(IZ)V // method@0502 │ │ +01a182: 0e00 |001d: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=54 │ │ 0x0003 line=55 │ │ 0x0016 line=56 │ │ locals : │ │ 0x0000 - 0x001e reg=3 this Lorg/jsl/wfwt/ListViewRow; │ │ @@ -13446,19 +13446,19 @@ │ │ type : '(Lorg/jsl/wfwt/MainActivity;Lorg/jsl/wfwt/AudioRecorder;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 3 │ │ ins : 3 │ │ outs : 1 │ │ insns size : 8 16-bit code units │ │ -01a180: |[01a180] org.jsl.wfwt.MainActivity$1.:(Lorg/jsl/wfwt/MainActivity;Lorg/jsl/wfwt/AudioRecorder;)V │ │ -01a190: 5b01 3802 |0000: iput-object v1, v0, Lorg/jsl/wfwt/MainActivity$1;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0238 │ │ -01a194: 5b02 3902 |0002: iput-object v2, v0, Lorg/jsl/wfwt/MainActivity$1;.val$audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@0239 │ │ -01a198: 7010 b300 0000 |0004: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01a19e: 0e00 |0007: return-void │ │ +01a184: |[01a184] org.jsl.wfwt.MainActivity$1.:(Lorg/jsl/wfwt/MainActivity;Lorg/jsl/wfwt/AudioRecorder;)V │ │ +01a194: 5b01 3802 |0000: iput-object v1, v0, Lorg/jsl/wfwt/MainActivity$1;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0238 │ │ +01a198: 5b02 3902 |0002: iput-object v2, v0, Lorg/jsl/wfwt/MainActivity$1;.val$audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@0239 │ │ +01a19c: 7010 b300 0000 |0004: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01a1a2: 0e00 |0007: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=270 │ │ locals : │ │ 0x0000 - 0x0008 reg=0 this Lorg/jsl/wfwt/MainActivity$1; │ │ 0x0000 - 0x0008 reg=1 (null) Lorg/jsl/wfwt/MainActivity; │ │ 0x0000 - 0x0008 reg=2 (null) Lorg/jsl/wfwt/AudioRecorder; │ │ @@ -13469,54 +13469,54 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 5 │ │ ins : 1 │ │ outs : 3 │ │ insns size : 79 16-bit code units │ │ -01a1a0: |[01a1a0] org.jsl.wfwt.MainActivity$1.run:()V │ │ -01a1b0: 5440 3802 |0000: iget-object v0, v4, Lorg/jsl/wfwt/MainActivity$1;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0238 │ │ -01a1b4: 5441 3902 |0002: iget-object v1, v4, Lorg/jsl/wfwt/MainActivity$1;.val$audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@0239 │ │ -01a1b8: 7120 e704 1000 |0004: invoke-static {v0, v1}, Lorg/jsl/wfwt/MainActivity;.access$202:(Lorg/jsl/wfwt/MainActivity;Lorg/jsl/wfwt/AudioRecorder;)Lorg/jsl/wfwt/AudioRecorder; // method@04e7 │ │ -01a1be: 5440 3802 |0007: iget-object v0, v4, Lorg/jsl/wfwt/MainActivity$1;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0238 │ │ -01a1c2: 7110 ef04 0000 |0009: invoke-static {v0}, Lorg/jsl/wfwt/MainActivity;.access$800:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/SwitchButton; // method@04ef │ │ -01a1c8: 0c00 |000c: move-result-object v0 │ │ -01a1ca: 2201 2e01 |000d: new-instance v1, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener; // type@012e │ │ -01a1ce: 5442 3802 |000f: iget-object v2, v4, Lorg/jsl/wfwt/MainActivity$1;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0238 │ │ -01a1d2: 1203 |0011: const/4 v3, #int 0 // #0 │ │ -01a1d4: 7030 d604 2103 |0012: invoke-direct {v1, v2, v3}, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.:(Lorg/jsl/wfwt/MainActivity;Lorg/jsl/wfwt/MainActivity$1;)V // method@04d6 │ │ -01a1da: 6e20 6105 1000 |0015: invoke-virtual {v0, v1}, Lorg/jsl/wfwt/SwitchButton;.setStateListener:(Lorg/jsl/wfwt/SwitchButton$StateListener;)V // method@0561 │ │ -01a1e0: 5440 3802 |0018: iget-object v0, v4, Lorg/jsl/wfwt/MainActivity$1;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0238 │ │ -01a1e4: 7110 ef04 0000 |001a: invoke-static {v0}, Lorg/jsl/wfwt/MainActivity;.access$800:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/SwitchButton; // method@04ef │ │ -01a1ea: 0c00 |001d: move-result-object v0 │ │ -01a1ec: 1211 |001e: const/4 v1, #int 1 // #1 │ │ -01a1ee: 6e20 5f05 1000 |001f: invoke-virtual {v0, v1}, Lorg/jsl/wfwt/SwitchButton;.setEnabled:(Z)V // method@055f │ │ -01a1f4: 5440 3802 |0022: iget-object v0, v4, Lorg/jsl/wfwt/MainActivity$1;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0238 │ │ -01a1f8: 1202 |0024: const/4 v2, #int 0 // #0 │ │ -01a1fa: 6e20 f604 2000 |0025: invoke-virtual {v0, v2}, Lorg/jsl/wfwt/MainActivity;.getPreferences:(I)Landroid/content/SharedPreferences; // method@04f6 │ │ -01a200: 0c00 |0028: move-result-object v0 │ │ -01a202: 1a02 6706 |0029: const-string v2, "roger-beep" // string@0667 │ │ -01a206: 7230 2b00 2001 |002b: invoke-interface {v0, v2, v1}, Landroid/content/SharedPreferences;.getBoolean:(Ljava/lang/String;Z)Z // method@002b │ │ -01a20c: 0a00 |002e: move-result v0 │ │ -01a20e: 3800 1600 |002f: if-eqz v0, 0045 // +0016 │ │ -01a212: 5440 3802 |0031: iget-object v0, v4, Lorg/jsl/wfwt/MainActivity$1;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0238 │ │ -01a216: 6e10 f404 0000 |0033: invoke-virtual {v0}, Lorg/jsl/wfwt/MainActivity;.getApplicationContext:()Landroid/content/Context; // method@04f4 │ │ -01a21c: 0c00 |0036: move-result-object v0 │ │ -01a21e: 6e10 1e00 0000 |0037: invoke-virtual {v0}, Landroid/content/Context;.getResources:()Landroid/content/res/Resources; // method@001e │ │ -01a224: 0c00 |003a: move-result-object v0 │ │ -01a226: 5441 3802 |003b: iget-object v1, v4, Lorg/jsl/wfwt/MainActivity$1;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0238 │ │ -01a22a: 7110 e604 0100 |003d: invoke-static {v1}, Lorg/jsl/wfwt/MainActivity;.access$200:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/AudioRecorder; // method@04e6 │ │ -01a230: 0c01 |0040: move-result-object v1 │ │ -01a232: 6e20 5104 0100 |0041: invoke-virtual {v1, v0}, Lorg/jsl/wfwt/AudioRecorder;.setRogerBeepOn:(Landroid/content/res/Resources;)V // method@0451 │ │ -01a238: 280a |0044: goto 004e // +000a │ │ -01a23a: 5440 3802 |0045: iget-object v0, v4, Lorg/jsl/wfwt/MainActivity$1;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0238 │ │ -01a23e: 7110 e604 0000 |0047: invoke-static {v0}, Lorg/jsl/wfwt/MainActivity;.access$200:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/AudioRecorder; // method@04e6 │ │ -01a244: 0c00 |004a: move-result-object v0 │ │ -01a246: 6e10 5004 0000 |004b: invoke-virtual {v0}, Lorg/jsl/wfwt/AudioRecorder;.setRogerBeepOff:()V // method@0450 │ │ -01a24c: 0e00 |004e: return-void │ │ +01a1a4: |[01a1a4] org.jsl.wfwt.MainActivity$1.run:()V │ │ +01a1b4: 5440 3802 |0000: iget-object v0, v4, Lorg/jsl/wfwt/MainActivity$1;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0238 │ │ +01a1b8: 5441 3902 |0002: iget-object v1, v4, Lorg/jsl/wfwt/MainActivity$1;.val$audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@0239 │ │ +01a1bc: 7120 e704 1000 |0004: invoke-static {v0, v1}, Lorg/jsl/wfwt/MainActivity;.access$202:(Lorg/jsl/wfwt/MainActivity;Lorg/jsl/wfwt/AudioRecorder;)Lorg/jsl/wfwt/AudioRecorder; // method@04e7 │ │ +01a1c2: 5440 3802 |0007: iget-object v0, v4, Lorg/jsl/wfwt/MainActivity$1;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0238 │ │ +01a1c6: 7110 ef04 0000 |0009: invoke-static {v0}, Lorg/jsl/wfwt/MainActivity;.access$800:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/SwitchButton; // method@04ef │ │ +01a1cc: 0c00 |000c: move-result-object v0 │ │ +01a1ce: 2201 2e01 |000d: new-instance v1, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener; // type@012e │ │ +01a1d2: 5442 3802 |000f: iget-object v2, v4, Lorg/jsl/wfwt/MainActivity$1;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0238 │ │ +01a1d6: 1203 |0011: const/4 v3, #int 0 // #0 │ │ +01a1d8: 7030 d604 2103 |0012: invoke-direct {v1, v2, v3}, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.:(Lorg/jsl/wfwt/MainActivity;Lorg/jsl/wfwt/MainActivity$1;)V // method@04d6 │ │ +01a1de: 6e20 6105 1000 |0015: invoke-virtual {v0, v1}, Lorg/jsl/wfwt/SwitchButton;.setStateListener:(Lorg/jsl/wfwt/SwitchButton$StateListener;)V // method@0561 │ │ +01a1e4: 5440 3802 |0018: iget-object v0, v4, Lorg/jsl/wfwt/MainActivity$1;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0238 │ │ +01a1e8: 7110 ef04 0000 |001a: invoke-static {v0}, Lorg/jsl/wfwt/MainActivity;.access$800:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/SwitchButton; // method@04ef │ │ +01a1ee: 0c00 |001d: move-result-object v0 │ │ +01a1f0: 1211 |001e: const/4 v1, #int 1 // #1 │ │ +01a1f2: 6e20 5f05 1000 |001f: invoke-virtual {v0, v1}, Lorg/jsl/wfwt/SwitchButton;.setEnabled:(Z)V // method@055f │ │ +01a1f8: 5440 3802 |0022: iget-object v0, v4, Lorg/jsl/wfwt/MainActivity$1;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0238 │ │ +01a1fc: 1202 |0024: const/4 v2, #int 0 // #0 │ │ +01a1fe: 6e20 f604 2000 |0025: invoke-virtual {v0, v2}, Lorg/jsl/wfwt/MainActivity;.getPreferences:(I)Landroid/content/SharedPreferences; // method@04f6 │ │ +01a204: 0c00 |0028: move-result-object v0 │ │ +01a206: 1a02 6706 |0029: const-string v2, "roger-beep" // string@0667 │ │ +01a20a: 7230 2b00 2001 |002b: invoke-interface {v0, v2, v1}, Landroid/content/SharedPreferences;.getBoolean:(Ljava/lang/String;Z)Z // method@002b │ │ +01a210: 0a00 |002e: move-result v0 │ │ +01a212: 3800 1600 |002f: if-eqz v0, 0045 // +0016 │ │ +01a216: 5440 3802 |0031: iget-object v0, v4, Lorg/jsl/wfwt/MainActivity$1;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0238 │ │ +01a21a: 6e10 f404 0000 |0033: invoke-virtual {v0}, Lorg/jsl/wfwt/MainActivity;.getApplicationContext:()Landroid/content/Context; // method@04f4 │ │ +01a220: 0c00 |0036: move-result-object v0 │ │ +01a222: 6e10 1e00 0000 |0037: invoke-virtual {v0}, Landroid/content/Context;.getResources:()Landroid/content/res/Resources; // method@001e │ │ +01a228: 0c00 |003a: move-result-object v0 │ │ +01a22a: 5441 3802 |003b: iget-object v1, v4, Lorg/jsl/wfwt/MainActivity$1;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0238 │ │ +01a22e: 7110 e604 0100 |003d: invoke-static {v1}, Lorg/jsl/wfwt/MainActivity;.access$200:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/AudioRecorder; // method@04e6 │ │ +01a234: 0c01 |0040: move-result-object v1 │ │ +01a236: 6e20 5104 0100 |0041: invoke-virtual {v1, v0}, Lorg/jsl/wfwt/AudioRecorder;.setRogerBeepOn:(Landroid/content/res/Resources;)V // method@0451 │ │ +01a23c: 280a |0044: goto 004e // +000a │ │ +01a23e: 5440 3802 |0045: iget-object v0, v4, Lorg/jsl/wfwt/MainActivity$1;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0238 │ │ +01a242: 7110 e604 0000 |0047: invoke-static {v0}, Lorg/jsl/wfwt/MainActivity;.access$200:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/AudioRecorder; // method@04e6 │ │ +01a248: 0c00 |004a: move-result-object v0 │ │ +01a24a: 6e10 5004 0000 |004b: invoke-virtual {v0}, Lorg/jsl/wfwt/AudioRecorder;.setRogerBeepOff:()V // method@0450 │ │ +01a250: 0e00 |004e: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=272 │ │ 0x0007 line=273 │ │ 0x0018 line=274 │ │ 0x0022 line=276 │ │ 0x002b line=277 │ │ @@ -13571,20 +13571,20 @@ │ │ type : '(Lorg/jsl/wfwt/MainActivity;Ljava/lang/String;Z)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 4 │ │ ins : 4 │ │ outs : 1 │ │ insns size : 10 16-bit code units │ │ -01a250: |[01a250] org.jsl.wfwt.MainActivity$2.:(Lorg/jsl/wfwt/MainActivity;Ljava/lang/String;Z)V │ │ -01a260: 5b01 3a02 |0000: iput-object v1, v0, Lorg/jsl/wfwt/MainActivity$2;.this$0:Lorg/jsl/wfwt/MainActivity; // field@023a │ │ -01a264: 5b02 3c02 |0002: iput-object v2, v0, Lorg/jsl/wfwt/MainActivity$2;.val$stateString:Ljava/lang/String; // field@023c │ │ -01a268: 5c03 3b02 |0004: iput-boolean v3, v0, Lorg/jsl/wfwt/MainActivity$2;.val$registered:Z // field@023b │ │ -01a26c: 7010 b300 0000 |0006: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01a272: 0e00 |0009: return-void │ │ +01a254: |[01a254] org.jsl.wfwt.MainActivity$2.:(Lorg/jsl/wfwt/MainActivity;Ljava/lang/String;Z)V │ │ +01a264: 5b01 3a02 |0000: iput-object v1, v0, Lorg/jsl/wfwt/MainActivity$2;.this$0:Lorg/jsl/wfwt/MainActivity; // field@023a │ │ +01a268: 5b02 3c02 |0002: iput-object v2, v0, Lorg/jsl/wfwt/MainActivity$2;.val$stateString:Ljava/lang/String; // field@023c │ │ +01a26c: 5c03 3b02 |0004: iput-boolean v3, v0, Lorg/jsl/wfwt/MainActivity$2;.val$registered:Z // field@023b │ │ +01a270: 7010 b300 0000 |0006: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01a276: 0e00 |0009: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=295 │ │ locals : │ │ 0x0000 - 0x000a reg=0 this Lorg/jsl/wfwt/MainActivity$2; │ │ 0x0000 - 0x000a reg=1 (null) Lorg/jsl/wfwt/MainActivity; │ │ 0x0000 - 0x000a reg=2 (null) Ljava/lang/String; │ │ @@ -13596,29 +13596,29 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 31 16-bit code units │ │ -01a274: |[01a274] org.jsl.wfwt.MainActivity$2.run:()V │ │ -01a284: 5420 3a02 |0000: iget-object v0, v2, Lorg/jsl/wfwt/MainActivity$2;.this$0:Lorg/jsl/wfwt/MainActivity; // field@023a │ │ -01a288: 1401 1100 027f |0002: const v1, #float 1.728e+38 // #7f020011 │ │ -01a28e: 6e20 f204 1000 |0005: invoke-virtual {v0, v1}, Lorg/jsl/wfwt/MainActivity;.findViewById:(I)Landroid/view/View; // method@04f2 │ │ -01a294: 0c00 |0008: move-result-object v0 │ │ -01a296: 1f00 4900 |0009: check-cast v0, Landroid/widget/TextView; // type@0049 │ │ -01a29a: 5421 3c02 |000b: iget-object v1, v2, Lorg/jsl/wfwt/MainActivity$2;.val$stateString:Ljava/lang/String; // field@023c │ │ -01a29e: 6e20 8900 1000 |000d: invoke-virtual {v0, v1}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@0089 │ │ -01a2a4: 5521 3b02 |0010: iget-boolean v1, v2, Lorg/jsl/wfwt/MainActivity$2;.val$registered:Z // field@023b │ │ -01a2a8: 3801 0600 |0012: if-eqz v1, 0018 // +0006 │ │ -01a2ac: 1401 00ff 00ff |0014: const v1, #float -1.71465e+38 // #ff00ff00 │ │ -01a2b2: 2804 |0017: goto 001b // +0004 │ │ -01a2b4: 1401 8888 88ff |0018: const v1, #float -nan // #ff888888 │ │ -01a2ba: 6e20 8a00 1000 |001b: invoke-virtual {v0, v1}, Landroid/widget/TextView;.setTextColor:(I)V // method@008a │ │ -01a2c0: 0e00 |001e: return-void │ │ +01a278: |[01a278] org.jsl.wfwt.MainActivity$2.run:()V │ │ +01a288: 5420 3a02 |0000: iget-object v0, v2, Lorg/jsl/wfwt/MainActivity$2;.this$0:Lorg/jsl/wfwt/MainActivity; // field@023a │ │ +01a28c: 1401 1100 027f |0002: const v1, #float 1.728e+38 // #7f020011 │ │ +01a292: 6e20 f204 1000 |0005: invoke-virtual {v0, v1}, Lorg/jsl/wfwt/MainActivity;.findViewById:(I)Landroid/view/View; // method@04f2 │ │ +01a298: 0c00 |0008: move-result-object v0 │ │ +01a29a: 1f00 4900 |0009: check-cast v0, Landroid/widget/TextView; // type@0049 │ │ +01a29e: 5421 3c02 |000b: iget-object v1, v2, Lorg/jsl/wfwt/MainActivity$2;.val$stateString:Ljava/lang/String; // field@023c │ │ +01a2a2: 6e20 8900 1000 |000d: invoke-virtual {v0, v1}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@0089 │ │ +01a2a8: 5521 3b02 |0010: iget-boolean v1, v2, Lorg/jsl/wfwt/MainActivity$2;.val$registered:Z // field@023b │ │ +01a2ac: 3801 0600 |0012: if-eqz v1, 0018 // +0006 │ │ +01a2b0: 1401 00ff 00ff |0014: const v1, #float -1.71465e+38 // #ff00ff00 │ │ +01a2b6: 2804 |0017: goto 001b // +0004 │ │ +01a2b8: 1401 8888 88ff |0018: const v1, #float -nan // #ff888888 │ │ +01a2be: 6e20 8a00 1000 |001b: invoke-virtual {v0, v1}, Landroid/widget/TextView;.setTextColor:(I)V // method@008a │ │ +01a2c4: 0e00 |001e: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=297 │ │ 0x000b line=298 │ │ 0x0010 line=299 │ │ locals : │ │ 0x0000 - 0x001f reg=2 this Lorg/jsl/wfwt/MainActivity$2; │ │ @@ -13664,19 +13664,19 @@ │ │ type : '(Lorg/jsl/wfwt/MainActivity;[Lorg/jsl/wfwt/StationInfo;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 3 │ │ ins : 3 │ │ outs : 1 │ │ insns size : 8 16-bit code units │ │ -01a2c4: |[01a2c4] org.jsl.wfwt.MainActivity$3.:(Lorg/jsl/wfwt/MainActivity;[Lorg/jsl/wfwt/StationInfo;)V │ │ -01a2d4: 5b01 3d02 |0000: iput-object v1, v0, Lorg/jsl/wfwt/MainActivity$3;.this$0:Lorg/jsl/wfwt/MainActivity; // field@023d │ │ -01a2d8: 5b02 3e02 |0002: iput-object v2, v0, Lorg/jsl/wfwt/MainActivity$3;.val$stationInfo:[Lorg/jsl/wfwt/StationInfo; // field@023e │ │ -01a2dc: 7010 b300 0000 |0004: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01a2e2: 0e00 |0007: return-void │ │ +01a2c8: |[01a2c8] org.jsl.wfwt.MainActivity$3.:(Lorg/jsl/wfwt/MainActivity;[Lorg/jsl/wfwt/StationInfo;)V │ │ +01a2d8: 5b01 3d02 |0000: iput-object v1, v0, Lorg/jsl/wfwt/MainActivity$3;.this$0:Lorg/jsl/wfwt/MainActivity; // field@023d │ │ +01a2dc: 5b02 3e02 |0002: iput-object v2, v0, Lorg/jsl/wfwt/MainActivity$3;.val$stationInfo:[Lorg/jsl/wfwt/StationInfo; // field@023e │ │ +01a2e0: 7010 b300 0000 |0004: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01a2e6: 0e00 |0007: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=306 │ │ locals : │ │ 0x0000 - 0x0008 reg=0 this Lorg/jsl/wfwt/MainActivity$3; │ │ 0x0000 - 0x0008 reg=1 (null) Lorg/jsl/wfwt/MainActivity; │ │ 0x0000 - 0x0008 reg=2 (null) [Lorg/jsl/wfwt/StationInfo; │ │ @@ -13687,21 +13687,21 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 12 16-bit code units │ │ -01a2e4: |[01a2e4] org.jsl.wfwt.MainActivity$3.run:()V │ │ -01a2f4: 5420 3d02 |0000: iget-object v0, v2, Lorg/jsl/wfwt/MainActivity$3;.this$0:Lorg/jsl/wfwt/MainActivity; // field@023d │ │ -01a2f8: 7110 f004 0000 |0002: invoke-static {v0}, Lorg/jsl/wfwt/MainActivity;.access$900:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/MainActivity$ListViewAdapter; // method@04f0 │ │ -01a2fe: 0c00 |0005: move-result-object v0 │ │ -01a300: 5421 3e02 |0006: iget-object v1, v2, Lorg/jsl/wfwt/MainActivity$3;.val$stationInfo:[Lorg/jsl/wfwt/StationInfo; // field@023e │ │ -01a304: 6e20 df04 1000 |0008: invoke-virtual {v0, v1}, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.setStationInfo:([Lorg/jsl/wfwt/StationInfo;)V // method@04df │ │ -01a30a: 0e00 |000b: return-void │ │ +01a2e8: |[01a2e8] org.jsl.wfwt.MainActivity$3.run:()V │ │ +01a2f8: 5420 3d02 |0000: iget-object v0, v2, Lorg/jsl/wfwt/MainActivity$3;.this$0:Lorg/jsl/wfwt/MainActivity; // field@023d │ │ +01a2fc: 7110 f004 0000 |0002: invoke-static {v0}, Lorg/jsl/wfwt/MainActivity;.access$900:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/MainActivity$ListViewAdapter; // method@04f0 │ │ +01a302: 0c00 |0005: move-result-object v0 │ │ +01a304: 5421 3e02 |0006: iget-object v1, v2, Lorg/jsl/wfwt/MainActivity$3;.val$stationInfo:[Lorg/jsl/wfwt/StationInfo; // field@023e │ │ +01a308: 6e20 df04 1000 |0008: invoke-virtual {v0, v1}, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.setStationInfo:([Lorg/jsl/wfwt/StationInfo;)V // method@04df │ │ +01a30e: 0e00 |000b: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=308 │ │ locals : │ │ 0x0000 - 0x000c reg=2 this Lorg/jsl/wfwt/MainActivity$3; │ │ │ │ source_file_idx : 673 (MainActivity.java) │ │ @@ -13739,18 +13739,18 @@ │ │ type : '(Lorg/jsl/wfwt/MainActivity;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -01a30c: |[01a30c] org.jsl.wfwt.MainActivity$4.:(Lorg/jsl/wfwt/MainActivity;)V │ │ -01a31c: 5b01 3f02 |0000: iput-object v1, v0, Lorg/jsl/wfwt/MainActivity$4;.this$0:Lorg/jsl/wfwt/MainActivity; // field@023f │ │ -01a320: 7010 b300 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01a326: 0e00 |0005: return-void │ │ +01a310: |[01a310] org.jsl.wfwt.MainActivity$4.:(Lorg/jsl/wfwt/MainActivity;)V │ │ +01a320: 5b01 3f02 |0000: iput-object v1, v0, Lorg/jsl/wfwt/MainActivity$4;.this$0:Lorg/jsl/wfwt/MainActivity; // field@023f │ │ +01a324: 7010 b300 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01a32a: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=442 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/jsl/wfwt/MainActivity$4; │ │ 0x0000 - 0x0006 reg=1 (null) Lorg/jsl/wfwt/MainActivity; │ │ │ │ @@ -13760,27 +13760,27 @@ │ │ type : '(Landroid/content/ComponentName;Landroid/os/IBinder;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 3 │ │ outs : 3 │ │ insns size : 26 16-bit code units │ │ -01a328: |[01a328] org.jsl.wfwt.MainActivity$4.onServiceConnected:(Landroid/content/ComponentName;Landroid/os/IBinder;)V │ │ -01a338: 1a02 a002 |0000: const-string v2, "MainActivity" // string@02a0 │ │ -01a33c: 1a00 0b06 |0002: const-string v0, "onServiceConnected" // string@060b │ │ -01a340: 7120 6100 0200 |0004: invoke-static {v2, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -01a346: 5412 3f02 |0007: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$4;.this$0:Lorg/jsl/wfwt/MainActivity; // field@023f │ │ -01a34a: 1f03 4f01 |0009: check-cast v3, Lorg/jsl/wfwt/WalkieService$BinderImpl; // type@014f │ │ -01a34e: 7120 eb04 3200 |000b: invoke-static {v2, v3}, Lorg/jsl/wfwt/MainActivity;.access$402:(Lorg/jsl/wfwt/MainActivity;Lorg/jsl/wfwt/WalkieService$BinderImpl;)Lorg/jsl/wfwt/WalkieService$BinderImpl; // method@04eb │ │ -01a354: 5412 3f02 |000e: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$4;.this$0:Lorg/jsl/wfwt/MainActivity; // field@023f │ │ -01a358: 7110 ea04 0200 |0010: invoke-static {v2}, Lorg/jsl/wfwt/MainActivity;.access$400:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/WalkieService$BinderImpl; // method@04ea │ │ -01a35e: 0c02 |0013: move-result-object v2 │ │ -01a360: 5413 3f02 |0014: iget-object v3, v1, Lorg/jsl/wfwt/MainActivity$4;.this$0:Lorg/jsl/wfwt/MainActivity; // field@023f │ │ -01a364: 6e30 6e05 3203 |0016: invoke-virtual {v2, v3, v3}, Lorg/jsl/wfwt/WalkieService$BinderImpl;.setStateListener:(Lorg/jsl/wfwt/WalkieService$StateListener;Lorg/jsl/wfwt/Channel$StateListener;)V // method@056e │ │ -01a36a: 0e00 |0019: return-void │ │ +01a32c: |[01a32c] org.jsl.wfwt.MainActivity$4.onServiceConnected:(Landroid/content/ComponentName;Landroid/os/IBinder;)V │ │ +01a33c: 1a02 a002 |0000: const-string v2, "MainActivity" // string@02a0 │ │ +01a340: 1a00 0b06 |0002: const-string v0, "onServiceConnected" // string@060b │ │ +01a344: 7120 6100 0200 |0004: invoke-static {v2, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +01a34a: 5412 3f02 |0007: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$4;.this$0:Lorg/jsl/wfwt/MainActivity; // field@023f │ │ +01a34e: 1f03 4f01 |0009: check-cast v3, Lorg/jsl/wfwt/WalkieService$BinderImpl; // type@014f │ │ +01a352: 7120 eb04 3200 |000b: invoke-static {v2, v3}, Lorg/jsl/wfwt/MainActivity;.access$402:(Lorg/jsl/wfwt/MainActivity;Lorg/jsl/wfwt/WalkieService$BinderImpl;)Lorg/jsl/wfwt/WalkieService$BinderImpl; // method@04eb │ │ +01a358: 5412 3f02 |000e: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$4;.this$0:Lorg/jsl/wfwt/MainActivity; // field@023f │ │ +01a35c: 7110 ea04 0200 |0010: invoke-static {v2}, Lorg/jsl/wfwt/MainActivity;.access$400:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/WalkieService$BinderImpl; // method@04ea │ │ +01a362: 0c02 |0013: move-result-object v2 │ │ +01a364: 5413 3f02 |0014: iget-object v3, v1, Lorg/jsl/wfwt/MainActivity$4;.this$0:Lorg/jsl/wfwt/MainActivity; // field@023f │ │ +01a368: 6e30 6e05 3203 |0016: invoke-virtual {v2, v3, v3}, Lorg/jsl/wfwt/WalkieService$BinderImpl;.setStateListener:(Lorg/jsl/wfwt/WalkieService$StateListener;Lorg/jsl/wfwt/Channel$StateListener;)V // method@056e │ │ +01a36e: 0e00 |0019: return-void │ │ catches : (none) │ │ positions : │ │ 0x0004 line=445 │ │ 0x0007 line=446 │ │ 0x000e line=447 │ │ locals : │ │ 0x0000 - 0x001a reg=1 this Lorg/jsl/wfwt/MainActivity$4; │ │ @@ -13792,19 +13792,19 @@ │ │ type : '(Landroid/content/ComponentName;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 8 16-bit code units │ │ -01a36c: |[01a36c] org.jsl.wfwt.MainActivity$4.onServiceDisconnected:(Landroid/content/ComponentName;)V │ │ -01a37c: 1a02 a002 |0000: const-string v2, "MainActivity" // string@02a0 │ │ -01a380: 1a00 0c06 |0002: const-string v0, "onServiceDisconnected" // string@060c │ │ -01a384: 7120 6100 0200 |0004: invoke-static {v2, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -01a38a: 0e00 |0007: return-void │ │ +01a370: |[01a370] org.jsl.wfwt.MainActivity$4.onServiceDisconnected:(Landroid/content/ComponentName;)V │ │ +01a380: 1a02 a002 |0000: const-string v2, "MainActivity" // string@02a0 │ │ +01a384: 1a00 0c06 |0002: const-string v0, "onServiceDisconnected" // string@060c │ │ +01a388: 7120 6100 0200 |0004: invoke-static {v2, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +01a38e: 0e00 |0007: return-void │ │ catches : (none) │ │ positions : │ │ 0x0004 line=454 │ │ locals : │ │ 0x0000 - 0x0008 reg=1 this Lorg/jsl/wfwt/MainActivity$4; │ │ 0x0000 - 0x0008 reg=2 (null) Landroid/content/ComponentName; │ │ │ │ @@ -13857,21 +13857,21 @@ │ │ type : '(Lorg/jsl/wfwt/MainActivity;Landroid/net/wifi/WifiManager;Landroid/view/View;Landroid/content/SharedPreferences;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 5 │ │ ins : 5 │ │ outs : 1 │ │ insns size : 12 16-bit code units │ │ -01a38c: |[01a38c] org.jsl.wfwt.MainActivity$5.:(Lorg/jsl/wfwt/MainActivity;Landroid/net/wifi/WifiManager;Landroid/view/View;Landroid/content/SharedPreferences;)V │ │ -01a39c: 5b01 4002 |0000: iput-object v1, v0, Lorg/jsl/wfwt/MainActivity$5;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0240 │ │ -01a3a0: 5b02 4202 |0002: iput-object v2, v0, Lorg/jsl/wfwt/MainActivity$5;.val$manager:Landroid/net/wifi/WifiManager; // field@0242 │ │ -01a3a4: 5b03 4102 |0004: iput-object v3, v0, Lorg/jsl/wfwt/MainActivity$5;.val$dialogView:Landroid/view/View; // field@0241 │ │ -01a3a8: 5b04 4302 |0006: iput-object v4, v0, Lorg/jsl/wfwt/MainActivity$5;.val$sharedPreferences:Landroid/content/SharedPreferences; // field@0243 │ │ -01a3ac: 7010 b300 0000 |0008: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01a3b2: 0e00 |000b: return-void │ │ +01a390: |[01a390] org.jsl.wfwt.MainActivity$5.:(Lorg/jsl/wfwt/MainActivity;Landroid/net/wifi/WifiManager;Landroid/view/View;Landroid/content/SharedPreferences;)V │ │ +01a3a0: 5b01 4002 |0000: iput-object v1, v0, Lorg/jsl/wfwt/MainActivity$5;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0240 │ │ +01a3a4: 5b02 4202 |0002: iput-object v2, v0, Lorg/jsl/wfwt/MainActivity$5;.val$manager:Landroid/net/wifi/WifiManager; // field@0242 │ │ +01a3a8: 5b03 4102 |0004: iput-object v3, v0, Lorg/jsl/wfwt/MainActivity$5;.val$dialogView:Landroid/view/View; // field@0241 │ │ +01a3ac: 5b04 4302 |0006: iput-object v4, v0, Lorg/jsl/wfwt/MainActivity$5;.val$sharedPreferences:Landroid/content/SharedPreferences; // field@0243 │ │ +01a3b0: 7010 b300 0000 |0008: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01a3b6: 0e00 |000b: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=474 │ │ locals : │ │ 0x0000 - 0x000c reg=0 this Lorg/jsl/wfwt/MainActivity$5; │ │ 0x0000 - 0x000c reg=1 (null) Lorg/jsl/wfwt/MainActivity; │ │ 0x0000 - 0x000c reg=2 (null) Landroid/net/wifi/WifiManager; │ │ @@ -13884,44 +13884,44 @@ │ │ type : '(Landroid/content/DialogInterface;I)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 3 │ │ outs : 3 │ │ insns size : 61 16-bit code units │ │ -01a3b4: |[01a3b4] org.jsl.wfwt.MainActivity$5.onClick:(Landroid/content/DialogInterface;I)V │ │ -01a3c4: 2202 6700 |0000: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ -01a3c8: 1a00 6c03 |0002: const-string v0, "WiFiDialog: which=" // string@036c │ │ -01a3cc: 7020 c600 0200 |0004: invoke-direct {v2, v0}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ -01a3d2: 6e20 c800 3200 |0007: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ -01a3d8: 6e10 ce00 0200 |000a: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01a3de: 0c02 |000d: move-result-object v2 │ │ -01a3e0: 1a00 a002 |000e: const-string v0, "MainActivity" // string@02a0 │ │ -01a3e4: 7120 6100 2000 |0010: invoke-static {v0, v2}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -01a3ea: 12f2 |0013: const/4 v2, #int -1 // #ff │ │ -01a3ec: 3323 0800 |0014: if-ne v3, v2, 001c // +0008 │ │ -01a3f0: 5412 4202 |0016: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$5;.val$manager:Landroid/net/wifi/WifiManager; // field@0242 │ │ -01a3f4: 1213 |0018: const/4 v3, #int 1 // #1 │ │ -01a3f6: 6e20 5a00 3200 |0019: invoke-virtual {v2, v3}, Landroid/net/wifi/WifiManager;.setWifiEnabled:(Z)Z // method@005a │ │ -01a3fc: 5412 4102 |001c: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$5;.val$dialogView:Landroid/view/View; // field@0241 │ │ -01a400: 1403 0600 027f |001e: const v3, #float 1.728e+38 // #7f020006 │ │ -01a406: 6e20 7100 3200 |0021: invoke-virtual {v2, v3}, Landroid/view/View;.findViewById:(I)Landroid/view/View; // method@0071 │ │ -01a40c: 0c02 |0024: move-result-object v2 │ │ -01a40e: 1f02 4300 |0025: check-cast v2, Landroid/widget/CheckBox; // type@0043 │ │ -01a412: 6e10 7c00 0200 |0027: invoke-virtual {v2}, Landroid/widget/CheckBox;.isChecked:()Z // method@007c │ │ -01a418: 0a02 |002a: move-result v2 │ │ -01a41a: 3802 1100 |002b: if-eqz v2, 003c // +0011 │ │ -01a41e: 5412 4302 |002d: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$5;.val$sharedPreferences:Landroid/content/SharedPreferences; // field@0243 │ │ -01a422: 7210 2a00 0200 |002f: invoke-interface {v2}, Landroid/content/SharedPreferences;.edit:()Landroid/content/SharedPreferences$Editor; // method@002a │ │ -01a428: 0c02 |0032: move-result-object v2 │ │ -01a42a: 1a03 0e04 |0033: const-string v3, "check-wifi-status" // string@040e │ │ -01a42e: 1200 |0035: const/4 v0, #int 0 // #0 │ │ -01a430: 7230 2800 3200 |0036: invoke-interface {v2, v3, v0}, Landroid/content/SharedPreferences$Editor;.putBoolean:(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor; // method@0028 │ │ -01a436: 7210 2700 0200 |0039: invoke-interface {v2}, Landroid/content/SharedPreferences$Editor;.apply:()V // method@0027 │ │ -01a43c: 0e00 |003c: return-void │ │ +01a3b8: |[01a3b8] org.jsl.wfwt.MainActivity$5.onClick:(Landroid/content/DialogInterface;I)V │ │ +01a3c8: 2202 6700 |0000: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ +01a3cc: 1a00 6c03 |0002: const-string v0, "WiFiDialog: which=" // string@036c │ │ +01a3d0: 7020 c600 0200 |0004: invoke-direct {v2, v0}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ +01a3d6: 6e20 c800 3200 |0007: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ +01a3dc: 6e10 ce00 0200 |000a: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01a3e2: 0c02 |000d: move-result-object v2 │ │ +01a3e4: 1a00 a002 |000e: const-string v0, "MainActivity" // string@02a0 │ │ +01a3e8: 7120 6100 2000 |0010: invoke-static {v0, v2}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +01a3ee: 12f2 |0013: const/4 v2, #int -1 // #ff │ │ +01a3f0: 3323 0800 |0014: if-ne v3, v2, 001c // +0008 │ │ +01a3f4: 5412 4202 |0016: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$5;.val$manager:Landroid/net/wifi/WifiManager; // field@0242 │ │ +01a3f8: 1213 |0018: const/4 v3, #int 1 // #1 │ │ +01a3fa: 6e20 5a00 3200 |0019: invoke-virtual {v2, v3}, Landroid/net/wifi/WifiManager;.setWifiEnabled:(Z)Z // method@005a │ │ +01a400: 5412 4102 |001c: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$5;.val$dialogView:Landroid/view/View; // field@0241 │ │ +01a404: 1403 0600 027f |001e: const v3, #float 1.728e+38 // #7f020006 │ │ +01a40a: 6e20 7100 3200 |0021: invoke-virtual {v2, v3}, Landroid/view/View;.findViewById:(I)Landroid/view/View; // method@0071 │ │ +01a410: 0c02 |0024: move-result-object v2 │ │ +01a412: 1f02 4300 |0025: check-cast v2, Landroid/widget/CheckBox; // type@0043 │ │ +01a416: 6e10 7c00 0200 |0027: invoke-virtual {v2}, Landroid/widget/CheckBox;.isChecked:()Z // method@007c │ │ +01a41c: 0a02 |002a: move-result v2 │ │ +01a41e: 3802 1100 |002b: if-eqz v2, 003c // +0011 │ │ +01a422: 5412 4302 |002d: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$5;.val$sharedPreferences:Landroid/content/SharedPreferences; // field@0243 │ │ +01a426: 7210 2a00 0200 |002f: invoke-interface {v2}, Landroid/content/SharedPreferences;.edit:()Landroid/content/SharedPreferences$Editor; // method@002a │ │ +01a42c: 0c02 |0032: move-result-object v2 │ │ +01a42e: 1a03 0e04 |0033: const-string v3, "check-wifi-status" // string@040e │ │ +01a432: 1200 |0035: const/4 v0, #int 0 // #0 │ │ +01a434: 7230 2800 3200 |0036: invoke-interface {v2, v3, v0}, Landroid/content/SharedPreferences$Editor;.putBoolean:(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor; // method@0028 │ │ +01a43a: 7210 2700 0200 |0039: invoke-interface {v2}, Landroid/content/SharedPreferences$Editor;.apply:()V // method@0027 │ │ +01a440: 0e00 |003c: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=476 │ │ 0x0016 line=478 │ │ 0x001c line=480 │ │ 0x0027 line=481 │ │ 0x002d line=482 │ │ @@ -13979,30 +13979,30 @@ │ │ type : '(Lorg/jsl/wfwt/MainActivity;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 3 │ │ ins : 2 │ │ outs : 3 │ │ insns size : 31 16-bit code units │ │ -01a634: |[01a634] org.jsl.wfwt.MainActivity$ListViewAdapter.:(Lorg/jsl/wfwt/MainActivity;)V │ │ -01a644: 1400 0300 037f |0000: const v0, #float 1.74129e+38 // #7f030003 │ │ -01a64a: 7030 7800 2100 |0003: invoke-direct {v1, v2, v0}, Landroid/widget/ArrayAdapter;.:(Landroid/content/Context;I)V // method@0078 │ │ -01a650: 5b12 4502 |0006: iput-object v2, v1, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_activity:Lorg/jsl/wfwt/MainActivity; // field@0245 │ │ -01a654: 1a00 0205 |0008: const-string v0, "layout_inflater" // string@0502 │ │ -01a658: 6e20 f904 0200 |000a: invoke-virtual {v2, v0}, Lorg/jsl/wfwt/MainActivity;.getSystemService:(Ljava/lang/String;)Ljava/lang/Object; // method@04f9 │ │ -01a65e: 0c02 |000d: move-result-object v2 │ │ -01a660: 1f02 3700 |000e: check-cast v2, Landroid/view/LayoutInflater; // type@0037 │ │ -01a664: 5b12 4602 |0010: iput-object v2, v1, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_inflater:Landroid/view/LayoutInflater; // field@0246 │ │ -01a668: 2202 6700 |0012: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ -01a66c: 7010 c500 0200 |0014: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -01a672: 5b12 4802 |0017: iput-object v2, v1, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_stringBuilder:Ljava/lang/StringBuilder; // field@0248 │ │ -01a676: 1202 |0019: const/4 v2, #int 0 // #0 │ │ -01a678: 2322 6601 |001a: new-array v2, v2, [Lorg/jsl/wfwt/StationInfo; // type@0166 │ │ -01a67c: 5b12 4702 |001c: iput-object v2, v1, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_stationInfo:[Lorg/jsl/wfwt/StationInfo; // field@0247 │ │ -01a680: 0e00 |001e: return-void │ │ +01a638: |[01a638] org.jsl.wfwt.MainActivity$ListViewAdapter.:(Lorg/jsl/wfwt/MainActivity;)V │ │ +01a648: 1400 0300 037f |0000: const v0, #float 1.74129e+38 // #7f030003 │ │ +01a64e: 7030 7800 2100 |0003: invoke-direct {v1, v2, v0}, Landroid/widget/ArrayAdapter;.:(Landroid/content/Context;I)V // method@0078 │ │ +01a654: 5b12 4502 |0006: iput-object v2, v1, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_activity:Lorg/jsl/wfwt/MainActivity; // field@0245 │ │ +01a658: 1a00 0205 |0008: const-string v0, "layout_inflater" // string@0502 │ │ +01a65c: 6e20 f904 0200 |000a: invoke-virtual {v2, v0}, Lorg/jsl/wfwt/MainActivity;.getSystemService:(Ljava/lang/String;)Ljava/lang/Object; // method@04f9 │ │ +01a662: 0c02 |000d: move-result-object v2 │ │ +01a664: 1f02 3700 |000e: check-cast v2, Landroid/view/LayoutInflater; // type@0037 │ │ +01a668: 5b12 4602 |0010: iput-object v2, v1, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_inflater:Landroid/view/LayoutInflater; // field@0246 │ │ +01a66c: 2202 6700 |0012: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ +01a670: 7010 c500 0200 |0014: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +01a676: 5b12 4802 |0017: iput-object v2, v1, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_stringBuilder:Ljava/lang/StringBuilder; // field@0248 │ │ +01a67a: 1202 |0019: const/4 v2, #int 0 // #0 │ │ +01a67c: 2322 6601 |001a: new-array v2, v2, [Lorg/jsl/wfwt/StationInfo; // type@0166 │ │ +01a680: 5b12 4702 |001c: iput-object v2, v1, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_stationInfo:[Lorg/jsl/wfwt/StationInfo; // field@0247 │ │ +01a684: 0e00 |001e: return-void │ │ catches : (none) │ │ positions : │ │ 0x0003 line=108 │ │ 0x0006 line=109 │ │ 0x000a line=110 │ │ 0x0012 line=111 │ │ 0x001c line=112 │ │ @@ -14016,18 +14016,18 @@ │ │ type : '()I' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 4 16-bit code units │ │ -01a5e4: |[01a5e4] org.jsl.wfwt.MainActivity$ListViewAdapter.getCount:()I │ │ -01a5f4: 5410 4702 |0000: iget-object v0, v1, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_stationInfo:[Lorg/jsl/wfwt/StationInfo; // field@0247 │ │ -01a5f8: 2100 |0002: array-length v0, v0 │ │ -01a5fa: 0f00 |0003: return v0 │ │ +01a5e8: |[01a5e8] org.jsl.wfwt.MainActivity$ListViewAdapter.getCount:()I │ │ +01a5f8: 5410 4702 |0000: iget-object v0, v1, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_stationInfo:[Lorg/jsl/wfwt/StationInfo; // field@0247 │ │ +01a5fc: 2100 |0002: array-length v0, v0 │ │ +01a5fe: 0f00 |0003: return v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=123 │ │ locals : │ │ 0x0000 - 0x0004 reg=1 this Lorg/jsl/wfwt/MainActivity$ListViewAdapter; │ │ │ │ #1 : (in Lorg/jsl/wfwt/MainActivity$ListViewAdapter;) │ │ @@ -14035,18 +14035,18 @@ │ │ type : '(I)Ljava/lang/Object;' │ │ access : 0x1041 (PUBLIC BRIDGE SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 5 16-bit code units │ │ -01a5fc: |[01a5fc] org.jsl.wfwt.MainActivity$ListViewAdapter.getItem:(I)Ljava/lang/Object; │ │ -01a60c: 6e20 dc04 1000 |0000: invoke-virtual {v0, v1}, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.getItem:(I)Lorg/jsl/wfwt/StationInfo; // method@04dc │ │ -01a612: 0c01 |0003: move-result-object v1 │ │ -01a614: 1101 |0004: return-object v1 │ │ +01a600: |[01a600] org.jsl.wfwt.MainActivity$ListViewAdapter.getItem:(I)Ljava/lang/Object; │ │ +01a610: 6e20 dc04 1000 |0000: invoke-virtual {v0, v1}, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.getItem:(I)Lorg/jsl/wfwt/StationInfo; // method@04dc │ │ +01a616: 0c01 |0003: move-result-object v1 │ │ +01a618: 1101 |0004: return-object v1 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=99 │ │ locals : │ │ 0x0000 - 0x0005 reg=0 this Lorg/jsl/wfwt/MainActivity$ListViewAdapter; │ │ 0x0000 - 0x0005 reg=1 (null) I │ │ │ │ @@ -14055,18 +14055,18 @@ │ │ type : '(I)Lorg/jsl/wfwt/StationInfo;' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 2 │ │ outs : 0 │ │ insns size : 5 16-bit code units │ │ -01a618: |[01a618] org.jsl.wfwt.MainActivity$ListViewAdapter.getItem:(I)Lorg/jsl/wfwt/StationInfo; │ │ -01a628: 5410 4702 |0000: iget-object v0, v1, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_stationInfo:[Lorg/jsl/wfwt/StationInfo; // field@0247 │ │ -01a62c: 4602 0002 |0002: aget-object v2, v0, v2 │ │ -01a630: 1102 |0004: return-object v2 │ │ +01a61c: |[01a61c] org.jsl.wfwt.MainActivity$ListViewAdapter.getItem:(I)Lorg/jsl/wfwt/StationInfo; │ │ +01a62c: 5410 4702 |0000: iget-object v0, v1, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_stationInfo:[Lorg/jsl/wfwt/StationInfo; // field@0247 │ │ +01a630: 4602 0002 |0002: aget-object v2, v0, v2 │ │ +01a634: 1102 |0004: return-object v2 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=128 │ │ locals : │ │ 0x0000 - 0x0005 reg=1 this Lorg/jsl/wfwt/MainActivity$ListViewAdapter; │ │ 0x0000 - 0x0005 reg=2 (null) I │ │ │ │ @@ -14075,54 +14075,54 @@ │ │ type : '(ILandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 9 │ │ ins : 4 │ │ outs : 5 │ │ insns size : 82 16-bit code units │ │ -01a530: |[01a530] org.jsl.wfwt.MainActivity$ListViewAdapter.getView:(ILandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View; │ │ -01a540: 1f07 2801 |0000: check-cast v7, Lorg/jsl/wfwt/ListViewRow; // type@0128 │ │ -01a544: 3907 1400 |0002: if-nez v7, 0016 // +0014 │ │ -01a548: 5457 4602 |0004: iget-object v7, v5, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_inflater:Landroid/view/LayoutInflater; // field@0246 │ │ -01a54c: 1208 |0006: const/4 v8, #int 0 // #0 │ │ -01a54e: 1210 |0007: const/4 v0, #int 1 // #1 │ │ -01a550: 1401 0300 037f |0008: const v1, #float 1.74129e+38 // #7f030003 │ │ -01a556: 6e40 6a00 1708 |000b: invoke-virtual {v7, v1, v8, v0}, Landroid/view/LayoutInflater;.inflate:(ILandroid/view/ViewGroup;Z)Landroid/view/View; // method@006a │ │ -01a55c: 0c07 |000e: move-result-object v7 │ │ -01a55e: 1f07 2801 |000f: check-cast v7, Lorg/jsl/wfwt/ListViewRow; // type@0128 │ │ -01a562: 5458 4502 |0011: iget-object v8, v5, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_activity:Lorg/jsl/wfwt/MainActivity; // field@0245 │ │ -01a566: 6e20 c704 8700 |0013: invoke-virtual {v7, v8}, Lorg/jsl/wfwt/ListViewRow;.init:(Lorg/jsl/wfwt/MainActivity;)V // method@04c7 │ │ -01a56c: 5458 4702 |0016: iget-object v8, v5, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_stationInfo:[Lorg/jsl/wfwt/StationInfo; // field@0247 │ │ -01a570: 4608 0806 |0018: aget-object v8, v8, v6 │ │ -01a574: 5450 4802 |001a: iget-object v0, v5, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_stringBuilder:Ljava/lang/StringBuilder; // field@0248 │ │ -01a578: 1201 |001c: const/4 v1, #int 0 // #0 │ │ -01a57a: 6e20 cd00 1000 |001d: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.setLength:(I)V // method@00cd │ │ -01a580: 5450 4802 |0020: iget-object v0, v5, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_stringBuilder:Ljava/lang/StringBuilder; // field@0248 │ │ -01a584: 5481 b902 |0022: iget-object v1, v8, Lorg/jsl/wfwt/StationInfo;.addr:Ljava/lang/String; // field@02b9 │ │ -01a588: 6e20 cb00 1000 |0024: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01a58e: 5380 bc02 |0027: iget-wide v0, v8, Lorg/jsl/wfwt/StationInfo;.ping:J // field@02bc │ │ -01a592: 1602 0000 |0029: const-wide/16 v2, #int 0 // #0 │ │ -01a596: 3104 0002 |002b: cmp-long v4, v0, v2 │ │ -01a59a: 3d04 1700 |002d: if-lez v4, 0044 // +0017 │ │ -01a59e: 5450 4802 |002f: iget-object v0, v5, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_stringBuilder:Ljava/lang/StringBuilder; // field@0248 │ │ -01a5a2: 1a01 3d00 |0031: const-string v1, ", " // string@003d │ │ -01a5a6: 6e20 cb00 1000 |0033: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01a5ac: 5450 4802 |0036: iget-object v0, v5, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_stringBuilder:Ljava/lang/StringBuilder; // field@0248 │ │ -01a5b0: 5381 bc02 |0038: iget-wide v1, v8, Lorg/jsl/wfwt/StationInfo;.ping:J // field@02bc │ │ -01a5b4: 6e30 c900 1002 |003a: invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@00c9 │ │ -01a5ba: 5450 4802 |003d: iget-object v0, v5, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_stringBuilder:Ljava/lang/StringBuilder; // field@0248 │ │ -01a5be: 1a01 1a00 |003f: const-string v1, " ms" // string@001a │ │ -01a5c2: 6e20 cb00 1000 |0041: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01a5c8: 5480 bb02 |0044: iget-object v0, v8, Lorg/jsl/wfwt/StationInfo;.name:Ljava/lang/String; // field@02bb │ │ -01a5cc: 5451 4802 |0046: iget-object v1, v5, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_stringBuilder:Ljava/lang/StringBuilder; // field@0248 │ │ -01a5d0: 6e10 ce00 0100 |0048: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01a5d6: 0c01 |004b: move-result-object v1 │ │ -01a5d8: 5288 bd02 |004c: iget v8, v8, Lorg/jsl/wfwt/StationInfo;.transmission:I // field@02bd │ │ -01a5dc: 6e58 c804 6710 |004e: invoke-virtual {v7, v6, v0, v1, v8}, Lorg/jsl/wfwt/ListViewRow;.setData:(ILjava/lang/String;Ljava/lang/String;I)V // method@04c8 │ │ -01a5e2: 1107 |0051: return-object v7 │ │ +01a534: |[01a534] org.jsl.wfwt.MainActivity$ListViewAdapter.getView:(ILandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View; │ │ +01a544: 1f07 2801 |0000: check-cast v7, Lorg/jsl/wfwt/ListViewRow; // type@0128 │ │ +01a548: 3907 1400 |0002: if-nez v7, 0016 // +0014 │ │ +01a54c: 5457 4602 |0004: iget-object v7, v5, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_inflater:Landroid/view/LayoutInflater; // field@0246 │ │ +01a550: 1208 |0006: const/4 v8, #int 0 // #0 │ │ +01a552: 1210 |0007: const/4 v0, #int 1 // #1 │ │ +01a554: 1401 0300 037f |0008: const v1, #float 1.74129e+38 // #7f030003 │ │ +01a55a: 6e40 6a00 1708 |000b: invoke-virtual {v7, v1, v8, v0}, Landroid/view/LayoutInflater;.inflate:(ILandroid/view/ViewGroup;Z)Landroid/view/View; // method@006a │ │ +01a560: 0c07 |000e: move-result-object v7 │ │ +01a562: 1f07 2801 |000f: check-cast v7, Lorg/jsl/wfwt/ListViewRow; // type@0128 │ │ +01a566: 5458 4502 |0011: iget-object v8, v5, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_activity:Lorg/jsl/wfwt/MainActivity; // field@0245 │ │ +01a56a: 6e20 c704 8700 |0013: invoke-virtual {v7, v8}, Lorg/jsl/wfwt/ListViewRow;.init:(Lorg/jsl/wfwt/MainActivity;)V // method@04c7 │ │ +01a570: 5458 4702 |0016: iget-object v8, v5, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_stationInfo:[Lorg/jsl/wfwt/StationInfo; // field@0247 │ │ +01a574: 4608 0806 |0018: aget-object v8, v8, v6 │ │ +01a578: 5450 4802 |001a: iget-object v0, v5, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_stringBuilder:Ljava/lang/StringBuilder; // field@0248 │ │ +01a57c: 1201 |001c: const/4 v1, #int 0 // #0 │ │ +01a57e: 6e20 cd00 1000 |001d: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.setLength:(I)V // method@00cd │ │ +01a584: 5450 4802 |0020: iget-object v0, v5, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_stringBuilder:Ljava/lang/StringBuilder; // field@0248 │ │ +01a588: 5481 b902 |0022: iget-object v1, v8, Lorg/jsl/wfwt/StationInfo;.addr:Ljava/lang/String; // field@02b9 │ │ +01a58c: 6e20 cb00 1000 |0024: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01a592: 5380 bc02 |0027: iget-wide v0, v8, Lorg/jsl/wfwt/StationInfo;.ping:J // field@02bc │ │ +01a596: 1602 0000 |0029: const-wide/16 v2, #int 0 // #0 │ │ +01a59a: 3104 0002 |002b: cmp-long v4, v0, v2 │ │ +01a59e: 3d04 1700 |002d: if-lez v4, 0044 // +0017 │ │ +01a5a2: 5450 4802 |002f: iget-object v0, v5, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_stringBuilder:Ljava/lang/StringBuilder; // field@0248 │ │ +01a5a6: 1a01 3d00 |0031: const-string v1, ", " // string@003d │ │ +01a5aa: 6e20 cb00 1000 |0033: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01a5b0: 5450 4802 |0036: iget-object v0, v5, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_stringBuilder:Ljava/lang/StringBuilder; // field@0248 │ │ +01a5b4: 5381 bc02 |0038: iget-wide v1, v8, Lorg/jsl/wfwt/StationInfo;.ping:J // field@02bc │ │ +01a5b8: 6e30 c900 1002 |003a: invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@00c9 │ │ +01a5be: 5450 4802 |003d: iget-object v0, v5, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_stringBuilder:Ljava/lang/StringBuilder; // field@0248 │ │ +01a5c2: 1a01 1a00 |003f: const-string v1, " ms" // string@001a │ │ +01a5c6: 6e20 cb00 1000 |0041: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01a5cc: 5480 bb02 |0044: iget-object v0, v8, Lorg/jsl/wfwt/StationInfo;.name:Ljava/lang/String; // field@02bb │ │ +01a5d0: 5451 4802 |0046: iget-object v1, v5, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_stringBuilder:Ljava/lang/StringBuilder; // field@0248 │ │ +01a5d4: 6e10 ce00 0100 |0048: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01a5da: 0c01 |004b: move-result-object v1 │ │ +01a5dc: 5288 bd02 |004c: iget v8, v8, Lorg/jsl/wfwt/StationInfo;.transmission:I // field@02bd │ │ +01a5e0: 6e58 c804 6710 |004e: invoke-virtual {v7, v6, v0, v1, v8}, Lorg/jsl/wfwt/ListViewRow;.setData:(ILjava/lang/String;Ljava/lang/String;I)V // method@04c8 │ │ +01a5e6: 1107 |0051: return-object v7 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=133 │ │ 0x0004 line=136 │ │ 0x0011 line=137 │ │ 0x0016 line=140 │ │ 0x001a line=142 │ │ @@ -14143,18 +14143,18 @@ │ │ type : '([Lorg/jsl/wfwt/StationInfo;)V' │ │ access : 0x0000 () │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -01a684: |[01a684] org.jsl.wfwt.MainActivity$ListViewAdapter.setStationInfo:([Lorg/jsl/wfwt/StationInfo;)V │ │ -01a694: 5b01 4702 |0000: iput-object v1, v0, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_stationInfo:[Lorg/jsl/wfwt/StationInfo; // field@0247 │ │ -01a698: 6e10 de04 0000 |0002: invoke-virtual {v0}, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.notifyDataSetChanged:()V // method@04de │ │ -01a69e: 0e00 |0005: return-void │ │ +01a688: |[01a688] org.jsl.wfwt.MainActivity$ListViewAdapter.setStationInfo:([Lorg/jsl/wfwt/StationInfo;)V │ │ +01a698: 5b01 4702 |0000: iput-object v1, v0, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.m_stationInfo:[Lorg/jsl/wfwt/StationInfo; // field@0247 │ │ +01a69c: 6e10 de04 0000 |0002: invoke-virtual {v0}, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.notifyDataSetChanged:()V // method@04de │ │ +01a6a2: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=117 │ │ 0x0002 line=118 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/jsl/wfwt/MainActivity$ListViewAdapter; │ │ 0x0000 - 0x0006 reg=1 (null) [Lorg/jsl/wfwt/StationInfo; │ │ @@ -14218,24 +14218,24 @@ │ │ type : '(Lorg/jsl/wfwt/MainActivity;Landroid/widget/EditText;Landroid/widget/SeekBar;Landroid/widget/CheckBox;Landroid/widget/CheckBox;Landroid/widget/CheckBox;Landroid/widget/CheckBox;)V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 8 │ │ ins : 8 │ │ outs : 1 │ │ insns size : 18 16-bit code units │ │ -01a6a0: |[01a6a0] org.jsl.wfwt.MainActivity$SettingsDialogClickListener.:(Lorg/jsl/wfwt/MainActivity;Landroid/widget/EditText;Landroid/widget/SeekBar;Landroid/widget/CheckBox;Landroid/widget/CheckBox;Landroid/widget/CheckBox;Landroid/widget/CheckBox;)V │ │ -01a6b0: 5b01 4f02 |0000: iput-object v1, v0, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ -01a6b4: 7010 b300 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01a6ba: 5b02 4d02 |0005: iput-object v2, v0, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.m_editTextStationName:Landroid/widget/EditText; // field@024d │ │ -01a6be: 5b03 4e02 |0007: iput-object v3, v0, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.m_seekBarVolume:Landroid/widget/SeekBar; // field@024e │ │ -01a6c2: 5b04 4a02 |0009: iput-object v4, v0, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.m_checkBoxCheckWiFiStateOnStart:Landroid/widget/CheckBox; // field@024a │ │ -01a6c6: 5b05 4c02 |000b: iput-object v5, v0, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.m_checkBoxUseVolumeButtonsToTalk:Landroid/widget/CheckBox; // field@024c │ │ -01a6ca: 5b06 4b02 |000d: iput-object v6, v0, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.m_checkBoxRogerBeep:Landroid/widget/CheckBox; // field@024b │ │ -01a6ce: 5b07 4902 |000f: iput-object v7, v0, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.m_checkBoxBackButtonExits:Landroid/widget/CheckBox; // field@0249 │ │ -01a6d2: 0e00 |0011: return-void │ │ +01a6a4: |[01a6a4] org.jsl.wfwt.MainActivity$SettingsDialogClickListener.:(Lorg/jsl/wfwt/MainActivity;Landroid/widget/EditText;Landroid/widget/SeekBar;Landroid/widget/CheckBox;Landroid/widget/CheckBox;Landroid/widget/CheckBox;Landroid/widget/CheckBox;)V │ │ +01a6b4: 5b01 4f02 |0000: iput-object v1, v0, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ +01a6b8: 7010 b300 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01a6be: 5b02 4d02 |0005: iput-object v2, v0, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.m_editTextStationName:Landroid/widget/EditText; // field@024d │ │ +01a6c2: 5b03 4e02 |0007: iput-object v3, v0, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.m_seekBarVolume:Landroid/widget/SeekBar; // field@024e │ │ +01a6c6: 5b04 4a02 |0009: iput-object v4, v0, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.m_checkBoxCheckWiFiStateOnStart:Landroid/widget/CheckBox; // field@024a │ │ +01a6ca: 5b05 4c02 |000b: iput-object v5, v0, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.m_checkBoxUseVolumeButtonsToTalk:Landroid/widget/CheckBox; // field@024c │ │ +01a6ce: 5b06 4b02 |000d: iput-object v6, v0, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.m_checkBoxRogerBeep:Landroid/widget/CheckBox; // field@024b │ │ +01a6d2: 5b07 4902 |000f: iput-object v7, v0, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.m_checkBoxBackButtonExits:Landroid/widget/CheckBox; // field@0249 │ │ +01a6d6: 0e00 |0011: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=173 │ │ 0x0005 line=174 │ │ 0x0007 line=175 │ │ 0x0009 line=176 │ │ 0x000b line=177 │ │ @@ -14257,129 +14257,129 @@ │ │ type : '(Landroid/content/DialogInterface;I)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 8 │ │ ins : 3 │ │ outs : 4 │ │ insns size : 247 16-bit code units │ │ -01a6d4: |[01a6d4] org.jsl.wfwt.MainActivity$SettingsDialogClickListener.onClick:(Landroid/content/DialogInterface;I)V │ │ -01a6e4: 12f6 |0000: const/4 v6, #int -1 // #ff │ │ -01a6e6: 3367 f500 |0001: if-ne v7, v6, 00f6 // +00f5 │ │ -01a6ea: 5456 4d02 |0003: iget-object v6, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.m_editTextStationName:Landroid/widget/EditText; // field@024d │ │ -01a6ee: 6e10 7e00 0600 |0005: invoke-virtual {v6}, Landroid/widget/EditText;.getText:()Landroid/text/Editable; // method@007e │ │ -01a6f4: 0c06 |0008: move-result-object v6 │ │ -01a6f6: 6e10 b600 0600 |0009: invoke-virtual {v6}, Ljava/lang/Object;.toString:()Ljava/lang/String; // method@00b6 │ │ -01a6fc: 0c06 |000c: move-result-object v6 │ │ -01a6fe: 5457 4e02 |000d: iget-object v7, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.m_seekBarVolume:Landroid/widget/SeekBar; // field@024e │ │ -01a702: 6e10 8500 0700 |000f: invoke-virtual {v7}, Landroid/widget/SeekBar;.getProgress:()I // method@0085 │ │ -01a708: 0a07 |0012: move-result v7 │ │ -01a70a: 5450 4f02 |0013: iget-object v0, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ -01a70e: 1201 |0015: const/4 v1, #int 0 // #0 │ │ -01a710: 6e20 f604 1000 |0016: invoke-virtual {v0, v1}, Lorg/jsl/wfwt/MainActivity;.getPreferences:(I)Landroid/content/SharedPreferences; // method@04f6 │ │ -01a716: 0c00 |0019: move-result-object v0 │ │ -01a718: 7210 2a00 0000 |001a: invoke-interface {v0}, Landroid/content/SharedPreferences;.edit:()Landroid/content/SharedPreferences$Editor; // method@002a │ │ -01a71e: 0c00 |001d: move-result-object v0 │ │ -01a720: 5452 4f02 |001e: iget-object v2, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ -01a724: 7110 e804 0200 |0020: invoke-static {v2}, Lorg/jsl/wfwt/MainActivity;.access$300:(Lorg/jsl/wfwt/MainActivity;)Ljava/lang/String; // method@04e8 │ │ -01a72a: 0c02 |0023: move-result-object v2 │ │ -01a72c: 6e20 bb00 6200 |0024: invoke-virtual {v2, v6}, Ljava/lang/String;.compareTo:(Ljava/lang/String;)I // method@00bb │ │ -01a732: 0a02 |0027: move-result v2 │ │ -01a734: 3802 3700 |0028: if-eqz v2, 005f // +0037 │ │ -01a738: 2202 6700 |002a: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ -01a73c: 7010 c500 0200 |002c: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -01a742: 5453 4f02 |002f: iget-object v3, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ -01a746: 1404 0300 067f |0031: const v4, #float 1.78117e+38 // #7f060003 │ │ -01a74c: 6e20 f804 4300 |0034: invoke-virtual {v3, v4}, Lorg/jsl/wfwt/MainActivity;.getString:(I)Ljava/lang/String; // method@04f8 │ │ -01a752: 0c03 |0037: move-result-object v3 │ │ -01a754: 6e20 cb00 3200 |0038: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01a75a: 1a03 5100 |003b: const-string v3, ": " // string@0051 │ │ -01a75e: 6e20 cb00 3200 |003d: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01a764: 6e20 cb00 6200 |0040: invoke-virtual {v2, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01a76a: 6e10 ce00 0200 |0043: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01a770: 0c02 |0046: move-result-object v2 │ │ -01a772: 5453 4f02 |0047: iget-object v3, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ -01a776: 6e20 0a05 2300 |0049: invoke-virtual {v3, v2}, Lorg/jsl/wfwt/MainActivity;.setTitle:(Ljava/lang/CharSequence;)V // method@050a │ │ -01a77c: 1a02 e506 |004c: const-string v2, "station_name" // string@06e5 │ │ -01a780: 7230 2900 2006 |004e: invoke-interface {v0, v2, v6}, Landroid/content/SharedPreferences$Editor;.putString:(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; // method@0029 │ │ -01a786: 5452 4f02 |0051: iget-object v2, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ -01a78a: 7110 ea04 0200 |0053: invoke-static {v2}, Lorg/jsl/wfwt/MainActivity;.access$400:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/WalkieService$BinderImpl; // method@04ea │ │ -01a790: 0c02 |0056: move-result-object v2 │ │ -01a792: 6e20 6f05 6200 |0057: invoke-virtual {v2, v6}, Lorg/jsl/wfwt/WalkieService$BinderImpl;.setStationName:(Ljava/lang/String;)V // method@056f │ │ -01a798: 5452 4f02 |005a: iget-object v2, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ -01a79c: 7120 e904 6200 |005c: invoke-static {v2, v6}, Lorg/jsl/wfwt/MainActivity;.access$302:(Lorg/jsl/wfwt/MainActivity;Ljava/lang/String;)Ljava/lang/String; // method@04e9 │ │ -01a7a2: 5456 4f02 |005f: iget-object v6, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ -01a7a6: 7110 ec04 0600 |0061: invoke-static {v6}, Lorg/jsl/wfwt/MainActivity;.access$500:(Lorg/jsl/wfwt/MainActivity;)I // method@04ec │ │ -01a7ac: 0a06 |0064: move-result v6 │ │ -01a7ae: 3267 3e00 |0065: if-eq v7, v6, 00a3 // +003e │ │ -01a7b2: 1a06 1d07 |0067: const-string v6, "volume" // string@071d │ │ -01a7b6: 7110 aa00 0700 |0069: invoke-static {v7}, Ljava/lang/Integer;.toString:(I)Ljava/lang/String; // method@00aa │ │ -01a7bc: 0c02 |006c: move-result-object v2 │ │ -01a7be: 7230 2900 6002 |006d: invoke-interface {v0, v6, v2}, Landroid/content/SharedPreferences$Editor;.putString:(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; // method@0029 │ │ -01a7c4: 5456 4f02 |0070: iget-object v6, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ -01a7c8: 1a02 f403 |0072: const-string v2, "audio" // string@03f4 │ │ -01a7cc: 6e20 f904 2600 |0074: invoke-virtual {v6, v2}, Lorg/jsl/wfwt/MainActivity;.getSystemService:(Ljava/lang/String;)Ljava/lang/Object; // method@04f9 │ │ -01a7d2: 0c06 |0077: move-result-object v6 │ │ -01a7d4: 1f06 2100 |0078: check-cast v6, Landroid/media/AudioManager; // type@0021 │ │ -01a7d8: 1a02 a002 |007a: const-string v2, "MainActivity" // string@02a0 │ │ -01a7dc: 3806 1d00 |007c: if-eqz v6, 0099 // +001d │ │ -01a7e0: 2203 6700 |007e: new-instance v3, Ljava/lang/StringBuilder; // type@0067 │ │ -01a7e4: 1a04 c606 |0080: const-string v4, "setStreamVolume(3, " // string@06c6 │ │ -01a7e8: 7020 c600 4300 |0082: invoke-direct {v3, v4}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ -01a7ee: 6e20 c800 7300 |0085: invoke-virtual {v3, v7}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ -01a7f4: 1a04 3700 |0088: const-string v4, ")" // string@0037 │ │ -01a7f8: 6e20 cb00 4300 |008a: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01a7fe: 6e10 ce00 0300 |008d: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01a804: 0c03 |0090: move-result-object v3 │ │ -01a806: 7120 6100 3200 |0091: invoke-static {v2, v3}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -01a80c: 1232 |0094: const/4 v2, #int 3 // #3 │ │ -01a80e: 6e40 3e00 2617 |0095: invoke-virtual {v6, v2, v7, v1}, Landroid/media/AudioManager;.setStreamVolume:(III)V // method@003e │ │ -01a814: 2806 |0098: goto 009e // +0006 │ │ -01a816: 1a06 cb04 |0099: const-string v6, "getSystemService(AUDIO_SERVICE) failed" // string@04cb │ │ -01a81a: 7120 6200 6200 |009b: invoke-static {v2, v6}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ -01a820: 5456 4f02 |009e: iget-object v6, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ -01a824: 7120 ed04 7600 |00a0: invoke-static {v6, v7}, Lorg/jsl/wfwt/MainActivity;.access$502:(Lorg/jsl/wfwt/MainActivity;I)I // method@04ed │ │ -01a82a: 5456 4c02 |00a3: iget-object v6, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.m_checkBoxUseVolumeButtonsToTalk:Landroid/widget/CheckBox; // field@024c │ │ -01a82e: 6e10 7c00 0600 |00a5: invoke-virtual {v6}, Landroid/widget/CheckBox;.isChecked:()Z // method@007c │ │ -01a834: 0a06 |00a8: move-result v6 │ │ -01a836: 5457 4b02 |00a9: iget-object v7, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.m_checkBoxRogerBeep:Landroid/widget/CheckBox; // field@024b │ │ -01a83a: 6e10 7c00 0700 |00ab: invoke-virtual {v7}, Landroid/widget/CheckBox;.isChecked:()Z // method@007c │ │ -01a840: 0a07 |00ae: move-result v7 │ │ -01a842: 5451 4a02 |00af: iget-object v1, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.m_checkBoxCheckWiFiStateOnStart:Landroid/widget/CheckBox; // field@024a │ │ -01a846: 6e10 7c00 0100 |00b1: invoke-virtual {v1}, Landroid/widget/CheckBox;.isChecked:()Z // method@007c │ │ -01a84c: 0a01 |00b4: move-result v1 │ │ -01a84e: 1a02 0e04 |00b5: const-string v2, "check-wifi-status" // string@040e │ │ -01a852: 7230 2800 2001 |00b7: invoke-interface {v0, v2, v1}, Landroid/content/SharedPreferences$Editor;.putBoolean:(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor; // method@0028 │ │ -01a858: 1a01 0f07 |00ba: const-string v1, "use-volume-buttons-to-talk" // string@070f │ │ -01a85c: 7230 2800 1006 |00bc: invoke-interface {v0, v1, v6}, Landroid/content/SharedPreferences$Editor;.putBoolean:(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor; // method@0028 │ │ -01a862: 1a01 6706 |00bf: const-string v1, "roger-beep" // string@0667 │ │ -01a866: 7230 2800 1007 |00c1: invoke-interface {v0, v1, v7}, Landroid/content/SharedPreferences$Editor;.putBoolean:(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor; // method@0028 │ │ -01a86c: 5451 4902 |00c4: iget-object v1, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.m_checkBoxBackButtonExits:Landroid/widget/CheckBox; // field@0249 │ │ -01a870: 6e10 7c00 0100 |00c6: invoke-virtual {v1}, Landroid/widget/CheckBox;.isChecked:()Z // method@007c │ │ -01a876: 0a01 |00c9: move-result v1 │ │ -01a878: 1a02 fb03 |00ca: const-string v2, "back-button-exits" // string@03fb │ │ -01a87c: 7230 2800 2001 |00cc: invoke-interface {v0, v2, v1}, Landroid/content/SharedPreferences$Editor;.putBoolean:(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor; // method@0028 │ │ -01a882: 7210 2700 0000 |00cf: invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;.apply:()V // method@0027 │ │ -01a888: 5450 4f02 |00d2: iget-object v0, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ -01a88c: 7120 ee04 6000 |00d4: invoke-static {v0, v6}, Lorg/jsl/wfwt/MainActivity;.access$602:(Lorg/jsl/wfwt/MainActivity;Z)Z // method@04ee │ │ -01a892: 3807 1600 |00d7: if-eqz v7, 00ed // +0016 │ │ -01a896: 5456 4f02 |00d9: iget-object v6, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ -01a89a: 6e10 f404 0600 |00db: invoke-virtual {v6}, Lorg/jsl/wfwt/MainActivity;.getApplicationContext:()Landroid/content/Context; // method@04f4 │ │ -01a8a0: 0c06 |00de: move-result-object v6 │ │ -01a8a2: 6e10 1e00 0600 |00df: invoke-virtual {v6}, Landroid/content/Context;.getResources:()Landroid/content/res/Resources; // method@001e │ │ -01a8a8: 0c06 |00e2: move-result-object v6 │ │ -01a8aa: 5457 4f02 |00e3: iget-object v7, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ -01a8ae: 7110 e604 0700 |00e5: invoke-static {v7}, Lorg/jsl/wfwt/MainActivity;.access$200:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/AudioRecorder; // method@04e6 │ │ -01a8b4: 0c07 |00e8: move-result-object v7 │ │ -01a8b6: 6e20 5104 6700 |00e9: invoke-virtual {v7, v6}, Lorg/jsl/wfwt/AudioRecorder;.setRogerBeepOn:(Landroid/content/res/Resources;)V // method@0451 │ │ -01a8bc: 280a |00ec: goto 00f6 // +000a │ │ -01a8be: 5456 4f02 |00ed: iget-object v6, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ -01a8c2: 7110 e604 0600 |00ef: invoke-static {v6}, Lorg/jsl/wfwt/MainActivity;.access$200:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/AudioRecorder; // method@04e6 │ │ -01a8c8: 0c06 |00f2: move-result-object v6 │ │ -01a8ca: 6e10 5004 0600 |00f3: invoke-virtual {v6}, Lorg/jsl/wfwt/AudioRecorder;.setRogerBeepOff:()V // method@0450 │ │ -01a8d0: 0e00 |00f6: return-void │ │ +01a6d8: |[01a6d8] org.jsl.wfwt.MainActivity$SettingsDialogClickListener.onClick:(Landroid/content/DialogInterface;I)V │ │ +01a6e8: 12f6 |0000: const/4 v6, #int -1 // #ff │ │ +01a6ea: 3367 f500 |0001: if-ne v7, v6, 00f6 // +00f5 │ │ +01a6ee: 5456 4d02 |0003: iget-object v6, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.m_editTextStationName:Landroid/widget/EditText; // field@024d │ │ +01a6f2: 6e10 7e00 0600 |0005: invoke-virtual {v6}, Landroid/widget/EditText;.getText:()Landroid/text/Editable; // method@007e │ │ +01a6f8: 0c06 |0008: move-result-object v6 │ │ +01a6fa: 6e10 b600 0600 |0009: invoke-virtual {v6}, Ljava/lang/Object;.toString:()Ljava/lang/String; // method@00b6 │ │ +01a700: 0c06 |000c: move-result-object v6 │ │ +01a702: 5457 4e02 |000d: iget-object v7, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.m_seekBarVolume:Landroid/widget/SeekBar; // field@024e │ │ +01a706: 6e10 8500 0700 |000f: invoke-virtual {v7}, Landroid/widget/SeekBar;.getProgress:()I // method@0085 │ │ +01a70c: 0a07 |0012: move-result v7 │ │ +01a70e: 5450 4f02 |0013: iget-object v0, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ +01a712: 1201 |0015: const/4 v1, #int 0 // #0 │ │ +01a714: 6e20 f604 1000 |0016: invoke-virtual {v0, v1}, Lorg/jsl/wfwt/MainActivity;.getPreferences:(I)Landroid/content/SharedPreferences; // method@04f6 │ │ +01a71a: 0c00 |0019: move-result-object v0 │ │ +01a71c: 7210 2a00 0000 |001a: invoke-interface {v0}, Landroid/content/SharedPreferences;.edit:()Landroid/content/SharedPreferences$Editor; // method@002a │ │ +01a722: 0c00 |001d: move-result-object v0 │ │ +01a724: 5452 4f02 |001e: iget-object v2, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ +01a728: 7110 e804 0200 |0020: invoke-static {v2}, Lorg/jsl/wfwt/MainActivity;.access$300:(Lorg/jsl/wfwt/MainActivity;)Ljava/lang/String; // method@04e8 │ │ +01a72e: 0c02 |0023: move-result-object v2 │ │ +01a730: 6e20 bb00 6200 |0024: invoke-virtual {v2, v6}, Ljava/lang/String;.compareTo:(Ljava/lang/String;)I // method@00bb │ │ +01a736: 0a02 |0027: move-result v2 │ │ +01a738: 3802 3700 |0028: if-eqz v2, 005f // +0037 │ │ +01a73c: 2202 6700 |002a: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ +01a740: 7010 c500 0200 |002c: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +01a746: 5453 4f02 |002f: iget-object v3, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ +01a74a: 1404 0300 067f |0031: const v4, #float 1.78117e+38 // #7f060003 │ │ +01a750: 6e20 f804 4300 |0034: invoke-virtual {v3, v4}, Lorg/jsl/wfwt/MainActivity;.getString:(I)Ljava/lang/String; // method@04f8 │ │ +01a756: 0c03 |0037: move-result-object v3 │ │ +01a758: 6e20 cb00 3200 |0038: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01a75e: 1a03 5100 |003b: const-string v3, ": " // string@0051 │ │ +01a762: 6e20 cb00 3200 |003d: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01a768: 6e20 cb00 6200 |0040: invoke-virtual {v2, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01a76e: 6e10 ce00 0200 |0043: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01a774: 0c02 |0046: move-result-object v2 │ │ +01a776: 5453 4f02 |0047: iget-object v3, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ +01a77a: 6e20 0a05 2300 |0049: invoke-virtual {v3, v2}, Lorg/jsl/wfwt/MainActivity;.setTitle:(Ljava/lang/CharSequence;)V // method@050a │ │ +01a780: 1a02 e506 |004c: const-string v2, "station_name" // string@06e5 │ │ +01a784: 7230 2900 2006 |004e: invoke-interface {v0, v2, v6}, Landroid/content/SharedPreferences$Editor;.putString:(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; // method@0029 │ │ +01a78a: 5452 4f02 |0051: iget-object v2, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ +01a78e: 7110 ea04 0200 |0053: invoke-static {v2}, Lorg/jsl/wfwt/MainActivity;.access$400:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/WalkieService$BinderImpl; // method@04ea │ │ +01a794: 0c02 |0056: move-result-object v2 │ │ +01a796: 6e20 6f05 6200 |0057: invoke-virtual {v2, v6}, Lorg/jsl/wfwt/WalkieService$BinderImpl;.setStationName:(Ljava/lang/String;)V // method@056f │ │ +01a79c: 5452 4f02 |005a: iget-object v2, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ +01a7a0: 7120 e904 6200 |005c: invoke-static {v2, v6}, Lorg/jsl/wfwt/MainActivity;.access$302:(Lorg/jsl/wfwt/MainActivity;Ljava/lang/String;)Ljava/lang/String; // method@04e9 │ │ +01a7a6: 5456 4f02 |005f: iget-object v6, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ +01a7aa: 7110 ec04 0600 |0061: invoke-static {v6}, Lorg/jsl/wfwt/MainActivity;.access$500:(Lorg/jsl/wfwt/MainActivity;)I // method@04ec │ │ +01a7b0: 0a06 |0064: move-result v6 │ │ +01a7b2: 3267 3e00 |0065: if-eq v7, v6, 00a3 // +003e │ │ +01a7b6: 1a06 1d07 |0067: const-string v6, "volume" // string@071d │ │ +01a7ba: 7110 aa00 0700 |0069: invoke-static {v7}, Ljava/lang/Integer;.toString:(I)Ljava/lang/String; // method@00aa │ │ +01a7c0: 0c02 |006c: move-result-object v2 │ │ +01a7c2: 7230 2900 6002 |006d: invoke-interface {v0, v6, v2}, Landroid/content/SharedPreferences$Editor;.putString:(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; // method@0029 │ │ +01a7c8: 5456 4f02 |0070: iget-object v6, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ +01a7cc: 1a02 f403 |0072: const-string v2, "audio" // string@03f4 │ │ +01a7d0: 6e20 f904 2600 |0074: invoke-virtual {v6, v2}, Lorg/jsl/wfwt/MainActivity;.getSystemService:(Ljava/lang/String;)Ljava/lang/Object; // method@04f9 │ │ +01a7d6: 0c06 |0077: move-result-object v6 │ │ +01a7d8: 1f06 2100 |0078: check-cast v6, Landroid/media/AudioManager; // type@0021 │ │ +01a7dc: 1a02 a002 |007a: const-string v2, "MainActivity" // string@02a0 │ │ +01a7e0: 3806 1d00 |007c: if-eqz v6, 0099 // +001d │ │ +01a7e4: 2203 6700 |007e: new-instance v3, Ljava/lang/StringBuilder; // type@0067 │ │ +01a7e8: 1a04 c606 |0080: const-string v4, "setStreamVolume(3, " // string@06c6 │ │ +01a7ec: 7020 c600 4300 |0082: invoke-direct {v3, v4}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ +01a7f2: 6e20 c800 7300 |0085: invoke-virtual {v3, v7}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ +01a7f8: 1a04 3700 |0088: const-string v4, ")" // string@0037 │ │ +01a7fc: 6e20 cb00 4300 |008a: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01a802: 6e10 ce00 0300 |008d: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01a808: 0c03 |0090: move-result-object v3 │ │ +01a80a: 7120 6100 3200 |0091: invoke-static {v2, v3}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +01a810: 1232 |0094: const/4 v2, #int 3 // #3 │ │ +01a812: 6e40 3e00 2617 |0095: invoke-virtual {v6, v2, v7, v1}, Landroid/media/AudioManager;.setStreamVolume:(III)V // method@003e │ │ +01a818: 2806 |0098: goto 009e // +0006 │ │ +01a81a: 1a06 cb04 |0099: const-string v6, "getSystemService(AUDIO_SERVICE) failed" // string@04cb │ │ +01a81e: 7120 6200 6200 |009b: invoke-static {v2, v6}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ +01a824: 5456 4f02 |009e: iget-object v6, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ +01a828: 7120 ed04 7600 |00a0: invoke-static {v6, v7}, Lorg/jsl/wfwt/MainActivity;.access$502:(Lorg/jsl/wfwt/MainActivity;I)I // method@04ed │ │ +01a82e: 5456 4c02 |00a3: iget-object v6, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.m_checkBoxUseVolumeButtonsToTalk:Landroid/widget/CheckBox; // field@024c │ │ +01a832: 6e10 7c00 0600 |00a5: invoke-virtual {v6}, Landroid/widget/CheckBox;.isChecked:()Z // method@007c │ │ +01a838: 0a06 |00a8: move-result v6 │ │ +01a83a: 5457 4b02 |00a9: iget-object v7, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.m_checkBoxRogerBeep:Landroid/widget/CheckBox; // field@024b │ │ +01a83e: 6e10 7c00 0700 |00ab: invoke-virtual {v7}, Landroid/widget/CheckBox;.isChecked:()Z // method@007c │ │ +01a844: 0a07 |00ae: move-result v7 │ │ +01a846: 5451 4a02 |00af: iget-object v1, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.m_checkBoxCheckWiFiStateOnStart:Landroid/widget/CheckBox; // field@024a │ │ +01a84a: 6e10 7c00 0100 |00b1: invoke-virtual {v1}, Landroid/widget/CheckBox;.isChecked:()Z // method@007c │ │ +01a850: 0a01 |00b4: move-result v1 │ │ +01a852: 1a02 0e04 |00b5: const-string v2, "check-wifi-status" // string@040e │ │ +01a856: 7230 2800 2001 |00b7: invoke-interface {v0, v2, v1}, Landroid/content/SharedPreferences$Editor;.putBoolean:(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor; // method@0028 │ │ +01a85c: 1a01 0f07 |00ba: const-string v1, "use-volume-buttons-to-talk" // string@070f │ │ +01a860: 7230 2800 1006 |00bc: invoke-interface {v0, v1, v6}, Landroid/content/SharedPreferences$Editor;.putBoolean:(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor; // method@0028 │ │ +01a866: 1a01 6706 |00bf: const-string v1, "roger-beep" // string@0667 │ │ +01a86a: 7230 2800 1007 |00c1: invoke-interface {v0, v1, v7}, Landroid/content/SharedPreferences$Editor;.putBoolean:(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor; // method@0028 │ │ +01a870: 5451 4902 |00c4: iget-object v1, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.m_checkBoxBackButtonExits:Landroid/widget/CheckBox; // field@0249 │ │ +01a874: 6e10 7c00 0100 |00c6: invoke-virtual {v1}, Landroid/widget/CheckBox;.isChecked:()Z // method@007c │ │ +01a87a: 0a01 |00c9: move-result v1 │ │ +01a87c: 1a02 fb03 |00ca: const-string v2, "back-button-exits" // string@03fb │ │ +01a880: 7230 2800 2001 |00cc: invoke-interface {v0, v2, v1}, Landroid/content/SharedPreferences$Editor;.putBoolean:(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor; // method@0028 │ │ +01a886: 7210 2700 0000 |00cf: invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;.apply:()V // method@0027 │ │ +01a88c: 5450 4f02 |00d2: iget-object v0, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ +01a890: 7120 ee04 6000 |00d4: invoke-static {v0, v6}, Lorg/jsl/wfwt/MainActivity;.access$602:(Lorg/jsl/wfwt/MainActivity;Z)Z // method@04ee │ │ +01a896: 3807 1600 |00d7: if-eqz v7, 00ed // +0016 │ │ +01a89a: 5456 4f02 |00d9: iget-object v6, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ +01a89e: 6e10 f404 0600 |00db: invoke-virtual {v6}, Lorg/jsl/wfwt/MainActivity;.getApplicationContext:()Landroid/content/Context; // method@04f4 │ │ +01a8a4: 0c06 |00de: move-result-object v6 │ │ +01a8a6: 6e10 1e00 0600 |00df: invoke-virtual {v6}, Landroid/content/Context;.getResources:()Landroid/content/res/Resources; // method@001e │ │ +01a8ac: 0c06 |00e2: move-result-object v6 │ │ +01a8ae: 5457 4f02 |00e3: iget-object v7, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ +01a8b2: 7110 e604 0700 |00e5: invoke-static {v7}, Lorg/jsl/wfwt/MainActivity;.access$200:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/AudioRecorder; // method@04e6 │ │ +01a8b8: 0c07 |00e8: move-result-object v7 │ │ +01a8ba: 6e20 5104 6700 |00e9: invoke-virtual {v7, v6}, Lorg/jsl/wfwt/AudioRecorder;.setRogerBeepOn:(Landroid/content/res/Resources;)V // method@0451 │ │ +01a8c0: 280a |00ec: goto 00f6 // +000a │ │ +01a8c2: 5456 4f02 |00ed: iget-object v6, v5, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@024f │ │ +01a8c6: 7110 e604 0600 |00ef: invoke-static {v6}, Lorg/jsl/wfwt/MainActivity;.access$200:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/AudioRecorder; // method@04e6 │ │ +01a8cc: 0c06 |00f2: move-result-object v6 │ │ +01a8ce: 6e10 5004 0600 |00f3: invoke-virtual {v6}, Lorg/jsl/wfwt/AudioRecorder;.setRogerBeepOff:()V // method@0450 │ │ +01a8d4: 0e00 |00f6: return-void │ │ catches : (none) │ │ positions : │ │ 0x0003 line=186 │ │ 0x000d line=187 │ │ 0x0013 line=189 │ │ 0x001a line=190 │ │ 0x001e line=192 │ │ @@ -14446,17 +14446,17 @@ │ │ type : '()V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -01b9cc: |[01b9cc] org.jsl.wfwt.Protocol$Message.:()V │ │ -01b9dc: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01b9e2: 0e00 |0003: return-void │ │ +01b9d0: |[01b9d0] org.jsl.wfwt.Protocol$Message.:()V │ │ +01b9e0: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01b9e6: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=44 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/jsl/wfwt/Protocol$Message; │ │ │ │ #1 : (in Lorg/jsl/wfwt/Protocol$Message;) │ │ @@ -14464,27 +14464,27 @@ │ │ type : '(SS)Ljava/nio/ByteBuffer;' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 3 │ │ ins : 2 │ │ outs : 3 │ │ insns size : 22 16-bit code units │ │ -01b904: |[01b904] org.jsl.wfwt.Protocol$Message.create:(SS)Ljava/nio/ByteBuffer; │ │ -01b914: d802 0204 |0000: add-int/lit8 v2, v2, #int 4 // #04 │ │ -01b918: 1300 ff7f |0002: const/16 v0, #int 32767 // #7fff │ │ -01b91c: 3602 0c00 |0004: if-gt v2, v0, 0010 // +000c │ │ -01b920: 7110 f200 0200 |0006: invoke-static {v2}, Ljava/nio/ByteBuffer;.allocateDirect:(I)Ljava/nio/ByteBuffer; // method@00f2 │ │ -01b926: 0c00 |0009: move-result-object v0 │ │ -01b928: 8f22 |000a: int-to-short v2, v2 │ │ -01b92a: 7130 2705 2001 |000b: invoke-static {v0, v2, v1}, Lorg/jsl/wfwt/Protocol$Message;.init:(Ljava/nio/ByteBuffer;SS)Ljava/nio/ByteBuffer; // method@0527 │ │ -01b930: 0c01 |000e: move-result-object v1 │ │ -01b932: 1101 |000f: return-object v1 │ │ -01b934: 2201 8d00 |0010: new-instance v1, Ljava/security/InvalidParameterException; // type@008d │ │ -01b938: 7010 5901 0100 |0012: invoke-direct {v1}, Ljava/security/InvalidParameterException;.:()V // method@0159 │ │ -01b93e: 2701 |0015: throw v1 │ │ +01b908: |[01b908] org.jsl.wfwt.Protocol$Message.create:(SS)Ljava/nio/ByteBuffer; │ │ +01b918: d802 0204 |0000: add-int/lit8 v2, v2, #int 4 // #04 │ │ +01b91c: 1300 ff7f |0002: const/16 v0, #int 32767 // #7fff │ │ +01b920: 3602 0c00 |0004: if-gt v2, v0, 0010 // +000c │ │ +01b924: 7110 f200 0200 |0006: invoke-static {v2}, Ljava/nio/ByteBuffer;.allocateDirect:(I)Ljava/nio/ByteBuffer; // method@00f2 │ │ +01b92a: 0c00 |0009: move-result-object v0 │ │ +01b92c: 8f22 |000a: int-to-short v2, v2 │ │ +01b92e: 7130 2705 2001 |000b: invoke-static {v0, v2, v1}, Lorg/jsl/wfwt/Protocol$Message;.init:(Ljava/nio/ByteBuffer;SS)Ljava/nio/ByteBuffer; // method@0527 │ │ +01b934: 0c01 |000e: move-result-object v1 │ │ +01b936: 1101 |000f: return-object v1 │ │ +01b938: 2201 8d00 |0010: new-instance v1, Ljava/security/InvalidParameterException; // type@008d │ │ +01b93c: 7010 5901 0100 |0012: invoke-direct {v1}, Ljava/security/InvalidParameterException;.:()V // method@0159 │ │ +01b942: 2701 |0015: throw v1 │ │ catches : (none) │ │ positions : │ │ 0x0006 line=60 │ │ 0x000b line=61 │ │ 0x0010 line=59 │ │ locals : │ │ 0x0000 - 0x0016 reg=1 (null) S │ │ @@ -14495,28 +14495,28 @@ │ │ type : '(SS)Lorg/jsl/collider/RetainableByteBuffer;' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 4 │ │ ins : 2 │ │ outs : 3 │ │ insns size : 25 16-bit code units │ │ -01b960: |[01b960] org.jsl.wfwt.Protocol$Message.createEx:(SS)Lorg/jsl/collider/RetainableByteBuffer; │ │ -01b970: d803 0304 |0000: add-int/lit8 v3, v3, #int 4 // #04 │ │ -01b974: 1300 ff7f |0002: const/16 v0, #int 32767 // #7fff │ │ -01b978: 3603 0f00 |0004: if-gt v3, v0, 0013 // +000f │ │ -01b97c: 7110 b802 0300 |0006: invoke-static {v3}, Lorg/jsl/collider/RetainableByteBuffer;.allocateDirect:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02b8 │ │ -01b982: 0c00 |0009: move-result-object v0 │ │ -01b984: 6e10 cc02 0000 |000a: invoke-virtual {v0}, Lorg/jsl/collider/RetainableByteBuffer;.getNioByteBuffer:()Ljava/nio/ByteBuffer; // method@02cc │ │ -01b98a: 0c01 |000d: move-result-object v1 │ │ -01b98c: 8f33 |000e: int-to-short v3, v3 │ │ -01b98e: 7130 2705 3102 |000f: invoke-static {v1, v3, v2}, Lorg/jsl/wfwt/Protocol$Message;.init:(Ljava/nio/ByteBuffer;SS)Ljava/nio/ByteBuffer; // method@0527 │ │ -01b994: 1100 |0012: return-object v0 │ │ -01b996: 2202 8d00 |0013: new-instance v2, Ljava/security/InvalidParameterException; // type@008d │ │ -01b99a: 7010 5901 0200 |0015: invoke-direct {v2}, Ljava/security/InvalidParameterException;.:()V // method@0159 │ │ -01b9a0: 2702 |0018: throw v2 │ │ +01b964: |[01b964] org.jsl.wfwt.Protocol$Message.createEx:(SS)Lorg/jsl/collider/RetainableByteBuffer; │ │ +01b974: d803 0304 |0000: add-int/lit8 v3, v3, #int 4 // #04 │ │ +01b978: 1300 ff7f |0002: const/16 v0, #int 32767 // #7fff │ │ +01b97c: 3603 0f00 |0004: if-gt v3, v0, 0013 // +000f │ │ +01b980: 7110 b802 0300 |0006: invoke-static {v3}, Lorg/jsl/collider/RetainableByteBuffer;.allocateDirect:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02b8 │ │ +01b986: 0c00 |0009: move-result-object v0 │ │ +01b988: 6e10 cc02 0000 |000a: invoke-virtual {v0}, Lorg/jsl/collider/RetainableByteBuffer;.getNioByteBuffer:()Ljava/nio/ByteBuffer; // method@02cc │ │ +01b98e: 0c01 |000d: move-result-object v1 │ │ +01b990: 8f33 |000e: int-to-short v3, v3 │ │ +01b992: 7130 2705 3102 |000f: invoke-static {v1, v3, v2}, Lorg/jsl/wfwt/Protocol$Message;.init:(Ljava/nio/ByteBuffer;SS)Ljava/nio/ByteBuffer; // method@0527 │ │ +01b998: 1100 |0012: return-object v0 │ │ +01b99a: 2202 8d00 |0013: new-instance v2, Ljava/security/InvalidParameterException; // type@008d │ │ +01b99e: 7010 5901 0200 |0015: invoke-direct {v2}, Ljava/security/InvalidParameterException;.:()V // method@0159 │ │ +01b9a4: 2702 |0018: throw v2 │ │ catches : (none) │ │ positions : │ │ 0x0006 line=68 │ │ 0x000a line=69 │ │ 0x0013 line=67 │ │ locals : │ │ 0x0000 - 0x0019 reg=2 (null) S │ │ @@ -14527,20 +14527,20 @@ │ │ type : '(Ljava/nio/ByteBuffer;)I' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 9 16-bit code units │ │ -01b8e0: |[01b8e0] org.jsl.wfwt.Protocol$Message.getLength:(Ljava/nio/ByteBuffer;)I │ │ -01b8f0: 6e10 0b01 0100 |0000: invoke-virtual {v1}, Ljava/nio/ByteBuffer;.position:()I // method@010b │ │ -01b8f6: 0a00 |0003: move-result v0 │ │ -01b8f8: 6e20 0501 0100 |0004: invoke-virtual {v1, v0}, Ljava/nio/ByteBuffer;.getShort:(I)S // method@0105 │ │ -01b8fe: 0a01 |0007: move-result v1 │ │ -01b900: 0f01 |0008: return v1 │ │ +01b8e4: |[01b8e4] org.jsl.wfwt.Protocol$Message.getLength:(Ljava/nio/ByteBuffer;)I │ │ +01b8f4: 6e10 0b01 0100 |0000: invoke-virtual {v1}, Ljava/nio/ByteBuffer;.position:()I // method@010b │ │ +01b8fa: 0a00 |0003: move-result v0 │ │ +01b8fc: 6e20 0501 0100 |0004: invoke-virtual {v1, v0}, Ljava/nio/ByteBuffer;.getShort:(I)S // method@0105 │ │ +01b902: 0a01 |0007: move-result v1 │ │ +01b904: 0f01 |0008: return v1 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=75 │ │ locals : │ │ 0x0000 - 0x0009 reg=1 (null) Ljava/nio/ByteBuffer; │ │ │ │ #4 : (in Lorg/jsl/wfwt/Protocol$Message;) │ │ @@ -14548,21 +14548,21 @@ │ │ type : '(Lorg/jsl/collider/RetainableByteBuffer;)S' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 11 16-bit code units │ │ -01b9a4: |[01b9a4] org.jsl.wfwt.Protocol$Message.getMessageId:(Lorg/jsl/collider/RetainableByteBuffer;)S │ │ -01b9b4: 6e10 d302 0100 |0000: invoke-virtual {v1}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ -01b9ba: 0a00 |0003: move-result v0 │ │ -01b9bc: d800 0002 |0004: add-int/lit8 v0, v0, #int 2 // #02 │ │ -01b9c0: 6e20 ce02 0100 |0006: invoke-virtual {v1, v0}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:(I)S // method@02ce │ │ -01b9c6: 0a01 |0009: move-result v1 │ │ -01b9c8: 0f01 |000a: return v1 │ │ +01b9a8: |[01b9a8] org.jsl.wfwt.Protocol$Message.getMessageId:(Lorg/jsl/collider/RetainableByteBuffer;)S │ │ +01b9b8: 6e10 d302 0100 |0000: invoke-virtual {v1}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ +01b9be: 0a00 |0003: move-result v0 │ │ +01b9c0: d800 0002 |0004: add-int/lit8 v0, v0, #int 2 // #02 │ │ +01b9c4: 6e20 ce02 0100 |0006: invoke-virtual {v1, v0}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:(I)S // method@02ce │ │ +01b9ca: 0a01 |0009: move-result v1 │ │ +01b9cc: 0f01 |000a: return v1 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=80 │ │ locals : │ │ 0x0000 - 0x000b reg=1 (null) Lorg/jsl/collider/RetainableByteBuffer; │ │ │ │ #5 : (in Lorg/jsl/wfwt/Protocol$Message;) │ │ @@ -14570,18 +14570,18 @@ │ │ type : '(Ljava/nio/ByteBuffer;SS)Ljava/nio/ByteBuffer;' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 3 │ │ ins : 3 │ │ outs : 2 │ │ insns size : 7 16-bit code units │ │ -01b940: |[01b940] org.jsl.wfwt.Protocol$Message.init:(Ljava/nio/ByteBuffer;SS)Ljava/nio/ByteBuffer; │ │ -01b950: 6e20 1a01 1000 |0000: invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;.putShort:(S)Ljava/nio/ByteBuffer; // method@011a │ │ -01b956: 6e20 1a01 2000 |0003: invoke-virtual {v0, v2}, Ljava/nio/ByteBuffer;.putShort:(S)Ljava/nio/ByteBuffer; // method@011a │ │ -01b95c: 1100 |0006: return-object v0 │ │ +01b944: |[01b944] org.jsl.wfwt.Protocol$Message.init:(Ljava/nio/ByteBuffer;SS)Ljava/nio/ByteBuffer; │ │ +01b954: 6e20 1a01 1000 |0000: invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;.putShort:(S)Ljava/nio/ByteBuffer; // method@011a │ │ +01b95a: 6e20 1a01 2000 |0003: invoke-virtual {v0, v2}, Ljava/nio/ByteBuffer;.putShort:(S)Ljava/nio/ByteBuffer; // method@011a │ │ +01b960: 1100 |0006: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=51 │ │ 0x0003 line=52 │ │ locals : │ │ 0x0000 - 0x0007 reg=0 (null) Ljava/nio/ByteBuffer; │ │ 0x0000 - 0x0007 reg=1 (null) S │ │ @@ -14662,35 +14662,35 @@ │ │ type : '()V' │ │ access : 0x10008 (STATIC CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 5 16-bit code units │ │ -01bbb4: |[01bbb4] org.jsl.wfwt.Protocol.:()V │ │ -01bbc4: 6200 0400 |0000: sget-object v0, Ljava/nio/ByteOrder;.BIG_ENDIAN:Ljava/nio/ByteOrder; // field@0004 │ │ -01bbc8: 6900 7002 |0002: sput-object v0, Lorg/jsl/wfwt/Protocol;.BYTE_ORDER:Ljava/nio/ByteOrder; // field@0270 │ │ -01bbcc: 0e00 |0004: return-void │ │ +01bbb8: |[01bbb8] org.jsl.wfwt.Protocol.:()V │ │ +01bbc8: 6200 0400 |0000: sget-object v0, Ljava/nio/ByteOrder;.BIG_ENDIAN:Ljava/nio/ByteOrder; // field@0004 │ │ +01bbcc: 6900 7002 |0002: sput-object v0, Lorg/jsl/wfwt/Protocol;.BYTE_ORDER:Ljava/nio/ByteOrder; // field@0270 │ │ +01bbd0: 0e00 |0004: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=42 │ │ locals : │ │ │ │ #1 : (in Lorg/jsl/wfwt/Protocol;) │ │ name : '' │ │ type : '()V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -01bbd0: |[01bbd0] org.jsl.wfwt.Protocol.:()V │ │ -01bbe0: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01bbe6: 0e00 |0003: return-void │ │ +01bbd4: |[01bbd4] org.jsl.wfwt.Protocol.:()V │ │ +01bbe4: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01bbea: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=31 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/jsl/wfwt/Protocol; │ │ │ │ Virtual methods - │ │ @@ -14734,17 +14734,17 @@ │ │ type : '()V' │ │ access : 0x10002 (PRIVATE CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -01bbe8: |[01bbe8] org.jsl.wfwt.R$drawable.:()V │ │ -01bbf8: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01bbfe: 0e00 |0003: return-void │ │ +01bbec: |[01bbec] org.jsl.wfwt.R$drawable.:()V │ │ +01bbfc: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01bc02: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ locals : │ │ │ │ Virtual methods - │ │ source_file_idx : -1 (unknown) │ │ │ │ @@ -14866,17 +14866,17 @@ │ │ type : '()V' │ │ access : 0x10002 (PRIVATE CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -01bc00: |[01bc00] org.jsl.wfwt.R$id.:()V │ │ -01bc10: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01bc16: 0e00 |0003: return-void │ │ +01bc04: |[01bc04] org.jsl.wfwt.R$id.:()V │ │ +01bc14: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01bc1a: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ locals : │ │ │ │ Virtual methods - │ │ source_file_idx : -1 (unknown) │ │ │ │ @@ -14933,17 +14933,17 @@ │ │ type : '()V' │ │ access : 0x10002 (PRIVATE CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -01bc18: |[01bc18] org.jsl.wfwt.R$layout.:()V │ │ -01bc28: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01bc2e: 0e00 |0003: return-void │ │ +01bc1c: |[01bc1c] org.jsl.wfwt.R$layout.:()V │ │ +01bc2c: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01bc32: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ locals : │ │ │ │ Virtual methods - │ │ source_file_idx : -1 (unknown) │ │ │ │ @@ -14980,17 +14980,17 @@ │ │ type : '()V' │ │ access : 0x10002 (PRIVATE CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -01bc30: |[01bc30] org.jsl.wfwt.R$menu.:()V │ │ -01bc40: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01bc46: 0e00 |0003: return-void │ │ +01bc34: |[01bc34] org.jsl.wfwt.R$menu.:()V │ │ +01bc44: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01bc4a: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ locals : │ │ │ │ Virtual methods - │ │ source_file_idx : -1 (unknown) │ │ │ │ @@ -15042,17 +15042,17 @@ │ │ type : '()V' │ │ access : 0x10002 (PRIVATE CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -01bc48: |[01bc48] org.jsl.wfwt.R$raw.:()V │ │ -01bc58: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01bc5e: 0e00 |0003: return-void │ │ +01bc4c: |[01bc4c] org.jsl.wfwt.R$raw.:()V │ │ +01bc5c: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01bc62: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ locals : │ │ │ │ Virtual methods - │ │ source_file_idx : -1 (unknown) │ │ │ │ @@ -15209,17 +15209,17 @@ │ │ type : '()V' │ │ access : 0x10002 (PRIVATE CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -01bc60: |[01bc60] org.jsl.wfwt.R$string.:()V │ │ -01bc70: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01bc76: 0e00 |0003: return-void │ │ +01bc64: |[01bc64] org.jsl.wfwt.R$string.:()V │ │ +01bc74: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01bc7a: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ locals : │ │ │ │ Virtual methods - │ │ source_file_idx : -1 (unknown) │ │ │ │ @@ -15256,17 +15256,17 @@ │ │ type : '()V' │ │ access : 0x10002 (PRIVATE CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -01bc78: |[01bc78] org.jsl.wfwt.R$style.:()V │ │ -01bc88: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01bc8e: 0e00 |0003: return-void │ │ +01bc7c: |[01bc7c] org.jsl.wfwt.R$style.:()V │ │ +01bc8c: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01bc92: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ locals : │ │ │ │ Virtual methods - │ │ source_file_idx : -1 (unknown) │ │ │ │ @@ -15297,17 +15297,17 @@ │ │ type : '()V' │ │ access : 0x10002 (PRIVATE CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -01bc90: |[01bc90] org.jsl.wfwt.R.:()V │ │ -01bca0: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01bca6: 0e00 |0003: return-void │ │ +01bc94: |[01bc94] org.jsl.wfwt.R.:()V │ │ +01bca4: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01bcaa: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ locals : │ │ │ │ Virtual methods - │ │ source_file_idx : -1 (unknown) │ │ │ │ @@ -15351,18 +15351,18 @@ │ │ type : '(Lorg/jsl/wfwt/ChannelSession;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -01bca8: |[01bca8] org.jsl.wfwt.SessionManager$Node.:(Lorg/jsl/wfwt/ChannelSession;)V │ │ -01bcb8: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01bcbe: 5b01 b302 |0003: iput-object v1, v0, Lorg/jsl/wfwt/SessionManager$Node;.session:Lorg/jsl/wfwt/ChannelSession; // field@02b3 │ │ -01bcc2: 0e00 |0005: return-void │ │ +01bcac: |[01bcac] org.jsl.wfwt.SessionManager$Node.:(Lorg/jsl/wfwt/ChannelSession;)V │ │ +01bcbc: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01bcc2: 5b01 b302 |0003: iput-object v1, v0, Lorg/jsl/wfwt/SessionManager$Node;.session:Lorg/jsl/wfwt/ChannelSession; // field@02b3 │ │ +01bcc6: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=35 │ │ 0x0003 line=36 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/jsl/wfwt/SessionManager$Node; │ │ 0x0000 - 0x0006 reg=1 (null) Lorg/jsl/wfwt/ChannelSession; │ │ @@ -15409,20 +15409,20 @@ │ │ type : '()V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 11 16-bit code units │ │ -01bcc4: |[01bcc4] org.jsl.wfwt.SessionManager.:()V │ │ -01bcd4: 7010 b300 0100 |0000: invoke-direct {v1}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01bcda: 2200 a400 |0003: new-instance v0, Ljava/util/concurrent/locks/ReentrantLock; // type@00a4 │ │ -01bcde: 7010 ad01 0000 |0005: invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantLock;.:()V // method@01ad │ │ -01bce4: 5b10 b502 |0008: iput-object v0, v1, Lorg/jsl/wfwt/SessionManager;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02b5 │ │ -01bce8: 0e00 |000a: return-void │ │ +01bcc8: |[01bcc8] org.jsl.wfwt.SessionManager.:()V │ │ +01bcd8: 7010 b300 0100 |0000: invoke-direct {v1}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01bcde: 2200 a400 |0003: new-instance v0, Ljava/util/concurrent/locks/ReentrantLock; // type@00a4 │ │ +01bce2: 7010 ad01 0000 |0005: invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantLock;.:()V // method@01ad │ │ +01bce8: 5b10 b502 |0008: iput-object v0, v1, Lorg/jsl/wfwt/SessionManager;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02b5 │ │ +01bcec: 0e00 |000a: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=49 │ │ 0x0003 line=50 │ │ locals : │ │ 0x0000 - 0x000b reg=1 this Lorg/jsl/wfwt/SessionManager; │ │ │ │ @@ -15432,35 +15432,35 @@ │ │ type : '(Lorg/jsl/wfwt/ChannelSession;)V' │ │ access : 0x0000 () │ │ code - │ │ registers : 3 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 40 16-bit code units │ │ -01bcec: |[01bcec] org.jsl.wfwt.SessionManager.addSession:(Lorg/jsl/wfwt/ChannelSession;)V │ │ -01bcfc: 5410 b502 |0000: iget-object v0, v1, Lorg/jsl/wfwt/SessionManager;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02b5 │ │ -01bd00: 6e10 ae01 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ -01bd06: 2200 4301 |0005: new-instance v0, Lorg/jsl/wfwt/SessionManager$Node; // type@0143 │ │ -01bd0a: 7020 3e05 2000 |0007: invoke-direct {v0, v2}, Lorg/jsl/wfwt/SessionManager$Node;.:(Lorg/jsl/wfwt/ChannelSession;)V // method@053e │ │ -01bd10: 5412 b402 |000a: iget-object v2, v1, Lorg/jsl/wfwt/SessionManager;.m_head:Lorg/jsl/wfwt/SessionManager$Node; // field@02b4 │ │ -01bd14: 3902 0500 |000c: if-nez v2, 0011 // +0005 │ │ -01bd18: 5b10 b402 |000e: iput-object v0, v1, Lorg/jsl/wfwt/SessionManager;.m_head:Lorg/jsl/wfwt/SessionManager$Node; // field@02b4 │ │ -01bd1c: 2809 |0010: goto 0019 // +0009 │ │ -01bd1e: 5412 b602 |0011: iget-object v2, v1, Lorg/jsl/wfwt/SessionManager;.m_tail:Lorg/jsl/wfwt/SessionManager$Node; // field@02b6 │ │ -01bd22: 5b02 b202 |0013: iput-object v2, v0, Lorg/jsl/wfwt/SessionManager$Node;.prev:Lorg/jsl/wfwt/SessionManager$Node; // field@02b2 │ │ -01bd26: 5412 b602 |0015: iget-object v2, v1, Lorg/jsl/wfwt/SessionManager;.m_tail:Lorg/jsl/wfwt/SessionManager$Node; // field@02b6 │ │ -01bd2a: 5b20 b102 |0017: iput-object v0, v2, Lorg/jsl/wfwt/SessionManager$Node;.next:Lorg/jsl/wfwt/SessionManager$Node; // field@02b1 │ │ -01bd2e: 5b10 b602 |0019: iput-object v0, v1, Lorg/jsl/wfwt/SessionManager;.m_tail:Lorg/jsl/wfwt/SessionManager$Node; // field@02b6 │ │ -01bd32: 5412 b502 |001b: iget-object v2, v1, Lorg/jsl/wfwt/SessionManager;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02b5 │ │ -01bd36: 6e10 b001 0200 |001d: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -01bd3c: 0e00 |0020: return-void │ │ -01bd3e: 0d02 |0021: move-exception v2 │ │ -01bd40: 5410 b502 |0022: iget-object v0, v1, Lorg/jsl/wfwt/SessionManager;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02b5 │ │ -01bd44: 6e10 b001 0000 |0024: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -01bd4a: 2702 |0027: throw v2 │ │ +01bcf0: |[01bcf0] org.jsl.wfwt.SessionManager.addSession:(Lorg/jsl/wfwt/ChannelSession;)V │ │ +01bd00: 5410 b502 |0000: iget-object v0, v1, Lorg/jsl/wfwt/SessionManager;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02b5 │ │ +01bd04: 6e10 ae01 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ +01bd0a: 2200 4301 |0005: new-instance v0, Lorg/jsl/wfwt/SessionManager$Node; // type@0143 │ │ +01bd0e: 7020 3e05 2000 |0007: invoke-direct {v0, v2}, Lorg/jsl/wfwt/SessionManager$Node;.:(Lorg/jsl/wfwt/ChannelSession;)V // method@053e │ │ +01bd14: 5412 b402 |000a: iget-object v2, v1, Lorg/jsl/wfwt/SessionManager;.m_head:Lorg/jsl/wfwt/SessionManager$Node; // field@02b4 │ │ +01bd18: 3902 0500 |000c: if-nez v2, 0011 // +0005 │ │ +01bd1c: 5b10 b402 |000e: iput-object v0, v1, Lorg/jsl/wfwt/SessionManager;.m_head:Lorg/jsl/wfwt/SessionManager$Node; // field@02b4 │ │ +01bd20: 2809 |0010: goto 0019 // +0009 │ │ +01bd22: 5412 b602 |0011: iget-object v2, v1, Lorg/jsl/wfwt/SessionManager;.m_tail:Lorg/jsl/wfwt/SessionManager$Node; // field@02b6 │ │ +01bd26: 5b02 b202 |0013: iput-object v2, v0, Lorg/jsl/wfwt/SessionManager$Node;.prev:Lorg/jsl/wfwt/SessionManager$Node; // field@02b2 │ │ +01bd2a: 5412 b602 |0015: iget-object v2, v1, Lorg/jsl/wfwt/SessionManager;.m_tail:Lorg/jsl/wfwt/SessionManager$Node; // field@02b6 │ │ +01bd2e: 5b20 b102 |0017: iput-object v0, v2, Lorg/jsl/wfwt/SessionManager$Node;.next:Lorg/jsl/wfwt/SessionManager$Node; // field@02b1 │ │ +01bd32: 5b10 b602 |0019: iput-object v0, v1, Lorg/jsl/wfwt/SessionManager;.m_tail:Lorg/jsl/wfwt/SessionManager$Node; // field@02b6 │ │ +01bd36: 5412 b502 |001b: iget-object v2, v1, Lorg/jsl/wfwt/SessionManager;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02b5 │ │ +01bd3a: 6e10 b001 0200 |001d: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +01bd40: 0e00 |0020: return-void │ │ +01bd42: 0d02 |0021: move-exception v2 │ │ +01bd44: 5410 b502 |0022: iget-object v0, v1, Lorg/jsl/wfwt/SessionManager;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02b5 │ │ +01bd48: 6e10 b001 0000 |0024: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +01bd4e: 2702 |0027: throw v2 │ │ catches : 1 │ │ 0x0005 - 0x001b │ │ -> 0x0021 │ │ positions : │ │ 0x0000 line=55 │ │ 0x0005 line=69 │ │ 0x000a line=70 │ │ @@ -15479,63 +15479,63 @@ │ │ type : '(Lorg/jsl/wfwt/ChannelSession;)V' │ │ access : 0x0000 () │ │ code - │ │ registers : 4 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 89 16-bit code units │ │ -01bd58: |[01bd58] org.jsl.wfwt.SessionManager.removeSession:(Lorg/jsl/wfwt/ChannelSession;)V │ │ -01bd68: 5420 b502 |0000: iget-object v0, v2, Lorg/jsl/wfwt/SessionManager;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02b5 │ │ -01bd6c: 6e10 ae01 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ -01bd72: 5420 b402 |0005: iget-object v0, v2, Lorg/jsl/wfwt/SessionManager;.m_head:Lorg/jsl/wfwt/SessionManager$Node; // field@02b4 │ │ -01bd76: 3800 4300 |0007: if-eqz v0, 004a // +0043 │ │ -01bd7a: 5401 b302 |0009: iget-object v1, v0, Lorg/jsl/wfwt/SessionManager$Node;.session:Lorg/jsl/wfwt/ChannelSession; // field@02b3 │ │ -01bd7e: 3331 3c00 |000b: if-ne v1, v3, 0047 // +003c │ │ -01bd82: 5403 b102 |000d: iget-object v3, v0, Lorg/jsl/wfwt/SessionManager$Node;.next:Lorg/jsl/wfwt/SessionManager$Node; // field@02b1 │ │ -01bd86: 1201 |000f: const/4 v1, #int 0 // #0 │ │ -01bd88: 3903 0b00 |0010: if-nez v3, 001b // +000b │ │ -01bd8c: 5403 b202 |0012: iget-object v3, v0, Lorg/jsl/wfwt/SessionManager$Node;.prev:Lorg/jsl/wfwt/SessionManager$Node; // field@02b2 │ │ -01bd90: 3903 0700 |0014: if-nez v3, 001b // +0007 │ │ -01bd94: 5b21 b402 |0016: iput-object v1, v2, Lorg/jsl/wfwt/SessionManager;.m_head:Lorg/jsl/wfwt/SessionManager$Node; // field@02b4 │ │ -01bd98: 5b21 b602 |0018: iput-object v1, v2, Lorg/jsl/wfwt/SessionManager;.m_tail:Lorg/jsl/wfwt/SessionManager$Node; // field@02b6 │ │ -01bd9c: 2827 |001a: goto 0041 // +0027 │ │ -01bd9e: 5403 b102 |001b: iget-object v3, v0, Lorg/jsl/wfwt/SessionManager$Node;.next:Lorg/jsl/wfwt/SessionManager$Node; // field@02b1 │ │ -01bda2: 3903 0b00 |001d: if-nez v3, 0028 // +000b │ │ -01bda6: 5403 b202 |001f: iget-object v3, v0, Lorg/jsl/wfwt/SessionManager$Node;.prev:Lorg/jsl/wfwt/SessionManager$Node; // field@02b2 │ │ -01bdaa: 5b31 b102 |0021: iput-object v1, v3, Lorg/jsl/wfwt/SessionManager$Node;.next:Lorg/jsl/wfwt/SessionManager$Node; // field@02b1 │ │ -01bdae: 5403 b202 |0023: iget-object v3, v0, Lorg/jsl/wfwt/SessionManager$Node;.prev:Lorg/jsl/wfwt/SessionManager$Node; // field@02b2 │ │ -01bdb2: 5b23 b602 |0025: iput-object v3, v2, Lorg/jsl/wfwt/SessionManager;.m_tail:Lorg/jsl/wfwt/SessionManager$Node; // field@02b6 │ │ -01bdb6: 281a |0027: goto 0041 // +001a │ │ -01bdb8: 5403 b202 |0028: iget-object v3, v0, Lorg/jsl/wfwt/SessionManager$Node;.prev:Lorg/jsl/wfwt/SessionManager$Node; // field@02b2 │ │ -01bdbc: 3903 0b00 |002a: if-nez v3, 0035 // +000b │ │ -01bdc0: 5403 b102 |002c: iget-object v3, v0, Lorg/jsl/wfwt/SessionManager$Node;.next:Lorg/jsl/wfwt/SessionManager$Node; // field@02b1 │ │ -01bdc4: 5b31 b202 |002e: iput-object v1, v3, Lorg/jsl/wfwt/SessionManager$Node;.prev:Lorg/jsl/wfwt/SessionManager$Node; // field@02b2 │ │ -01bdc8: 5403 b102 |0030: iget-object v3, v0, Lorg/jsl/wfwt/SessionManager$Node;.next:Lorg/jsl/wfwt/SessionManager$Node; // field@02b1 │ │ -01bdcc: 5b23 b402 |0032: iput-object v3, v2, Lorg/jsl/wfwt/SessionManager;.m_head:Lorg/jsl/wfwt/SessionManager$Node; // field@02b4 │ │ -01bdd0: 280d |0034: goto 0041 // +000d │ │ -01bdd2: 5403 b202 |0035: iget-object v3, v0, Lorg/jsl/wfwt/SessionManager$Node;.prev:Lorg/jsl/wfwt/SessionManager$Node; // field@02b2 │ │ -01bdd6: 5401 b102 |0037: iget-object v1, v0, Lorg/jsl/wfwt/SessionManager$Node;.next:Lorg/jsl/wfwt/SessionManager$Node; // field@02b1 │ │ -01bdda: 5b31 b102 |0039: iput-object v1, v3, Lorg/jsl/wfwt/SessionManager$Node;.next:Lorg/jsl/wfwt/SessionManager$Node; // field@02b1 │ │ -01bdde: 5403 b102 |003b: iget-object v3, v0, Lorg/jsl/wfwt/SessionManager$Node;.next:Lorg/jsl/wfwt/SessionManager$Node; // field@02b1 │ │ -01bde2: 5400 b202 |003d: iget-object v0, v0, Lorg/jsl/wfwt/SessionManager$Node;.prev:Lorg/jsl/wfwt/SessionManager$Node; // field@02b2 │ │ -01bde6: 5b30 b202 |003f: iput-object v0, v3, Lorg/jsl/wfwt/SessionManager$Node;.prev:Lorg/jsl/wfwt/SessionManager$Node; // field@02b2 │ │ -01bdea: 5423 b502 |0041: iget-object v3, v2, Lorg/jsl/wfwt/SessionManager;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02b5 │ │ -01bdee: 6e10 b001 0300 |0043: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -01bdf4: 0e00 |0046: return-void │ │ -01bdf6: 5400 b102 |0047: iget-object v0, v0, Lorg/jsl/wfwt/SessionManager$Node;.next:Lorg/jsl/wfwt/SessionManager$Node; // field@02b1 │ │ -01bdfa: 28be |0049: goto 0007 // -0042 │ │ -01bdfc: 5423 b502 |004a: iget-object v3, v2, Lorg/jsl/wfwt/SessionManager;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02b5 │ │ -01be00: 6e10 b001 0300 |004c: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -01be06: 0e00 |004f: return-void │ │ -01be08: 0d03 |0050: move-exception v3 │ │ -01be0a: 5420 b502 |0051: iget-object v0, v2, Lorg/jsl/wfwt/SessionManager;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02b5 │ │ -01be0e: 6e10 b001 0000 |0053: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -01be14: 2802 |0056: goto 0058 // +0002 │ │ -01be16: 2703 |0057: throw v3 │ │ -01be18: 28ff |0058: goto 0057 // -0001 │ │ +01bd5c: |[01bd5c] org.jsl.wfwt.SessionManager.removeSession:(Lorg/jsl/wfwt/ChannelSession;)V │ │ +01bd6c: 5420 b502 |0000: iget-object v0, v2, Lorg/jsl/wfwt/SessionManager;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02b5 │ │ +01bd70: 6e10 ae01 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ +01bd76: 5420 b402 |0005: iget-object v0, v2, Lorg/jsl/wfwt/SessionManager;.m_head:Lorg/jsl/wfwt/SessionManager$Node; // field@02b4 │ │ +01bd7a: 3800 4300 |0007: if-eqz v0, 004a // +0043 │ │ +01bd7e: 5401 b302 |0009: iget-object v1, v0, Lorg/jsl/wfwt/SessionManager$Node;.session:Lorg/jsl/wfwt/ChannelSession; // field@02b3 │ │ +01bd82: 3331 3c00 |000b: if-ne v1, v3, 0047 // +003c │ │ +01bd86: 5403 b102 |000d: iget-object v3, v0, Lorg/jsl/wfwt/SessionManager$Node;.next:Lorg/jsl/wfwt/SessionManager$Node; // field@02b1 │ │ +01bd8a: 1201 |000f: const/4 v1, #int 0 // #0 │ │ +01bd8c: 3903 0b00 |0010: if-nez v3, 001b // +000b │ │ +01bd90: 5403 b202 |0012: iget-object v3, v0, Lorg/jsl/wfwt/SessionManager$Node;.prev:Lorg/jsl/wfwt/SessionManager$Node; // field@02b2 │ │ +01bd94: 3903 0700 |0014: if-nez v3, 001b // +0007 │ │ +01bd98: 5b21 b402 |0016: iput-object v1, v2, Lorg/jsl/wfwt/SessionManager;.m_head:Lorg/jsl/wfwt/SessionManager$Node; // field@02b4 │ │ +01bd9c: 5b21 b602 |0018: iput-object v1, v2, Lorg/jsl/wfwt/SessionManager;.m_tail:Lorg/jsl/wfwt/SessionManager$Node; // field@02b6 │ │ +01bda0: 2827 |001a: goto 0041 // +0027 │ │ +01bda2: 5403 b102 |001b: iget-object v3, v0, Lorg/jsl/wfwt/SessionManager$Node;.next:Lorg/jsl/wfwt/SessionManager$Node; // field@02b1 │ │ +01bda6: 3903 0b00 |001d: if-nez v3, 0028 // +000b │ │ +01bdaa: 5403 b202 |001f: iget-object v3, v0, Lorg/jsl/wfwt/SessionManager$Node;.prev:Lorg/jsl/wfwt/SessionManager$Node; // field@02b2 │ │ +01bdae: 5b31 b102 |0021: iput-object v1, v3, Lorg/jsl/wfwt/SessionManager$Node;.next:Lorg/jsl/wfwt/SessionManager$Node; // field@02b1 │ │ +01bdb2: 5403 b202 |0023: iget-object v3, v0, Lorg/jsl/wfwt/SessionManager$Node;.prev:Lorg/jsl/wfwt/SessionManager$Node; // field@02b2 │ │ +01bdb6: 5b23 b602 |0025: iput-object v3, v2, Lorg/jsl/wfwt/SessionManager;.m_tail:Lorg/jsl/wfwt/SessionManager$Node; // field@02b6 │ │ +01bdba: 281a |0027: goto 0041 // +001a │ │ +01bdbc: 5403 b202 |0028: iget-object v3, v0, Lorg/jsl/wfwt/SessionManager$Node;.prev:Lorg/jsl/wfwt/SessionManager$Node; // field@02b2 │ │ +01bdc0: 3903 0b00 |002a: if-nez v3, 0035 // +000b │ │ +01bdc4: 5403 b102 |002c: iget-object v3, v0, Lorg/jsl/wfwt/SessionManager$Node;.next:Lorg/jsl/wfwt/SessionManager$Node; // field@02b1 │ │ +01bdc8: 5b31 b202 |002e: iput-object v1, v3, Lorg/jsl/wfwt/SessionManager$Node;.prev:Lorg/jsl/wfwt/SessionManager$Node; // field@02b2 │ │ +01bdcc: 5403 b102 |0030: iget-object v3, v0, Lorg/jsl/wfwt/SessionManager$Node;.next:Lorg/jsl/wfwt/SessionManager$Node; // field@02b1 │ │ +01bdd0: 5b23 b402 |0032: iput-object v3, v2, Lorg/jsl/wfwt/SessionManager;.m_head:Lorg/jsl/wfwt/SessionManager$Node; // field@02b4 │ │ +01bdd4: 280d |0034: goto 0041 // +000d │ │ +01bdd6: 5403 b202 |0035: iget-object v3, v0, Lorg/jsl/wfwt/SessionManager$Node;.prev:Lorg/jsl/wfwt/SessionManager$Node; // field@02b2 │ │ +01bdda: 5401 b102 |0037: iget-object v1, v0, Lorg/jsl/wfwt/SessionManager$Node;.next:Lorg/jsl/wfwt/SessionManager$Node; // field@02b1 │ │ +01bdde: 5b31 b102 |0039: iput-object v1, v3, Lorg/jsl/wfwt/SessionManager$Node;.next:Lorg/jsl/wfwt/SessionManager$Node; // field@02b1 │ │ +01bde2: 5403 b102 |003b: iget-object v3, v0, Lorg/jsl/wfwt/SessionManager$Node;.next:Lorg/jsl/wfwt/SessionManager$Node; // field@02b1 │ │ +01bde6: 5400 b202 |003d: iget-object v0, v0, Lorg/jsl/wfwt/SessionManager$Node;.prev:Lorg/jsl/wfwt/SessionManager$Node; // field@02b2 │ │ +01bdea: 5b30 b202 |003f: iput-object v0, v3, Lorg/jsl/wfwt/SessionManager$Node;.prev:Lorg/jsl/wfwt/SessionManager$Node; // field@02b2 │ │ +01bdee: 5423 b502 |0041: iget-object v3, v2, Lorg/jsl/wfwt/SessionManager;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02b5 │ │ +01bdf2: 6e10 b001 0300 |0043: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +01bdf8: 0e00 |0046: return-void │ │ +01bdfa: 5400 b102 |0047: iget-object v0, v0, Lorg/jsl/wfwt/SessionManager$Node;.next:Lorg/jsl/wfwt/SessionManager$Node; // field@02b1 │ │ +01bdfe: 28be |0049: goto 0007 // -0042 │ │ +01be00: 5423 b502 |004a: iget-object v3, v2, Lorg/jsl/wfwt/SessionManager;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02b5 │ │ +01be04: 6e10 b001 0300 |004c: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +01be0a: 0e00 |004f: return-void │ │ +01be0c: 0d03 |0050: move-exception v3 │ │ +01be0e: 5420 b502 |0051: iget-object v0, v2, Lorg/jsl/wfwt/SessionManager;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02b5 │ │ +01be12: 6e10 b001 0000 |0053: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +01be18: 2802 |0056: goto 0058 // +0002 │ │ +01be1a: 2703 |0057: throw v3 │ │ +01be1c: 28ff |0058: goto 0057 // -0001 │ │ catches : 2 │ │ 0x0005 - 0x0041 │ │ -> 0x0050 │ │ 0x0047 - 0x0049 │ │ -> 0x0050 │ │ positions : │ │ 0x0000 line=87 │ │ @@ -15565,22 +15565,22 @@ │ │ type : '(Ljava/nio/ByteBuffer;Z)V' │ │ access : 0x0000 () │ │ code - │ │ registers : 5 │ │ ins : 3 │ │ outs : 3 │ │ insns size : 13 16-bit code units │ │ -01be30: |[01be30] org.jsl.wfwt.SessionManager.sendAudioFrame:(Ljava/nio/ByteBuffer;Z)V │ │ -01be40: 5420 b402 |0000: iget-object v0, v2, Lorg/jsl/wfwt/SessionManager;.m_head:Lorg/jsl/wfwt/SessionManager$Node; // field@02b4 │ │ -01be44: 3800 0a00 |0002: if-eqz v0, 000c // +000a │ │ -01be48: 5401 b302 |0004: iget-object v1, v0, Lorg/jsl/wfwt/SessionManager$Node;.session:Lorg/jsl/wfwt/ChannelSession; // field@02b3 │ │ -01be4c: 6e30 a904 3104 |0006: invoke-virtual {v1, v3, v4}, Lorg/jsl/wfwt/ChannelSession;.sendAudioFrame:(Ljava/nio/ByteBuffer;Z)V // method@04a9 │ │ -01be52: 5400 b102 |0009: iget-object v0, v0, Lorg/jsl/wfwt/SessionManager$Node;.next:Lorg/jsl/wfwt/SessionManager$Node; // field@02b1 │ │ -01be56: 28f7 |000b: goto 0002 // -0009 │ │ -01be58: 0e00 |000c: return-void │ │ +01be34: |[01be34] org.jsl.wfwt.SessionManager.sendAudioFrame:(Ljava/nio/ByteBuffer;Z)V │ │ +01be44: 5420 b402 |0000: iget-object v0, v2, Lorg/jsl/wfwt/SessionManager;.m_head:Lorg/jsl/wfwt/SessionManager$Node; // field@02b4 │ │ +01be48: 3800 0a00 |0002: if-eqz v0, 000c // +000a │ │ +01be4c: 5401 b302 |0004: iget-object v1, v0, Lorg/jsl/wfwt/SessionManager$Node;.session:Lorg/jsl/wfwt/ChannelSession; // field@02b3 │ │ +01be50: 6e30 a904 3104 |0006: invoke-virtual {v1, v3, v4}, Lorg/jsl/wfwt/ChannelSession;.sendAudioFrame:(Ljava/nio/ByteBuffer;Z)V // method@04a9 │ │ +01be56: 5400 b102 |0009: iget-object v0, v0, Lorg/jsl/wfwt/SessionManager$Node;.next:Lorg/jsl/wfwt/SessionManager$Node; // field@02b1 │ │ +01be5a: 28f7 |000b: goto 0002 // -0009 │ │ +01be5c: 0e00 |000c: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=167 │ │ 0x0004 line=170 │ │ 0x0009 line=171 │ │ locals : │ │ 0x0000 - 0x000d reg=2 this Lorg/jsl/wfwt/SessionManager; │ │ @@ -15592,22 +15592,22 @@ │ │ type : '(Lorg/jsl/collider/RetainableByteBuffer;Z)V' │ │ access : 0x0000 () │ │ code - │ │ registers : 5 │ │ ins : 3 │ │ outs : 3 │ │ insns size : 13 16-bit code units │ │ -01be5c: |[01be5c] org.jsl.wfwt.SessionManager.sendAudioFrame:(Lorg/jsl/collider/RetainableByteBuffer;Z)V │ │ -01be6c: 5420 b402 |0000: iget-object v0, v2, Lorg/jsl/wfwt/SessionManager;.m_head:Lorg/jsl/wfwt/SessionManager$Node; // field@02b4 │ │ -01be70: 3800 0a00 |0002: if-eqz v0, 000c // +000a │ │ -01be74: 5401 b302 |0004: iget-object v1, v0, Lorg/jsl/wfwt/SessionManager$Node;.session:Lorg/jsl/wfwt/ChannelSession; // field@02b3 │ │ -01be78: 6e30 aa04 3104 |0006: invoke-virtual {v1, v3, v4}, Lorg/jsl/wfwt/ChannelSession;.sendAudioFrame:(Lorg/jsl/collider/RetainableByteBuffer;Z)V // method@04aa │ │ -01be7e: 5400 b102 |0009: iget-object v0, v0, Lorg/jsl/wfwt/SessionManager$Node;.next:Lorg/jsl/wfwt/SessionManager$Node; // field@02b1 │ │ -01be82: 28f7 |000b: goto 0002 // -0009 │ │ -01be84: 0e00 |000c: return-void │ │ +01be60: |[01be60] org.jsl.wfwt.SessionManager.sendAudioFrame:(Lorg/jsl/collider/RetainableByteBuffer;Z)V │ │ +01be70: 5420 b402 |0000: iget-object v0, v2, Lorg/jsl/wfwt/SessionManager;.m_head:Lorg/jsl/wfwt/SessionManager$Node; // field@02b4 │ │ +01be74: 3800 0a00 |0002: if-eqz v0, 000c // +000a │ │ +01be78: 5401 b302 |0004: iget-object v1, v0, Lorg/jsl/wfwt/SessionManager$Node;.session:Lorg/jsl/wfwt/ChannelSession; // field@02b3 │ │ +01be7c: 6e30 aa04 3104 |0006: invoke-virtual {v1, v3, v4}, Lorg/jsl/wfwt/ChannelSession;.sendAudioFrame:(Lorg/jsl/collider/RetainableByteBuffer;Z)V // method@04aa │ │ +01be82: 5400 b102 |0009: iget-object v0, v0, Lorg/jsl/wfwt/SessionManager$Node;.next:Lorg/jsl/wfwt/SessionManager$Node; // field@02b1 │ │ +01be86: 28f7 |000b: goto 0002 // -0009 │ │ +01be88: 0e00 |000c: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=157 │ │ 0x0004 line=160 │ │ 0x0009 line=161 │ │ locals : │ │ 0x0000 - 0x000d reg=2 this Lorg/jsl/wfwt/SessionManager; │ │ @@ -15647,46 +15647,46 @@ │ │ type : '(Landroid/content/Context;Landroid/util/AttributeSet;)V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 7 │ │ ins : 3 │ │ outs : 5 │ │ insns size : 69 16-bit code units │ │ -01be88: |[01be88] org.jsl.wfwt.StateView.:(Landroid/content/Context;Landroid/util/AttributeSet;)V │ │ -01be98: 7030 7000 5406 |0000: invoke-direct {v4, v5, v6}, Landroid/view/View;.:(Landroid/content/Context;Landroid/util/AttributeSet;)V // method@0070 │ │ -01be9e: 1210 |0003: const/4 v0, #int 1 // #1 │ │ -01bea0: 2301 5901 |0004: new-array v1, v0, [I // type@0159 │ │ -01bea4: 1402 4001 0101 |0006: const v2, #float 2.36945e-38 // #01010140 │ │ -01beaa: 1203 |0009: const/4 v3, #int 0 // #0 │ │ -01beac: 4b02 0103 |000a: aput v2, v1, v3 │ │ -01beb0: 1402 4800 0101 |000c: const v2, #float 2.36938e-38 // #01010048 │ │ -01beb6: 6e53 2000 6521 |000f: invoke-virtual {v5, v6, v1, v2, v3}, Landroid/content/Context;.obtainStyledAttributes:(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray; // method@0020 │ │ -01bebc: 0c05 |0012: move-result-object v5 │ │ -01bebe: 3805 0f00 |0013: if-eqz v5, 0022 // +000f │ │ -01bec2: 12f6 |0015: const/4 v6, #int -1 // #ff │ │ -01bec4: 6e30 2f00 3506 |0016: invoke-virtual {v5, v3, v6}, Landroid/content/res/TypedArray;.getDimensionPixelSize:(II)I // method@002f │ │ -01beca: 0a01 |0019: move-result v1 │ │ -01becc: 3261 0500 |001a: if-eq v1, v6, 001f // +0005 │ │ -01bed0: 6e20 4d05 1400 |001c: invoke-virtual {v4, v1}, Lorg/jsl/wfwt/StateView;.setMinimumHeight:(I)V // method@054d │ │ -01bed6: 6e10 3000 0500 |001f: invoke-virtual {v5}, Landroid/content/res/TypedArray;.recycle:()V // method@0030 │ │ -01bedc: 6e20 4e05 3400 |0022: invoke-virtual {v4, v3}, Lorg/jsl/wfwt/StateView;.setWillNotDraw:(Z)V // method@054e │ │ -01bee2: 1225 |0025: const/4 v5, #int 2 // #2 │ │ -01bee4: 2355 5b01 |0026: new-array v5, v5, [Landroid/graphics/Paint; // type@015b │ │ -01bee8: 5b45 b702 |0028: iput-object v5, v4, Lorg/jsl/wfwt/StateView;.m_paint:[Landroid/graphics/Paint; // field@02b7 │ │ -01beec: 2206 1d00 |002a: new-instance v6, Landroid/graphics/Paint; // type@001d │ │ -01bef0: 7010 3400 0600 |002c: invoke-direct {v6}, Landroid/graphics/Paint;.:()V // method@0034 │ │ -01bef6: 4d06 0503 |002f: aput-object v6, v5, v3 │ │ -01befa: 1401 4444 44ff |0031: const v1, #float -2.60883e+38 // #ff444444 │ │ -01bf00: 6e20 3600 1600 |0034: invoke-virtual {v6, v1}, Landroid/graphics/Paint;.setColor:(I)V // method@0036 │ │ -01bf06: 2206 1d00 |0037: new-instance v6, Landroid/graphics/Paint; // type@001d │ │ -01bf0a: 7010 3400 0600 |0039: invoke-direct {v6}, Landroid/graphics/Paint;.:()V // method@0034 │ │ -01bf10: 4d06 0500 |003c: aput-object v6, v5, v0 │ │ -01bf14: 1405 00ff 00ff |003e: const v5, #float -1.71465e+38 // #ff00ff00 │ │ -01bf1a: 6e20 3600 5600 |0041: invoke-virtual {v6, v5}, Landroid/graphics/Paint;.setColor:(I)V // method@0036 │ │ -01bf20: 0e00 |0044: return-void │ │ +01be8c: |[01be8c] org.jsl.wfwt.StateView.:(Landroid/content/Context;Landroid/util/AttributeSet;)V │ │ +01be9c: 7030 7000 5406 |0000: invoke-direct {v4, v5, v6}, Landroid/view/View;.:(Landroid/content/Context;Landroid/util/AttributeSet;)V // method@0070 │ │ +01bea2: 1210 |0003: const/4 v0, #int 1 // #1 │ │ +01bea4: 2301 5901 |0004: new-array v1, v0, [I // type@0159 │ │ +01bea8: 1402 4001 0101 |0006: const v2, #float 2.36945e-38 // #01010140 │ │ +01beae: 1203 |0009: const/4 v3, #int 0 // #0 │ │ +01beb0: 4b02 0103 |000a: aput v2, v1, v3 │ │ +01beb4: 1402 4800 0101 |000c: const v2, #float 2.36938e-38 // #01010048 │ │ +01beba: 6e53 2000 6521 |000f: invoke-virtual {v5, v6, v1, v2, v3}, Landroid/content/Context;.obtainStyledAttributes:(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray; // method@0020 │ │ +01bec0: 0c05 |0012: move-result-object v5 │ │ +01bec2: 3805 0f00 |0013: if-eqz v5, 0022 // +000f │ │ +01bec6: 12f6 |0015: const/4 v6, #int -1 // #ff │ │ +01bec8: 6e30 2f00 3506 |0016: invoke-virtual {v5, v3, v6}, Landroid/content/res/TypedArray;.getDimensionPixelSize:(II)I // method@002f │ │ +01bece: 0a01 |0019: move-result v1 │ │ +01bed0: 3261 0500 |001a: if-eq v1, v6, 001f // +0005 │ │ +01bed4: 6e20 4d05 1400 |001c: invoke-virtual {v4, v1}, Lorg/jsl/wfwt/StateView;.setMinimumHeight:(I)V // method@054d │ │ +01beda: 6e10 3000 0500 |001f: invoke-virtual {v5}, Landroid/content/res/TypedArray;.recycle:()V // method@0030 │ │ +01bee0: 6e20 4e05 3400 |0022: invoke-virtual {v4, v3}, Lorg/jsl/wfwt/StateView;.setWillNotDraw:(Z)V // method@054e │ │ +01bee6: 1225 |0025: const/4 v5, #int 2 // #2 │ │ +01bee8: 2355 5b01 |0026: new-array v5, v5, [Landroid/graphics/Paint; // type@015b │ │ +01beec: 5b45 b702 |0028: iput-object v5, v4, Lorg/jsl/wfwt/StateView;.m_paint:[Landroid/graphics/Paint; // field@02b7 │ │ +01bef0: 2206 1d00 |002a: new-instance v6, Landroid/graphics/Paint; // type@001d │ │ +01bef4: 7010 3400 0600 |002c: invoke-direct {v6}, Landroid/graphics/Paint;.:()V // method@0034 │ │ +01befa: 4d06 0503 |002f: aput-object v6, v5, v3 │ │ +01befe: 1401 4444 44ff |0031: const v1, #float -2.60883e+38 // #ff444444 │ │ +01bf04: 6e20 3600 1600 |0034: invoke-virtual {v6, v1}, Landroid/graphics/Paint;.setColor:(I)V // method@0036 │ │ +01bf0a: 2206 1d00 |0037: new-instance v6, Landroid/graphics/Paint; // type@001d │ │ +01bf0e: 7010 3400 0600 |0039: invoke-direct {v6}, Landroid/graphics/Paint;.:()V // method@0034 │ │ +01bf14: 4d06 0500 |003c: aput-object v6, v5, v0 │ │ +01bf18: 1405 00ff 00ff |003e: const v5, #float -1.71465e+38 // #ff00ff00 │ │ +01bf1e: 6e20 3600 5600 |0041: invoke-virtual {v6, v5}, Landroid/graphics/Paint;.setColor:(I)V // method@0036 │ │ +01bf24: 0e00 |0044: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=57 │ │ 0x000f line=59 │ │ 0x0016 line=63 │ │ 0x001c line=65 │ │ 0x001f line=66 │ │ @@ -15707,36 +15707,36 @@ │ │ type : '(Landroid/graphics/Canvas;)V' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 7 │ │ ins : 2 │ │ outs : 5 │ │ insns size : 40 16-bit code units │ │ -01bf24: |[01bf24] org.jsl.wfwt.StateView.onDraw:(Landroid/graphics/Canvas;)V │ │ -01bf34: 6f20 7200 6500 |0000: invoke-super {v5, v6}, Landroid/view/View;.onDraw:(Landroid/graphics/Canvas;)V // method@0072 │ │ -01bf3a: 5250 b802 |0003: iget v0, v5, Lorg/jsl/wfwt/StateView;.m_state:I // field@02b8 │ │ -01bf3e: 5451 b702 |0005: iget-object v1, v5, Lorg/jsl/wfwt/StateView;.m_paint:[Landroid/graphics/Paint; // field@02b7 │ │ -01bf42: 2111 |0007: array-length v1, v1 │ │ -01bf44: 3510 1f00 |0008: if-ge v0, v1, 0027 // +001f │ │ -01bf48: 6e10 4705 0500 |000a: invoke-virtual {v5}, Lorg/jsl/wfwt/StateView;.getWidth:()I // method@0547 │ │ -01bf4e: 0a00 |000d: move-result v0 │ │ -01bf50: db00 0002 |000e: div-int/lit8 v0, v0, #int 2 // #02 │ │ -01bf54: 8200 |0010: int-to-float v0, v0 │ │ -01bf56: 6e10 4505 0500 |0011: invoke-virtual {v5}, Lorg/jsl/wfwt/StateView;.getHeight:()I // method@0545 │ │ -01bf5c: 0a01 |0014: move-result v1 │ │ -01bf5e: db01 0102 |0015: div-int/lit8 v1, v1, #int 2 // #02 │ │ -01bf62: 8211 |0017: int-to-float v1, v1 │ │ -01bf64: 1502 0040 |0018: const/high16 v2, #int 1073741824 // #4000 │ │ -01bf68: a902 0002 |001a: div-float v2, v0, v2 │ │ -01bf6c: a702 0002 |001c: sub-float v2, v0, v2 │ │ -01bf70: 5453 b702 |001e: iget-object v3, v5, Lorg/jsl/wfwt/StateView;.m_paint:[Landroid/graphics/Paint; // field@02b7 │ │ -01bf74: 5254 b802 |0020: iget v4, v5, Lorg/jsl/wfwt/StateView;.m_state:I // field@02b8 │ │ -01bf78: 4603 0304 |0022: aget-object v3, v3, v4 │ │ -01bf7c: 6e53 3200 0621 |0024: invoke-virtual {v6, v0, v1, v2, v3}, Landroid/graphics/Canvas;.drawCircle:(FFFLandroid/graphics/Paint;)V // method@0032 │ │ -01bf82: 0e00 |0027: return-void │ │ +01bf28: |[01bf28] org.jsl.wfwt.StateView.onDraw:(Landroid/graphics/Canvas;)V │ │ +01bf38: 6f20 7200 6500 |0000: invoke-super {v5, v6}, Landroid/view/View;.onDraw:(Landroid/graphics/Canvas;)V // method@0072 │ │ +01bf3e: 5250 b802 |0003: iget v0, v5, Lorg/jsl/wfwt/StateView;.m_state:I // field@02b8 │ │ +01bf42: 5451 b702 |0005: iget-object v1, v5, Lorg/jsl/wfwt/StateView;.m_paint:[Landroid/graphics/Paint; // field@02b7 │ │ +01bf46: 2111 |0007: array-length v1, v1 │ │ +01bf48: 3510 1f00 |0008: if-ge v0, v1, 0027 // +001f │ │ +01bf4c: 6e10 4705 0500 |000a: invoke-virtual {v5}, Lorg/jsl/wfwt/StateView;.getWidth:()I // method@0547 │ │ +01bf52: 0a00 |000d: move-result v0 │ │ +01bf54: db00 0002 |000e: div-int/lit8 v0, v0, #int 2 // #02 │ │ +01bf58: 8200 |0010: int-to-float v0, v0 │ │ +01bf5a: 6e10 4505 0500 |0011: invoke-virtual {v5}, Lorg/jsl/wfwt/StateView;.getHeight:()I // method@0545 │ │ +01bf60: 0a01 |0014: move-result v1 │ │ +01bf62: db01 0102 |0015: div-int/lit8 v1, v1, #int 2 // #02 │ │ +01bf66: 8211 |0017: int-to-float v1, v1 │ │ +01bf68: 1502 0040 |0018: const/high16 v2, #int 1073741824 // #4000 │ │ +01bf6c: a902 0002 |001a: div-float v2, v0, v2 │ │ +01bf70: a702 0002 |001c: sub-float v2, v0, v2 │ │ +01bf74: 5453 b702 |001e: iget-object v3, v5, Lorg/jsl/wfwt/StateView;.m_paint:[Landroid/graphics/Paint; // field@02b7 │ │ +01bf78: 5254 b802 |0020: iget v4, v5, Lorg/jsl/wfwt/StateView;.m_state:I // field@02b8 │ │ +01bf7c: 4603 0304 |0022: aget-object v3, v3, v4 │ │ +01bf80: 6e53 3200 0621 |0024: invoke-virtual {v6, v0, v1, v2, v3}, Landroid/graphics/Canvas;.drawCircle:(FFFLandroid/graphics/Paint;)V // method@0032 │ │ +01bf86: 0e00 |0027: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=44 │ │ 0x0003 line=46 │ │ 0x000a line=48 │ │ 0x0011 line=49 │ │ 0x001e line=51 │ │ @@ -15749,20 +15749,20 @@ │ │ type : '(II)V' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 3 │ │ ins : 3 │ │ outs : 3 │ │ insns size : 11 16-bit code units │ │ -01bf84: |[01bf84] org.jsl.wfwt.StateView.onMeasure:(II)V │ │ -01bf94: 6f30 7300 1002 |0000: invoke-super {v0, v1, v2}, Landroid/view/View;.onMeasure:(II)V // method@0073 │ │ -01bf9a: 6e10 4605 0000 |0003: invoke-virtual {v0}, Lorg/jsl/wfwt/StateView;.getSuggestedMinimumHeight:()I // method@0546 │ │ -01bfa0: 0a01 |0006: move-result v1 │ │ -01bfa2: 6e30 4c05 1001 |0007: invoke-virtual {v0, v1, v1}, Lorg/jsl/wfwt/StateView;.setMeasuredDimension:(II)V // method@054c │ │ -01bfa8: 0e00 |000a: return-void │ │ +01bf88: |[01bf88] org.jsl.wfwt.StateView.onMeasure:(II)V │ │ +01bf98: 6f30 7300 1002 |0000: invoke-super {v0, v1, v2}, Landroid/view/View;.onMeasure:(II)V // method@0073 │ │ +01bf9e: 6e10 4605 0000 |0003: invoke-virtual {v0}, Lorg/jsl/wfwt/StateView;.getSuggestedMinimumHeight:()I // method@0546 │ │ +01bfa4: 0a01 |0006: move-result v1 │ │ +01bfa6: 6e30 4c05 1001 |0007: invoke-virtual {v0, v1, v1}, Lorg/jsl/wfwt/StateView;.setMeasuredDimension:(II)V // method@054c │ │ +01bfac: 0e00 |000a: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=37 │ │ 0x0003 line=38 │ │ 0x0007 line=39 │ │ locals : │ │ 0x0000 - 0x000b reg=0 this Lorg/jsl/wfwt/StateView; │ │ @@ -15774,23 +15774,23 @@ │ │ type : '(I)V' │ │ access : 0x0000 () │ │ code - │ │ registers : 3 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 15 16-bit code units │ │ -01bfac: |[01bfac] org.jsl.wfwt.StateView.setIndicatorState:(I)V │ │ -01bfbc: 5410 b702 |0000: iget-object v0, v1, Lorg/jsl/wfwt/StateView;.m_paint:[Landroid/graphics/Paint; // field@02b7 │ │ -01bfc0: 2100 |0002: array-length v0, v0 │ │ -01bfc2: 3502 0b00 |0003: if-ge v2, v0, 000e // +000b │ │ -01bfc6: 5210 b802 |0005: iget v0, v1, Lorg/jsl/wfwt/StateView;.m_state:I // field@02b8 │ │ -01bfca: 3220 0700 |0007: if-eq v0, v2, 000e // +0007 │ │ -01bfce: 5912 b802 |0009: iput v2, v1, Lorg/jsl/wfwt/StateView;.m_state:I // field@02b8 │ │ -01bfd2: 6e10 4805 0100 |000b: invoke-virtual {v1}, Lorg/jsl/wfwt/StateView;.invalidate:()V // method@0548 │ │ -01bfd8: 0e00 |000e: return-void │ │ +01bfb0: |[01bfb0] org.jsl.wfwt.StateView.setIndicatorState:(I)V │ │ +01bfc0: 5410 b702 |0000: iget-object v0, v1, Lorg/jsl/wfwt/StateView;.m_paint:[Landroid/graphics/Paint; // field@02b7 │ │ +01bfc4: 2100 |0002: array-length v0, v0 │ │ +01bfc6: 3502 0b00 |0003: if-ge v2, v0, 000e // +000b │ │ +01bfca: 5210 b802 |0005: iget v0, v1, Lorg/jsl/wfwt/StateView;.m_state:I // field@02b8 │ │ +01bfce: 3220 0700 |0007: if-eq v0, v2, 000e // +0007 │ │ +01bfd2: 5912 b802 |0009: iput v2, v1, Lorg/jsl/wfwt/StateView;.m_state:I // field@02b8 │ │ +01bfd6: 6e10 4805 0100 |000b: invoke-virtual {v1}, Lorg/jsl/wfwt/StateView;.invalidate:()V // method@0548 │ │ +01bfdc: 0e00 |000e: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=82 │ │ 0x0005 line=84 │ │ 0x0009 line=86 │ │ 0x000b line=87 │ │ locals : │ │ @@ -15842,22 +15842,22 @@ │ │ type : '(Ljava/lang/String;Ljava/lang/String;IJLorg/jsl/wfwt/ChannelSession;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 7 │ │ ins : 7 │ │ outs : 1 │ │ insns size : 14 16-bit code units │ │ -01bfdc: |[01bfdc] org.jsl.wfwt.StationInfo.:(Ljava/lang/String;Ljava/lang/String;IJLorg/jsl/wfwt/ChannelSession;)V │ │ -01bfec: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01bff2: 5b01 bb02 |0003: iput-object v1, v0, Lorg/jsl/wfwt/StationInfo;.name:Ljava/lang/String; // field@02bb │ │ -01bff6: 5b02 b902 |0005: iput-object v2, v0, Lorg/jsl/wfwt/StationInfo;.addr:Ljava/lang/String; // field@02b9 │ │ -01bffa: 5903 bd02 |0007: iput v3, v0, Lorg/jsl/wfwt/StationInfo;.transmission:I // field@02bd │ │ -01bffe: 5a04 bc02 |0009: iput-wide v4, v0, Lorg/jsl/wfwt/StationInfo;.ping:J // field@02bc │ │ -01c002: 5b06 ba02 |000b: iput-object v6, v0, Lorg/jsl/wfwt/StationInfo;.channelSession:Lorg/jsl/wfwt/ChannelSession; // field@02ba │ │ -01c006: 0e00 |000d: return-void │ │ +01bfe0: |[01bfe0] org.jsl.wfwt.StationInfo.:(Ljava/lang/String;Ljava/lang/String;IJLorg/jsl/wfwt/ChannelSession;)V │ │ +01bff0: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01bff6: 5b01 bb02 |0003: iput-object v1, v0, Lorg/jsl/wfwt/StationInfo;.name:Ljava/lang/String; // field@02bb │ │ +01bffa: 5b02 b902 |0005: iput-object v2, v0, Lorg/jsl/wfwt/StationInfo;.addr:Ljava/lang/String; // field@02b9 │ │ +01bffe: 5903 bd02 |0007: iput v3, v0, Lorg/jsl/wfwt/StationInfo;.transmission:I // field@02bd │ │ +01c002: 5a04 bc02 |0009: iput-wide v4, v0, Lorg/jsl/wfwt/StationInfo;.ping:J // field@02bc │ │ +01c006: 5b06 ba02 |000b: iput-object v6, v0, Lorg/jsl/wfwt/StationInfo;.channelSession:Lorg/jsl/wfwt/ChannelSession; // field@02ba │ │ +01c00a: 0e00 |000d: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=30 │ │ 0x0003 line=31 │ │ 0x0005 line=32 │ │ 0x0007 line=33 │ │ 0x0009 line=34 │ │ @@ -16007,33 +16007,33 @@ │ │ type : '()V' │ │ access : 0x10008 (STATIC CONSTRUCTOR) │ │ code - │ │ registers : 0 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 1 16-bit code units │ │ -01c318: |[01c318] org.jsl.wfwt.SwitchButton.:()V │ │ -01c328: 0e00 |0000: return-void │ │ +01c31c: |[01c31c] org.jsl.wfwt.SwitchButton.:()V │ │ +01c32c: 0e00 |0000: return-void │ │ catches : (none) │ │ positions : │ │ locals : │ │ │ │ #1 : (in Lorg/jsl/wfwt/SwitchButton;) │ │ name : '' │ │ type : '(Landroid/content/Context;)V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 3 │ │ ins : 2 │ │ outs : 3 │ │ insns size : 5 16-bit code units │ │ -01c32c: |[01c32c] org.jsl.wfwt.SwitchButton.:(Landroid/content/Context;)V │ │ -01c33c: 1200 |0000: const/4 v0, #int 0 // #0 │ │ -01c33e: 7030 5305 2100 |0001: invoke-direct {v1, v2, v0}, Lorg/jsl/wfwt/SwitchButton;.:(Landroid/content/Context;Landroid/util/AttributeSet;)V // method@0553 │ │ -01c344: 0e00 |0004: return-void │ │ +01c330: |[01c330] org.jsl.wfwt.SwitchButton.:(Landroid/content/Context;)V │ │ +01c340: 1200 |0000: const/4 v0, #int 0 // #0 │ │ +01c342: 7030 5305 2100 |0001: invoke-direct {v1, v2, v0}, Lorg/jsl/wfwt/SwitchButton;.:(Landroid/content/Context;Landroid/util/AttributeSet;)V // method@0553 │ │ +01c348: 0e00 |0004: return-void │ │ catches : (none) │ │ positions : │ │ 0x0001 line=65 │ │ locals : │ │ 0x0000 - 0x0005 reg=1 this Lorg/jsl/wfwt/SwitchButton; │ │ 0x0000 - 0x0005 reg=2 (null) Landroid/content/Context; │ │ │ │ @@ -16042,18 +16042,18 @@ │ │ type : '(Landroid/content/Context;Landroid/util/AttributeSet;)V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 4 │ │ ins : 3 │ │ outs : 4 │ │ insns size : 7 16-bit code units │ │ -01c348: |[01c348] org.jsl.wfwt.SwitchButton.:(Landroid/content/Context;Landroid/util/AttributeSet;)V │ │ -01c358: 1400 4800 0101 |0000: const v0, #float 2.36938e-38 // #01010048 │ │ -01c35e: 7040 5405 2103 |0003: invoke-direct {v1, v2, v3, v0}, Lorg/jsl/wfwt/SwitchButton;.:(Landroid/content/Context;Landroid/util/AttributeSet;I)V // method@0554 │ │ -01c364: 0e00 |0006: return-void │ │ +01c34c: |[01c34c] org.jsl.wfwt.SwitchButton.:(Landroid/content/Context;Landroid/util/AttributeSet;)V │ │ +01c35c: 1400 4800 0101 |0000: const v0, #float 2.36938e-38 // #01010048 │ │ +01c362: 7040 5405 2103 |0003: invoke-direct {v1, v2, v3, v0}, Lorg/jsl/wfwt/SwitchButton;.:(Landroid/content/Context;Landroid/util/AttributeSet;I)V // method@0554 │ │ +01c368: 0e00 |0006: return-void │ │ catches : (none) │ │ positions : │ │ 0x0003 line=70 │ │ locals : │ │ 0x0000 - 0x0007 reg=1 this Lorg/jsl/wfwt/SwitchButton; │ │ 0x0000 - 0x0007 reg=2 (null) Landroid/content/Context; │ │ 0x0000 - 0x0007 reg=3 (null) Landroid/util/AttributeSet; │ │ @@ -16063,42 +16063,42 @@ │ │ type : '(Landroid/content/Context;Landroid/util/AttributeSet;I)V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 5 │ │ ins : 4 │ │ outs : 4 │ │ insns size : 57 16-bit code units │ │ -01c368: |[01c368] org.jsl.wfwt.SwitchButton.:(Landroid/content/Context;Landroid/util/AttributeSet;I)V │ │ -01c378: 7040 7900 2143 |0000: invoke-direct {v1, v2, v3, v4}, Landroid/widget/Button;.:(Landroid/content/Context;Landroid/util/AttributeSet;I)V // method@0079 │ │ -01c37e: 6e10 5505 0100 |0003: invoke-virtual {v1}, Lorg/jsl/wfwt/SwitchButton;.getBackground:()Landroid/graphics/drawable/Drawable; // method@0555 │ │ -01c384: 0c03 |0006: move-result-object v3 │ │ -01c386: 5b13 c502 |0007: iput-object v3, v1, Lorg/jsl/wfwt/SwitchButton;.m_defaultBackground:Landroid/graphics/drawable/Drawable; // field@02c5 │ │ -01c38a: 2203 1f00 |0009: new-instance v3, Landroid/graphics/drawable/ColorDrawable; // type@001f │ │ -01c38e: 6e10 5805 0100 |000b: invoke-virtual {v1}, Lorg/jsl/wfwt/SwitchButton;.getResources:()Landroid/content/res/Resources; // method@0558 │ │ -01c394: 0c04 |000e: move-result-object v4 │ │ -01c396: 1400 1700 0601 |000f: const v0, #float 2.4612e-38 // #01060017 │ │ -01c39c: 6e20 2d00 0400 |0012: invoke-virtual {v4, v0}, Landroid/content/res/Resources;.getColor:(I)I // method@002d │ │ -01c3a2: 0a04 |0015: move-result v4 │ │ -01c3a4: 7020 3b00 4300 |0016: invoke-direct {v3, v4}, Landroid/graphics/drawable/ColorDrawable;.:(I)V // method@003b │ │ -01c3aa: 5b13 c902 |0019: iput-object v3, v1, Lorg/jsl/wfwt/SwitchButton;.m_pressedBackground:Landroid/graphics/drawable/Drawable; // field@02c9 │ │ -01c3ae: 7110 7400 0200 |001b: invoke-static {v2}, Landroid/view/ViewConfiguration;.get:(Landroid/content/Context;)Landroid/view/ViewConfiguration; // method@0074 │ │ -01c3b4: 0c02 |001e: move-result-object v2 │ │ -01c3b6: 6e10 7500 0200 |001f: invoke-virtual {v2}, Landroid/view/ViewConfiguration;.getScaledTouchSlop:()I // method@0075 │ │ -01c3bc: 0a02 |0022: move-result v2 │ │ -01c3be: 5912 cc02 |0023: iput v2, v1, Lorg/jsl/wfwt/SwitchButton;.m_touchSlop:I // field@02cc │ │ -01c3c2: 2202 1d00 |0025: new-instance v2, Landroid/graphics/Paint; // type@001d │ │ -01c3c6: 7010 3400 0200 |0027: invoke-direct {v2}, Landroid/graphics/Paint;.:()V // method@0034 │ │ -01c3cc: 5b12 c602 |002a: iput-object v2, v1, Lorg/jsl/wfwt/SwitchButton;.m_paint:Landroid/graphics/Paint; // field@02c6 │ │ -01c3d0: 12f3 |002c: const/4 v3, #int -1 // #ff │ │ -01c3d2: 6e20 3600 3200 |002d: invoke-virtual {v2, v3}, Landroid/graphics/Paint;.setColor:(I)V // method@0036 │ │ -01c3d8: 1303 5000 |0030: const/16 v3, #int 80 // #50 │ │ -01c3dc: 6e20 3500 3200 |0032: invoke-virtual {v2, v3}, Landroid/graphics/Paint;.setAlpha:(I)V // method@0035 │ │ -01c3e2: 1202 |0035: const/4 v2, #int 0 // #0 │ │ -01c3e4: 5912 ca02 |0036: iput v2, v1, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ -01c3e8: 0e00 |0038: return-void │ │ +01c36c: |[01c36c] org.jsl.wfwt.SwitchButton.:(Landroid/content/Context;Landroid/util/AttributeSet;I)V │ │ +01c37c: 7040 7900 2143 |0000: invoke-direct {v1, v2, v3, v4}, Landroid/widget/Button;.:(Landroid/content/Context;Landroid/util/AttributeSet;I)V // method@0079 │ │ +01c382: 6e10 5505 0100 |0003: invoke-virtual {v1}, Lorg/jsl/wfwt/SwitchButton;.getBackground:()Landroid/graphics/drawable/Drawable; // method@0555 │ │ +01c388: 0c03 |0006: move-result-object v3 │ │ +01c38a: 5b13 c502 |0007: iput-object v3, v1, Lorg/jsl/wfwt/SwitchButton;.m_defaultBackground:Landroid/graphics/drawable/Drawable; // field@02c5 │ │ +01c38e: 2203 1f00 |0009: new-instance v3, Landroid/graphics/drawable/ColorDrawable; // type@001f │ │ +01c392: 6e10 5805 0100 |000b: invoke-virtual {v1}, Lorg/jsl/wfwt/SwitchButton;.getResources:()Landroid/content/res/Resources; // method@0558 │ │ +01c398: 0c04 |000e: move-result-object v4 │ │ +01c39a: 1400 1700 0601 |000f: const v0, #float 2.4612e-38 // #01060017 │ │ +01c3a0: 6e20 2d00 0400 |0012: invoke-virtual {v4, v0}, Landroid/content/res/Resources;.getColor:(I)I // method@002d │ │ +01c3a6: 0a04 |0015: move-result v4 │ │ +01c3a8: 7020 3b00 4300 |0016: invoke-direct {v3, v4}, Landroid/graphics/drawable/ColorDrawable;.:(I)V // method@003b │ │ +01c3ae: 5b13 c902 |0019: iput-object v3, v1, Lorg/jsl/wfwt/SwitchButton;.m_pressedBackground:Landroid/graphics/drawable/Drawable; // field@02c9 │ │ +01c3b2: 7110 7400 0200 |001b: invoke-static {v2}, Landroid/view/ViewConfiguration;.get:(Landroid/content/Context;)Landroid/view/ViewConfiguration; // method@0074 │ │ +01c3b8: 0c02 |001e: move-result-object v2 │ │ +01c3ba: 6e10 7500 0200 |001f: invoke-virtual {v2}, Landroid/view/ViewConfiguration;.getScaledTouchSlop:()I // method@0075 │ │ +01c3c0: 0a02 |0022: move-result v2 │ │ +01c3c2: 5912 cc02 |0023: iput v2, v1, Lorg/jsl/wfwt/SwitchButton;.m_touchSlop:I // field@02cc │ │ +01c3c6: 2202 1d00 |0025: new-instance v2, Landroid/graphics/Paint; // type@001d │ │ +01c3ca: 7010 3400 0200 |0027: invoke-direct {v2}, Landroid/graphics/Paint;.:()V // method@0034 │ │ +01c3d0: 5b12 c602 |002a: iput-object v2, v1, Lorg/jsl/wfwt/SwitchButton;.m_paint:Landroid/graphics/Paint; // field@02c6 │ │ +01c3d4: 12f3 |002c: const/4 v3, #int -1 // #ff │ │ +01c3d6: 6e20 3600 3200 |002d: invoke-virtual {v2, v3}, Landroid/graphics/Paint;.setColor:(I)V // method@0036 │ │ +01c3dc: 1303 5000 |0030: const/16 v3, #int 80 // #50 │ │ +01c3e0: 6e20 3500 3200 |0032: invoke-virtual {v2, v3}, Landroid/graphics/Paint;.setAlpha:(I)V // method@0035 │ │ +01c3e6: 1202 |0035: const/4 v2, #int 0 // #0 │ │ +01c3e8: 5912 ca02 |0036: iput v2, v1, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ +01c3ec: 0e00 |0038: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=75 │ │ 0x0003 line=77 │ │ 0x0009 line=78 │ │ 0x001b line=80 │ │ 0x001f line=81 │ │ @@ -16118,42 +16118,42 @@ │ │ type : '(Landroid/graphics/Canvas;)V' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 6 │ │ ins : 2 │ │ outs : 5 │ │ insns size : 53 16-bit code units │ │ -01c3ec: |[01c3ec] org.jsl.wfwt.SwitchButton.onDraw:(Landroid/graphics/Canvas;)V │ │ -01c3fc: 6f20 7a00 5400 |0000: invoke-super {v4, v5}, Landroid/widget/Button;.onDraw:(Landroid/graphics/Canvas;)V // method@007a │ │ -01c402: 5240 ca02 |0003: iget v0, v4, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ -01c406: 1211 |0005: const/4 v1, #int 1 // #1 │ │ -01c408: 3310 2e00 |0006: if-ne v0, v1, 0034 // +002e │ │ -01c40c: 5440 c702 |0008: iget-object v0, v4, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ -01c410: 3800 2a00 |000a: if-eqz v0, 0034 // +002a │ │ -01c414: 5440 c802 |000c: iget-object v0, v4, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ -01c418: 3800 2600 |000e: if-eqz v0, 0034 // +0026 │ │ -01c41c: 6e10 5905 0400 |0010: invoke-virtual {v4}, Lorg/jsl/wfwt/SwitchButton;.getWidth:()I // method@0559 │ │ -01c422: 0a00 |0013: move-result v0 │ │ -01c424: 6e10 5605 0400 |0014: invoke-virtual {v4}, Lorg/jsl/wfwt/SwitchButton;.getHeight:()I // method@0556 │ │ -01c42a: 0a01 |0017: move-result v1 │ │ -01c42c: db00 0002 |0018: div-int/lit8 v0, v0, #int 2 // #02 │ │ -01c430: 8200 |001a: int-to-float v0, v0 │ │ -01c432: db02 0102 |001b: div-int/lit8 v2, v1, #int 2 // #02 │ │ -01c436: 8222 |001d: int-to-float v2, v2 │ │ -01c438: db01 0108 |001e: div-int/lit8 v1, v1, #int 8 // #08 │ │ -01c43c: 8211 |0020: int-to-float v1, v1 │ │ -01c43e: 5443 c602 |0021: iget-object v3, v4, Lorg/jsl/wfwt/SwitchButton;.m_paint:Landroid/graphics/Paint; // field@02c6 │ │ -01c442: 6e53 3200 0512 |0023: invoke-virtual {v5, v0, v2, v1, v3}, Landroid/graphics/Canvas;.drawCircle:(FFFLandroid/graphics/Paint;)V // method@0032 │ │ -01c448: 5440 c702 |0026: iget-object v0, v4, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ -01c44c: 5441 c602 |0028: iget-object v1, v4, Lorg/jsl/wfwt/SwitchButton;.m_paint:Landroid/graphics/Paint; // field@02c6 │ │ -01c450: 6e30 3300 0501 |002a: invoke-virtual {v5, v0, v1}, Landroid/graphics/Canvas;.drawPath:(Landroid/graphics/Path;Landroid/graphics/Paint;)V // method@0033 │ │ -01c456: 5440 c802 |002d: iget-object v0, v4, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ -01c45a: 5441 c602 |002f: iget-object v1, v4, Lorg/jsl/wfwt/SwitchButton;.m_paint:Landroid/graphics/Paint; // field@02c6 │ │ -01c45e: 6e30 3300 0501 |0031: invoke-virtual {v5, v0, v1}, Landroid/graphics/Canvas;.drawPath:(Landroid/graphics/Path;Landroid/graphics/Paint;)V // method@0033 │ │ -01c464: 0e00 |0034: return-void │ │ +01c3f0: |[01c3f0] org.jsl.wfwt.SwitchButton.onDraw:(Landroid/graphics/Canvas;)V │ │ +01c400: 6f20 7a00 5400 |0000: invoke-super {v4, v5}, Landroid/widget/Button;.onDraw:(Landroid/graphics/Canvas;)V // method@007a │ │ +01c406: 5240 ca02 |0003: iget v0, v4, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ +01c40a: 1211 |0005: const/4 v1, #int 1 // #1 │ │ +01c40c: 3310 2e00 |0006: if-ne v0, v1, 0034 // +002e │ │ +01c410: 5440 c702 |0008: iget-object v0, v4, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ +01c414: 3800 2a00 |000a: if-eqz v0, 0034 // +002a │ │ +01c418: 5440 c802 |000c: iget-object v0, v4, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ +01c41c: 3800 2600 |000e: if-eqz v0, 0034 // +0026 │ │ +01c420: 6e10 5905 0400 |0010: invoke-virtual {v4}, Lorg/jsl/wfwt/SwitchButton;.getWidth:()I // method@0559 │ │ +01c426: 0a00 |0013: move-result v0 │ │ +01c428: 6e10 5605 0400 |0014: invoke-virtual {v4}, Lorg/jsl/wfwt/SwitchButton;.getHeight:()I // method@0556 │ │ +01c42e: 0a01 |0017: move-result v1 │ │ +01c430: db00 0002 |0018: div-int/lit8 v0, v0, #int 2 // #02 │ │ +01c434: 8200 |001a: int-to-float v0, v0 │ │ +01c436: db02 0102 |001b: div-int/lit8 v2, v1, #int 2 // #02 │ │ +01c43a: 8222 |001d: int-to-float v2, v2 │ │ +01c43c: db01 0108 |001e: div-int/lit8 v1, v1, #int 8 // #08 │ │ +01c440: 8211 |0020: int-to-float v1, v1 │ │ +01c442: 5443 c602 |0021: iget-object v3, v4, Lorg/jsl/wfwt/SwitchButton;.m_paint:Landroid/graphics/Paint; // field@02c6 │ │ +01c446: 6e53 3200 0512 |0023: invoke-virtual {v5, v0, v2, v1, v3}, Landroid/graphics/Canvas;.drawCircle:(FFFLandroid/graphics/Paint;)V // method@0032 │ │ +01c44c: 5440 c702 |0026: iget-object v0, v4, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ +01c450: 5441 c602 |0028: iget-object v1, v4, Lorg/jsl/wfwt/SwitchButton;.m_paint:Landroid/graphics/Paint; // field@02c6 │ │ +01c454: 6e30 3300 0501 |002a: invoke-virtual {v5, v0, v1}, Landroid/graphics/Canvas;.drawPath:(Landroid/graphics/Path;Landroid/graphics/Paint;)V // method@0033 │ │ +01c45a: 5440 c802 |002d: iget-object v0, v4, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ +01c45e: 5441 c602 |002f: iget-object v1, v4, Lorg/jsl/wfwt/SwitchButton;.m_paint:Landroid/graphics/Paint; // field@02c6 │ │ +01c462: 6e30 3300 0501 |0031: invoke-virtual {v5, v0, v1}, Landroid/graphics/Canvas;.drawPath:(Landroid/graphics/Path;Landroid/graphics/Paint;)V // method@0033 │ │ +01c468: 0e00 |0034: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=141 │ │ 0x0003 line=143 │ │ 0x0010 line=145 │ │ 0x0014 line=146 │ │ 0x0018 line=147 │ │ @@ -16168,115 +16168,115 @@ │ │ type : '(IIII)V' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 21 │ │ ins : 5 │ │ outs : 3 │ │ insns size : 202 16-bit code units │ │ -01c468: |[01c468] org.jsl.wfwt.SwitchButton.onSizeChanged:(IIII)V │ │ -01c478: 0800 1000 |0000: move-object/from16 v0, v16 │ │ -01c47c: db01 1102 |0002: div-int/lit8 v1, v17, #int 2 // #02 │ │ -01c480: 8211 |0004: int-to-float v1, v1 │ │ -01c482: db02 1202 |0005: div-int/lit8 v2, v18, #int 2 // #02 │ │ -01c486: 8222 |0007: int-to-float v2, v2 │ │ -01c488: db03 1208 |0008: div-int/lit8 v3, v18, #int 8 // #08 │ │ -01c48c: 9304 1103 |000a: div-int v4, v17, v3 │ │ -01c490: db04 0402 |000c: div-int/lit8 v4, v4, #int 2 // #02 │ │ -01c494: 1305 0e00 |000e: const/16 v5, #int 14 // #e │ │ -01c498: 3554 0900 |0010: if-ge v4, v5, 0019 // +0009 │ │ -01c49c: 1201 |0012: const/4 v1, #int 0 // #0 │ │ -01c49e: 5b01 c702 |0013: iput-object v1, v0, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ -01c4a2: 5b01 c802 |0015: iput-object v1, v0, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ -01c4a6: 2900 b200 |0017: goto/16 00c9 // +00b2 │ │ -01c4aa: 1305 1400 |0019: const/16 v5, #int 20 // #14 │ │ -01c4ae: 3754 0400 |001b: if-le v4, v5, 001f // +0004 │ │ -01c4b2: 1304 1400 |001d: const/16 v4, #int 20 // #14 │ │ -01c4b6: 2205 1e00 |001f: new-instance v5, Landroid/graphics/Path; // type@001e │ │ -01c4ba: 7010 3700 0500 |0021: invoke-direct {v5}, Landroid/graphics/Path;.:()V // method@0037 │ │ -01c4c0: 5b05 c702 |0024: iput-object v5, v0, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ -01c4c4: da06 0302 |0026: mul-int/lit8 v6, v3, #int 2 // #02 │ │ -01c4c8: 8266 |0028: int-to-float v6, v6 │ │ -01c4ca: a707 0106 |0029: sub-float v7, v1, v6 │ │ -01c4ce: 8238 |002b: int-to-float v8, v3 │ │ -01c4d0: a709 0208 |002c: sub-float v9, v2, v8 │ │ -01c4d4: 6e30 3a00 7509 |002e: invoke-virtual {v5, v7, v9}, Landroid/graphics/Path;.moveTo:(FF)V // method@003a │ │ -01c4da: 5405 c702 |0031: iget-object v5, v0, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ -01c4de: d80a 04fc |0033: add-int/lit8 v10, v4, #int -4 // #fc │ │ -01c4e2: 920a 0a03 |0035: mul-int v10, v10, v3 │ │ -01c4e6: 82aa |0037: int-to-float v10, v10 │ │ -01c4e8: a70b 010a |0038: sub-float v11, v1, v10 │ │ -01c4ec: 6e30 3900 b509 |003a: invoke-virtual {v5, v11, v9}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ -01c4f2: 5405 c702 |003d: iget-object v5, v0, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ -01c4f6: a60c 0206 |003f: add-float v12, v2, v6 │ │ -01c4fa: 6e30 3900 b50c |0041: invoke-virtual {v5, v11, v12}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ -01c500: 5405 c702 |0044: iget-object v5, v0, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ -01c504: d80b 04fe |0046: add-int/lit8 v11, v4, #int -2 // #fe │ │ -01c508: 920b 0b03 |0048: mul-int v11, v11, v3 │ │ -01c50c: 82bb |004a: int-to-float v11, v11 │ │ -01c50e: a70d 010b |004b: sub-float v13, v1, v11 │ │ -01c512: 6e30 3900 d50c |004d: invoke-virtual {v5, v13, v12}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ -01c518: 5405 c702 |0050: iget-object v5, v0, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ -01c51c: d80d 04fb |0052: add-int/lit8 v13, v4, #int -5 // #fb │ │ -01c520: 920d 0d03 |0054: mul-int v13, v13, v3 │ │ -01c524: 82dd |0056: int-to-float v13, v13 │ │ -01c526: a70e 010d |0057: sub-float v14, v1, v13 │ │ -01c52a: da0f 0304 |0059: mul-int/lit8 v15, v3, #int 4 // #04 │ │ -01c52e: 82ff |005b: int-to-float v15, v15 │ │ -01c530: c62f |005c: add-float/2addr v15, v2 │ │ -01c532: 6e30 3900 e50f |005d: invoke-virtual {v5, v14, v15}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ -01c538: 5405 c702 |0060: iget-object v5, v0, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ -01c53c: d80e 04f8 |0062: add-int/lit8 v14, v4, #int -8 // #f8 │ │ -01c540: 920e 0e03 |0064: mul-int v14, v14, v3 │ │ -01c544: 82ee |0066: int-to-float v14, v14 │ │ -01c546: 0211 0f00 |0067: move/from16 v17, v15 │ │ -01c54a: a70f 010e |0069: sub-float v15, v1, v14 │ │ -01c54e: 6e30 3900 f50c |006b: invoke-virtual {v5, v15, v12}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ -01c554: 5405 c702 |006e: iget-object v5, v0, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ -01c558: d804 04fa |0070: add-int/lit8 v4, v4, #int -6 // #fa │ │ -01c55c: 9203 0304 |0072: mul-int v3, v3, v4 │ │ -01c560: 8233 |0074: int-to-float v3, v3 │ │ -01c562: a704 0103 |0075: sub-float v4, v1, v3 │ │ -01c566: 6e30 3900 450c |0077: invoke-virtual {v5, v4, v12}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ -01c56c: 5405 c702 |007a: iget-object v5, v0, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ -01c570: c682 |007c: add-float/2addr v2, v8 │ │ -01c572: 6e30 3900 4502 |007d: invoke-virtual {v5, v4, v2}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ -01c578: 5404 c702 |0080: iget-object v4, v0, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ -01c57c: 6e30 3900 7402 |0082: invoke-virtual {v4, v7, v2}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ -01c582: 5404 c702 |0085: iget-object v4, v0, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ -01c586: 6e10 3800 0400 |0087: invoke-virtual {v4}, Landroid/graphics/Path;.close:()V // method@0038 │ │ -01c58c: 2204 1e00 |008a: new-instance v4, Landroid/graphics/Path; // type@001e │ │ -01c590: 7010 3700 0400 |008c: invoke-direct {v4}, Landroid/graphics/Path;.:()V // method@0037 │ │ -01c596: 5b04 c802 |008f: iput-object v4, v0, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ -01c59a: c616 |0091: add-float/2addr v6, v1 │ │ -01c59c: 6e30 3a00 6409 |0092: invoke-virtual {v4, v6, v9}, Landroid/graphics/Path;.moveTo:(FF)V // method@003a │ │ -01c5a2: 5404 c802 |0095: iget-object v4, v0, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ -01c5a6: c61a |0097: add-float/2addr v10, v1 │ │ -01c5a8: 6e30 3900 a409 |0098: invoke-virtual {v4, v10, v9}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ -01c5ae: 5404 c802 |009b: iget-object v4, v0, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ -01c5b2: 6e30 3900 a40c |009d: invoke-virtual {v4, v10, v12}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ -01c5b8: 5404 c802 |00a0: iget-object v4, v0, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ -01c5bc: c61b |00a2: add-float/2addr v11, v1 │ │ -01c5be: 6e30 3900 b40c |00a3: invoke-virtual {v4, v11, v12}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ -01c5c4: 5404 c802 |00a6: iget-object v4, v0, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ -01c5c8: c61d |00a8: add-float/2addr v13, v1 │ │ -01c5ca: 0205 1100 |00a9: move/from16 v5, v17 │ │ -01c5ce: 6e30 3900 d405 |00ab: invoke-virtual {v4, v13, v5}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ -01c5d4: 5404 c802 |00ae: iget-object v4, v0, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ -01c5d8: c61e |00b0: add-float/2addr v14, v1 │ │ -01c5da: 6e30 3900 e40c |00b1: invoke-virtual {v4, v14, v12}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ -01c5e0: 5404 c802 |00b4: iget-object v4, v0, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ -01c5e4: c631 |00b6: add-float/2addr v1, v3 │ │ -01c5e6: 6e30 3900 140c |00b7: invoke-virtual {v4, v1, v12}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ -01c5ec: 5403 c802 |00ba: iget-object v3, v0, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ -01c5f0: 6e30 3900 1302 |00bc: invoke-virtual {v3, v1, v2}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ -01c5f6: 5401 c802 |00bf: iget-object v1, v0, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ -01c5fa: 6e30 3900 6102 |00c1: invoke-virtual {v1, v6, v2}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ -01c600: 5401 c802 |00c4: iget-object v1, v0, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ -01c604: 6e10 3800 0100 |00c6: invoke-virtual {v1}, Landroid/graphics/Path;.close:()V // method@0038 │ │ -01c60a: 0e00 |00c9: return-void │ │ +01c46c: |[01c46c] org.jsl.wfwt.SwitchButton.onSizeChanged:(IIII)V │ │ +01c47c: 0800 1000 |0000: move-object/from16 v0, v16 │ │ +01c480: db01 1102 |0002: div-int/lit8 v1, v17, #int 2 // #02 │ │ +01c484: 8211 |0004: int-to-float v1, v1 │ │ +01c486: db02 1202 |0005: div-int/lit8 v2, v18, #int 2 // #02 │ │ +01c48a: 8222 |0007: int-to-float v2, v2 │ │ +01c48c: db03 1208 |0008: div-int/lit8 v3, v18, #int 8 // #08 │ │ +01c490: 9304 1103 |000a: div-int v4, v17, v3 │ │ +01c494: db04 0402 |000c: div-int/lit8 v4, v4, #int 2 // #02 │ │ +01c498: 1305 0e00 |000e: const/16 v5, #int 14 // #e │ │ +01c49c: 3554 0900 |0010: if-ge v4, v5, 0019 // +0009 │ │ +01c4a0: 1201 |0012: const/4 v1, #int 0 // #0 │ │ +01c4a2: 5b01 c702 |0013: iput-object v1, v0, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ +01c4a6: 5b01 c802 |0015: iput-object v1, v0, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ +01c4aa: 2900 b200 |0017: goto/16 00c9 // +00b2 │ │ +01c4ae: 1305 1400 |0019: const/16 v5, #int 20 // #14 │ │ +01c4b2: 3754 0400 |001b: if-le v4, v5, 001f // +0004 │ │ +01c4b6: 1304 1400 |001d: const/16 v4, #int 20 // #14 │ │ +01c4ba: 2205 1e00 |001f: new-instance v5, Landroid/graphics/Path; // type@001e │ │ +01c4be: 7010 3700 0500 |0021: invoke-direct {v5}, Landroid/graphics/Path;.:()V // method@0037 │ │ +01c4c4: 5b05 c702 |0024: iput-object v5, v0, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ +01c4c8: da06 0302 |0026: mul-int/lit8 v6, v3, #int 2 // #02 │ │ +01c4cc: 8266 |0028: int-to-float v6, v6 │ │ +01c4ce: a707 0106 |0029: sub-float v7, v1, v6 │ │ +01c4d2: 8238 |002b: int-to-float v8, v3 │ │ +01c4d4: a709 0208 |002c: sub-float v9, v2, v8 │ │ +01c4d8: 6e30 3a00 7509 |002e: invoke-virtual {v5, v7, v9}, Landroid/graphics/Path;.moveTo:(FF)V // method@003a │ │ +01c4de: 5405 c702 |0031: iget-object v5, v0, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ +01c4e2: d80a 04fc |0033: add-int/lit8 v10, v4, #int -4 // #fc │ │ +01c4e6: 920a 0a03 |0035: mul-int v10, v10, v3 │ │ +01c4ea: 82aa |0037: int-to-float v10, v10 │ │ +01c4ec: a70b 010a |0038: sub-float v11, v1, v10 │ │ +01c4f0: 6e30 3900 b509 |003a: invoke-virtual {v5, v11, v9}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ +01c4f6: 5405 c702 |003d: iget-object v5, v0, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ +01c4fa: a60c 0206 |003f: add-float v12, v2, v6 │ │ +01c4fe: 6e30 3900 b50c |0041: invoke-virtual {v5, v11, v12}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ +01c504: 5405 c702 |0044: iget-object v5, v0, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ +01c508: d80b 04fe |0046: add-int/lit8 v11, v4, #int -2 // #fe │ │ +01c50c: 920b 0b03 |0048: mul-int v11, v11, v3 │ │ +01c510: 82bb |004a: int-to-float v11, v11 │ │ +01c512: a70d 010b |004b: sub-float v13, v1, v11 │ │ +01c516: 6e30 3900 d50c |004d: invoke-virtual {v5, v13, v12}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ +01c51c: 5405 c702 |0050: iget-object v5, v0, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ +01c520: d80d 04fb |0052: add-int/lit8 v13, v4, #int -5 // #fb │ │ +01c524: 920d 0d03 |0054: mul-int v13, v13, v3 │ │ +01c528: 82dd |0056: int-to-float v13, v13 │ │ +01c52a: a70e 010d |0057: sub-float v14, v1, v13 │ │ +01c52e: da0f 0304 |0059: mul-int/lit8 v15, v3, #int 4 // #04 │ │ +01c532: 82ff |005b: int-to-float v15, v15 │ │ +01c534: c62f |005c: add-float/2addr v15, v2 │ │ +01c536: 6e30 3900 e50f |005d: invoke-virtual {v5, v14, v15}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ +01c53c: 5405 c702 |0060: iget-object v5, v0, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ +01c540: d80e 04f8 |0062: add-int/lit8 v14, v4, #int -8 // #f8 │ │ +01c544: 920e 0e03 |0064: mul-int v14, v14, v3 │ │ +01c548: 82ee |0066: int-to-float v14, v14 │ │ +01c54a: 0211 0f00 |0067: move/from16 v17, v15 │ │ +01c54e: a70f 010e |0069: sub-float v15, v1, v14 │ │ +01c552: 6e30 3900 f50c |006b: invoke-virtual {v5, v15, v12}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ +01c558: 5405 c702 |006e: iget-object v5, v0, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ +01c55c: d804 04fa |0070: add-int/lit8 v4, v4, #int -6 // #fa │ │ +01c560: 9203 0304 |0072: mul-int v3, v3, v4 │ │ +01c564: 8233 |0074: int-to-float v3, v3 │ │ +01c566: a704 0103 |0075: sub-float v4, v1, v3 │ │ +01c56a: 6e30 3900 450c |0077: invoke-virtual {v5, v4, v12}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ +01c570: 5405 c702 |007a: iget-object v5, v0, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ +01c574: c682 |007c: add-float/2addr v2, v8 │ │ +01c576: 6e30 3900 4502 |007d: invoke-virtual {v5, v4, v2}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ +01c57c: 5404 c702 |0080: iget-object v4, v0, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ +01c580: 6e30 3900 7402 |0082: invoke-virtual {v4, v7, v2}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ +01c586: 5404 c702 |0085: iget-object v4, v0, Lorg/jsl/wfwt/SwitchButton;.m_pl:Landroid/graphics/Path; // field@02c7 │ │ +01c58a: 6e10 3800 0400 |0087: invoke-virtual {v4}, Landroid/graphics/Path;.close:()V // method@0038 │ │ +01c590: 2204 1e00 |008a: new-instance v4, Landroid/graphics/Path; // type@001e │ │ +01c594: 7010 3700 0400 |008c: invoke-direct {v4}, Landroid/graphics/Path;.:()V // method@0037 │ │ +01c59a: 5b04 c802 |008f: iput-object v4, v0, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ +01c59e: c616 |0091: add-float/2addr v6, v1 │ │ +01c5a0: 6e30 3a00 6409 |0092: invoke-virtual {v4, v6, v9}, Landroid/graphics/Path;.moveTo:(FF)V // method@003a │ │ +01c5a6: 5404 c802 |0095: iget-object v4, v0, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ +01c5aa: c61a |0097: add-float/2addr v10, v1 │ │ +01c5ac: 6e30 3900 a409 |0098: invoke-virtual {v4, v10, v9}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ +01c5b2: 5404 c802 |009b: iget-object v4, v0, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ +01c5b6: 6e30 3900 a40c |009d: invoke-virtual {v4, v10, v12}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ +01c5bc: 5404 c802 |00a0: iget-object v4, v0, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ +01c5c0: c61b |00a2: add-float/2addr v11, v1 │ │ +01c5c2: 6e30 3900 b40c |00a3: invoke-virtual {v4, v11, v12}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ +01c5c8: 5404 c802 |00a6: iget-object v4, v0, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ +01c5cc: c61d |00a8: add-float/2addr v13, v1 │ │ +01c5ce: 0205 1100 |00a9: move/from16 v5, v17 │ │ +01c5d2: 6e30 3900 d405 |00ab: invoke-virtual {v4, v13, v5}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ +01c5d8: 5404 c802 |00ae: iget-object v4, v0, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ +01c5dc: c61e |00b0: add-float/2addr v14, v1 │ │ +01c5de: 6e30 3900 e40c |00b1: invoke-virtual {v4, v14, v12}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ +01c5e4: 5404 c802 |00b4: iget-object v4, v0, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ +01c5e8: c631 |00b6: add-float/2addr v1, v3 │ │ +01c5ea: 6e30 3900 140c |00b7: invoke-virtual {v4, v1, v12}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ +01c5f0: 5403 c802 |00ba: iget-object v3, v0, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ +01c5f4: 6e30 3900 1302 |00bc: invoke-virtual {v3, v1, v2}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ +01c5fa: 5401 c802 |00bf: iget-object v1, v0, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ +01c5fe: 6e30 3900 6102 |00c1: invoke-virtual {v1, v6, v2}, Landroid/graphics/Path;.lineTo:(FF)V // method@0039 │ │ +01c604: 5401 c802 |00c4: iget-object v1, v0, Lorg/jsl/wfwt/SwitchButton;.m_pr:Landroid/graphics/Path; // field@02c8 │ │ +01c608: 6e10 3800 0100 |00c6: invoke-virtual {v1}, Landroid/graphics/Path;.close:()V // method@0038 │ │ +01c60e: 0e00 |00c9: return-void │ │ catches : (none) │ │ positions : │ │ 0x0002 line=97 │ │ 0x0005 line=98 │ │ 0x0008 line=99 │ │ 0x000a line=101 │ │ 0x0013 line=105 │ │ @@ -16315,210 +16315,210 @@ │ │ type : '(Landroid/view/MotionEvent;)Z' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 13 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 383 16-bit code units │ │ -01c008: |[01c008] org.jsl.wfwt.SwitchButton.onTouchEvent:(Landroid/view/MotionEvent;)Z │ │ -01c018: 6e10 6d00 0c00 |0000: invoke-virtual {v12}, Landroid/view/MotionEvent;.getAction:()I // method@006d │ │ -01c01e: 0a00 |0003: move-result v0 │ │ -01c020: 1251 |0004: const/4 v1, #int 5 // #5 │ │ -01c022: 1212 |0005: const/4 v2, #int 1 // #1 │ │ -01c024: 3800 3b01 |0006: if-eqz v0, 0141 // +013b │ │ -01c028: 1243 |0008: const/4 v3, #int 4 // #4 │ │ -01c02a: 1204 |0009: const/4 v4, #int 0 // #0 │ │ -01c02c: 3220 0e01 |000a: if-eq v0, v2, 0118 // +010e │ │ -01c030: 1235 |000c: const/4 v5, #int 3 // #3 │ │ -01c032: 1226 |000d: const/4 v6, #int 2 // #2 │ │ -01c034: 3260 0600 |000e: if-eq v0, v6, 0014 // +0006 │ │ -01c038: 3250 0801 |0010: if-eq v0, v5, 0118 // +0108 │ │ -01c03c: 2900 6801 |0012: goto/16 017a // +0168 │ │ -01c040: 6e10 6e00 0c00 |0014: invoke-virtual {v12}, Landroid/view/MotionEvent;.getX:()F // method@006e │ │ -01c046: 0a00 |0017: move-result v0 │ │ -01c048: 6e10 6f00 0c00 |0018: invoke-virtual {v12}, Landroid/view/MotionEvent;.getY:()F // method@006f │ │ -01c04e: 0a01 |001b: move-result v1 │ │ -01c050: 52b7 cd02 |001c: iget v7, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchX:F // field@02cd │ │ -01c054: a707 0007 |001e: sub-float v7, v0, v7 │ │ -01c058: 52b8 ce02 |0020: iget v8, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchY:F // field@02ce │ │ -01c05c: a708 0108 |0022: sub-float v8, v1, v8 │ │ -01c060: 52b9 ca02 |0024: iget v9, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ -01c064: 3229 a600 |0026: if-eq v9, v2, 00cc // +00a6 │ │ -01c068: 120a |0028: const/4 v10, #int 0 // #0 │ │ -01c06a: 3269 6900 |0029: if-eq v9, v6, 0092 // +0069 │ │ -01c06e: 3259 2d00 |002b: if-eq v9, v5, 0058 // +002d │ │ -01c072: 3239 0400 |002d: if-eq v9, v3, 0031 // +0004 │ │ -01c076: 2900 4b01 |002f: goto/16 017a // +014b │ │ -01c07a: 150c 80bf |0031: const/high16 v12, #int -1082130432 // #bf80 │ │ -01c07e: 2d0c 080c |0033: cmpl-float v12, v8, v12 │ │ -01c082: 3c0c 1e00 |0035: if-gtz v12, 0053 // +001e │ │ -01c086: 7110 af00 0700 |0037: invoke-static {v7}, Ljava/lang/Math;.abs:(F)F // method@00af │ │ -01c08c: 0a0c |003a: move-result v12 │ │ -01c08e: 1503 803f |003b: const/high16 v3, #int 1065353216 // #3f80 │ │ -01c092: 2e0c 0c03 |003d: cmpg-float v12, v12, v3 │ │ -01c096: 3b0c 0300 |003f: if-gez v12, 0042 // +0003 │ │ -01c09a: 2812 |0041: goto 0053 // +0012 │ │ -01c09c: 6e10 5705 0b00 |0042: invoke-virtual {v11}, Lorg/jsl/wfwt/SwitchButton;.getParent:()Landroid/view/ViewParent; // method@0557 │ │ -01c0a2: 0c0c |0045: move-result-object v12 │ │ -01c0a4: 7220 7600 4c00 |0046: invoke-interface {v12, v4}, Landroid/view/ViewParent;.requestDisallowInterceptTouchEvent:(Z)V // method@0076 │ │ -01c0aa: 59b4 ca02 |0049: iput v4, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ -01c0ae: 620c be02 |004b: sget-object v12, Lorg/jsl/wfwt/SwitchButton;.LOG_TAG:Ljava/lang/String; // field@02be │ │ -01c0b2: 1a00 dd02 |004d: const-string v0, "STATE_DRAGGING_DOWN -> STATE_IDLE" // string@02dd │ │ -01c0b6: 7120 6100 0c00 |004f: invoke-static {v12, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -01c0bc: 2805 |0052: goto 0057 // +0005 │ │ -01c0be: 59b0 cd02 |0053: iput v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchX:F // field@02cd │ │ -01c0c2: 59b1 ce02 |0055: iput v1, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchY:F // field@02ce │ │ -01c0c6: 0f02 |0057: return v2 │ │ -01c0c8: 150c 00bf |0058: const/high16 v12, #int -1090519040 // #bf00 │ │ -01c0cc: 2d0c 070c |005a: cmpl-float v12, v7, v12 │ │ -01c0d0: 3d0c 1300 |005c: if-lez v12, 006f // +0013 │ │ -01c0d4: 7110 af00 0700 |005e: invoke-static {v7}, Ljava/lang/Math;.abs:(F)F // method@00af │ │ -01c0da: 0a0c |0061: move-result v12 │ │ -01c0dc: 7110 af00 0800 |0062: invoke-static {v8}, Ljava/lang/Math;.abs:(F)F // method@00af │ │ -01c0e2: 0a05 |0065: move-result v5 │ │ -01c0e4: 2d0c 0c05 |0066: cmpl-float v12, v12, v5 │ │ -01c0e8: 3d0c 0700 |0068: if-lez v12, 006f // +0007 │ │ -01c0ec: 59b0 cd02 |006a: iput v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchX:F // field@02cd │ │ -01c0f0: 59b1 ce02 |006c: iput v1, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchY:F // field@02ce │ │ -01c0f4: 2823 |006e: goto 0091 // +0023 │ │ -01c0f6: 2d0c 080a |006f: cmpl-float v12, v8, v10 │ │ -01c0fa: 3a0c 1000 |0071: if-ltz v12, 0081 // +0010 │ │ -01c0fe: 59b0 cd02 |0073: iput v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchX:F // field@02cd │ │ -01c102: 59b1 ce02 |0075: iput v1, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchY:F // field@02ce │ │ -01c106: 59b3 ca02 |0077: iput v3, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ -01c10a: 620c be02 |0079: sget-object v12, Lorg/jsl/wfwt/SwitchButton;.LOG_TAG:Ljava/lang/String; // field@02be │ │ -01c10e: 1a00 e202 |007b: const-string v0, "STATE_DRAGGING_RIGHT -> STATE_DRAGGING_DOWN" // string@02e2 │ │ -01c112: 7120 6100 0c00 |007d: invoke-static {v12, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -01c118: 2811 |0080: goto 0091 // +0011 │ │ -01c11a: 6e10 5705 0b00 |0081: invoke-virtual {v11}, Lorg/jsl/wfwt/SwitchButton;.getParent:()Landroid/view/ViewParent; // method@0557 │ │ -01c120: 0c0c |0084: move-result-object v12 │ │ -01c122: 7220 7600 4c00 |0085: invoke-interface {v12, v4}, Landroid/view/ViewParent;.requestDisallowInterceptTouchEvent:(Z)V // method@0076 │ │ -01c128: 59b4 ca02 |0088: iput v4, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ -01c12c: 620c be02 |008a: sget-object v12, Lorg/jsl/wfwt/SwitchButton;.LOG_TAG:Ljava/lang/String; // field@02be │ │ -01c130: 1a00 e302 |008c: const-string v0, "STATE_DRAGGING_RIGHT -> STATE_IDLE" // string@02e3 │ │ -01c134: 7120 6100 0c00 |008e: invoke-static {v12, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -01c13a: 0f02 |0091: return v2 │ │ -01c13c: 150c 003f |0092: const/high16 v12, #int 1056964608 // #3f00 │ │ -01c140: 2e0c 070c |0094: cmpg-float v12, v7, v12 │ │ -01c144: 3b0c 1300 |0096: if-gez v12, 00a9 // +0013 │ │ -01c148: 7110 af00 0700 |0098: invoke-static {v7}, Ljava/lang/Math;.abs:(F)F // method@00af │ │ -01c14e: 0a0c |009b: move-result v12 │ │ -01c150: 7110 af00 0800 |009c: invoke-static {v8}, Ljava/lang/Math;.abs:(F)F // method@00af │ │ -01c156: 0a05 |009f: move-result v5 │ │ -01c158: 2d0c 0c05 |00a0: cmpl-float v12, v12, v5 │ │ -01c15c: 3d0c 0700 |00a2: if-lez v12, 00a9 // +0007 │ │ -01c160: 59b0 cd02 |00a4: iput v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchX:F // field@02cd │ │ -01c164: 59b1 ce02 |00a6: iput v1, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchY:F // field@02ce │ │ -01c168: 2823 |00a8: goto 00cb // +0023 │ │ -01c16a: 2d0c 080a |00a9: cmpl-float v12, v8, v10 │ │ -01c16e: 3a0c 1000 |00ab: if-ltz v12, 00bb // +0010 │ │ -01c172: 59b0 cd02 |00ad: iput v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchX:F // field@02cd │ │ -01c176: 59b1 ce02 |00af: iput v1, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchY:F // field@02ce │ │ -01c17a: 59b3 ca02 |00b1: iput v3, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ -01c17e: 620c be02 |00b3: sget-object v12, Lorg/jsl/wfwt/SwitchButton;.LOG_TAG:Ljava/lang/String; // field@02be │ │ -01c182: 1a00 df02 |00b5: const-string v0, "STATE_DRAGGING_LEFT -> STATE_DRAGGING_DOWN" // string@02df │ │ -01c186: 7120 6100 0c00 |00b7: invoke-static {v12, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -01c18c: 2811 |00ba: goto 00cb // +0011 │ │ -01c18e: 6e10 5705 0b00 |00bb: invoke-virtual {v11}, Lorg/jsl/wfwt/SwitchButton;.getParent:()Landroid/view/ViewParent; // method@0557 │ │ -01c194: 0c0c |00be: move-result-object v12 │ │ -01c196: 7220 7600 4c00 |00bf: invoke-interface {v12, v4}, Landroid/view/ViewParent;.requestDisallowInterceptTouchEvent:(Z)V // method@0076 │ │ -01c19c: 59b4 ca02 |00c2: iput v4, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ -01c1a0: 620c be02 |00c4: sget-object v12, Lorg/jsl/wfwt/SwitchButton;.LOG_TAG:Ljava/lang/String; // field@02be │ │ -01c1a4: 1a00 e002 |00c6: const-string v0, "STATE_DRAGGING_LEFT -> STATE_IDLE" // string@02e0 │ │ -01c1a8: 7120 6100 0c00 |00c8: invoke-static {v12, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -01c1ae: 0f02 |00cb: return v2 │ │ -01c1b0: 7110 af00 0700 |00cc: invoke-static {v7}, Ljava/lang/Math;.abs:(F)F // method@00af │ │ -01c1b6: 0a0c |00cf: move-result v12 │ │ -01c1b8: 52b3 cc02 |00d0: iget v3, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchSlop:I // field@02cc │ │ -01c1bc: 8233 |00d2: int-to-float v3, v3 │ │ -01c1be: 2d0c 0c03 |00d3: cmpl-float v12, v12, v3 │ │ -01c1c2: 3c0c 0d00 |00d5: if-gtz v12, 00e2 // +000d │ │ -01c1c6: 7110 af00 0800 |00d7: invoke-static {v8}, Ljava/lang/Math;.abs:(F)F // method@00af │ │ -01c1cc: 0a0c |00da: move-result v12 │ │ -01c1ce: 52b3 cc02 |00db: iget v3, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchSlop:I // field@02cc │ │ -01c1d2: 8233 |00dd: int-to-float v3, v3 │ │ -01c1d4: 2d0c 0c03 |00de: cmpl-float v12, v12, v3 │ │ -01c1d8: 3d0c 3700 |00e0: if-lez v12, 0117 // +0037 │ │ -01c1dc: 7110 af00 0700 |00e2: invoke-static {v7}, Ljava/lang/Math;.abs:(F)F // method@00af │ │ -01c1e2: 0a0c |00e5: move-result v12 │ │ -01c1e4: 7110 af00 0800 |00e6: invoke-static {v8}, Ljava/lang/Math;.abs:(F)F // method@00af │ │ -01c1ea: 0a03 |00e9: move-result v3 │ │ -01c1ec: 2d0c 0c03 |00ea: cmpl-float v12, v12, v3 │ │ -01c1f0: 3d0c 2b00 |00ec: if-lez v12, 0117 // +002b │ │ -01c1f4: 8973 |00ee: float-to-double v3, v7 │ │ -01c1f6: 1607 0000 |00ef: const-wide/16 v7, #int 0 // #0 │ │ -01c1fa: 2f0c 0307 |00f1: cmpl-double v12, v3, v7 │ │ -01c1fe: 3d0c 0c00 |00f3: if-lez v12, 00ff // +000c │ │ -01c202: 59b5 ca02 |00f5: iput v5, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ -01c206: 620c be02 |00f7: sget-object v12, Lorg/jsl/wfwt/SwitchButton;.LOG_TAG:Ljava/lang/String; // field@02be │ │ -01c20a: 1a03 db02 |00f9: const-string v3, "STATE_DOWN -> STATE_DRAGGING_RIGHT" // string@02db │ │ -01c20e: 7120 6100 3c00 |00fb: invoke-static {v12, v3}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -01c214: 280e |00fe: goto 010c // +000e │ │ -01c216: 300c 0307 |00ff: cmpg-double v12, v3, v7 │ │ -01c21a: 3b0c 0b00 |0101: if-gez v12, 010c // +000b │ │ -01c21e: 59b6 ca02 |0103: iput v6, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ -01c222: 620c be02 |0105: sget-object v12, Lorg/jsl/wfwt/SwitchButton;.LOG_TAG:Ljava/lang/String; // field@02be │ │ -01c226: 1a03 da02 |0107: const-string v3, "STATE_DOWN -> STATE_DRAGGING_LEFT" // string@02da │ │ -01c22a: 7120 6100 3c00 |0109: invoke-static {v12, v3}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -01c230: 6e10 5705 0b00 |010c: invoke-virtual {v11}, Lorg/jsl/wfwt/SwitchButton;.getParent:()Landroid/view/ViewParent; // method@0557 │ │ -01c236: 0c0c |010f: move-result-object v12 │ │ -01c238: 7220 7600 2c00 |0110: invoke-interface {v12, v2}, Landroid/view/ViewParent;.requestDisallowInterceptTouchEvent:(Z)V // method@0076 │ │ -01c23e: 59b0 cd02 |0113: iput v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchX:F // field@02cd │ │ -01c242: 59b1 ce02 |0115: iput v1, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchY:F // field@02ce │ │ -01c246: 0f02 |0117: return v2 │ │ -01c248: 52b0 ca02 |0118: iget v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ -01c24c: 3330 0c00 |011a: if-ne v0, v3, 0126 // +000c │ │ -01c250: 59b1 ca02 |011c: iput v1, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ -01c254: 6e10 5705 0b00 |011e: invoke-virtual {v11}, Lorg/jsl/wfwt/SwitchButton;.getParent:()Landroid/view/ViewParent; // method@0557 │ │ -01c25a: 0c00 |0121: move-result-object v0 │ │ -01c25c: 7220 7600 4000 |0122: invoke-interface {v0, v4}, Landroid/view/ViewParent;.requestDisallowInterceptTouchEvent:(Z)V // method@0076 │ │ -01c262: 2855 |0125: goto 017a // +0055 │ │ -01c264: 54b0 cb02 |0126: iget-object v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_stateListener:Lorg/jsl/wfwt/SwitchButton$StateListener; // field@02cb │ │ -01c268: 7220 5005 4000 |0128: invoke-interface {v0, v4}, Lorg/jsl/wfwt/SwitchButton$StateListener;.onStateChanged:(Z)V // method@0550 │ │ -01c26e: 54b0 c502 |012b: iget-object v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_defaultBackground:Landroid/graphics/drawable/Drawable; // field@02c5 │ │ -01c272: 6e20 5e05 0b00 |012d: invoke-virtual {v11, v0}, Lorg/jsl/wfwt/SwitchButton;.setBackground:(Landroid/graphics/drawable/Drawable;)V // method@055e │ │ -01c278: 6e20 6005 4b00 |0130: invoke-virtual {v11, v4}, Lorg/jsl/wfwt/SwitchButton;.setPressed:(Z)V // method@0560 │ │ -01c27e: 52b0 ca02 |0133: iget v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ -01c282: 3800 4500 |0135: if-eqz v0, 017a // +0045 │ │ -01c286: 59b4 ca02 |0137: iput v4, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ -01c28a: 6e10 5705 0b00 |0139: invoke-virtual {v11}, Lorg/jsl/wfwt/SwitchButton;.getParent:()Landroid/view/ViewParent; // method@0557 │ │ -01c290: 0c00 |013c: move-result-object v0 │ │ -01c292: 7220 7600 4000 |013d: invoke-interface {v0, v4}, Landroid/view/ViewParent;.requestDisallowInterceptTouchEvent:(Z)V // method@0076 │ │ -01c298: 283a |0140: goto 017a // +003a │ │ -01c29a: 6e10 5a05 0b00 |0141: invoke-virtual {v11}, Lorg/jsl/wfwt/SwitchButton;.isEnabled:()Z // method@055a │ │ -01c2a0: 0a00 |0144: move-result v0 │ │ -01c2a2: 3800 3500 |0145: if-eqz v0, 017a // +0035 │ │ -01c2a6: 52b0 ca02 |0147: iget v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ -01c2aa: 3900 2000 |0149: if-nez v0, 0169 // +0020 │ │ -01c2ae: 6e20 6005 2b00 |014b: invoke-virtual {v11, v2}, Lorg/jsl/wfwt/SwitchButton;.setPressed:(Z)V // method@0560 │ │ -01c2b4: 54b0 c902 |014e: iget-object v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_pressedBackground:Landroid/graphics/drawable/Drawable; // field@02c9 │ │ -01c2b8: 6e20 5e05 0b00 |0150: invoke-virtual {v11, v0}, Lorg/jsl/wfwt/SwitchButton;.setBackground:(Landroid/graphics/drawable/Drawable;)V // method@055e │ │ -01c2be: 59b2 ca02 |0153: iput v2, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ -01c2c2: 6e10 6e00 0c00 |0155: invoke-virtual {v12}, Landroid/view/MotionEvent;.getX:()F // method@006e │ │ -01c2c8: 0a00 |0158: move-result v0 │ │ -01c2ca: 59b0 cd02 |0159: iput v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchX:F // field@02cd │ │ -01c2ce: 6e10 6f00 0c00 |015b: invoke-virtual {v12}, Landroid/view/MotionEvent;.getY:()F // method@006f │ │ -01c2d4: 0a0c |015e: move-result v12 │ │ -01c2d6: 59bc ce02 |015f: iput v12, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchY:F // field@02ce │ │ -01c2da: 54bc cb02 |0161: iget-object v12, v11, Lorg/jsl/wfwt/SwitchButton;.m_stateListener:Lorg/jsl/wfwt/SwitchButton$StateListener; // field@02cb │ │ -01c2de: 380c 0500 |0163: if-eqz v12, 0168 // +0005 │ │ -01c2e2: 7220 5005 2c00 |0165: invoke-interface {v12, v2}, Lorg/jsl/wfwt/SwitchButton$StateListener;.onStateChanged:(Z)V // method@0550 │ │ -01c2e8: 0f02 |0168: return v2 │ │ -01c2ea: 3310 1100 |0169: if-ne v0, v1, 017a // +0011 │ │ -01c2ee: 59b2 ca02 |016b: iput v2, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ -01c2f2: 6e10 6e00 0c00 |016d: invoke-virtual {v12}, Landroid/view/MotionEvent;.getX:()F // method@006e │ │ -01c2f8: 0a00 |0170: move-result v0 │ │ -01c2fa: 59b0 cd02 |0171: iput v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchX:F // field@02cd │ │ -01c2fe: 6e10 6f00 0c00 |0173: invoke-virtual {v12}, Landroid/view/MotionEvent;.getY:()F // method@006f │ │ -01c304: 0a0c |0176: move-result v12 │ │ -01c306: 59bc ce02 |0177: iput v12, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchY:F // field@02ce │ │ -01c30a: 0f02 |0179: return v2 │ │ -01c30c: 6f20 7b00 cb00 |017a: invoke-super {v11, v12}, Landroid/widget/Button;.onTouchEvent:(Landroid/view/MotionEvent;)Z // method@007b │ │ -01c312: 0a0c |017d: move-result v12 │ │ -01c314: 0f0c |017e: return v12 │ │ +01c00c: |[01c00c] org.jsl.wfwt.SwitchButton.onTouchEvent:(Landroid/view/MotionEvent;)Z │ │ +01c01c: 6e10 6d00 0c00 |0000: invoke-virtual {v12}, Landroid/view/MotionEvent;.getAction:()I // method@006d │ │ +01c022: 0a00 |0003: move-result v0 │ │ +01c024: 1251 |0004: const/4 v1, #int 5 // #5 │ │ +01c026: 1212 |0005: const/4 v2, #int 1 // #1 │ │ +01c028: 3800 3b01 |0006: if-eqz v0, 0141 // +013b │ │ +01c02c: 1243 |0008: const/4 v3, #int 4 // #4 │ │ +01c02e: 1204 |0009: const/4 v4, #int 0 // #0 │ │ +01c030: 3220 0e01 |000a: if-eq v0, v2, 0118 // +010e │ │ +01c034: 1235 |000c: const/4 v5, #int 3 // #3 │ │ +01c036: 1226 |000d: const/4 v6, #int 2 // #2 │ │ +01c038: 3260 0600 |000e: if-eq v0, v6, 0014 // +0006 │ │ +01c03c: 3250 0801 |0010: if-eq v0, v5, 0118 // +0108 │ │ +01c040: 2900 6801 |0012: goto/16 017a // +0168 │ │ +01c044: 6e10 6e00 0c00 |0014: invoke-virtual {v12}, Landroid/view/MotionEvent;.getX:()F // method@006e │ │ +01c04a: 0a00 |0017: move-result v0 │ │ +01c04c: 6e10 6f00 0c00 |0018: invoke-virtual {v12}, Landroid/view/MotionEvent;.getY:()F // method@006f │ │ +01c052: 0a01 |001b: move-result v1 │ │ +01c054: 52b7 cd02 |001c: iget v7, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchX:F // field@02cd │ │ +01c058: a707 0007 |001e: sub-float v7, v0, v7 │ │ +01c05c: 52b8 ce02 |0020: iget v8, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchY:F // field@02ce │ │ +01c060: a708 0108 |0022: sub-float v8, v1, v8 │ │ +01c064: 52b9 ca02 |0024: iget v9, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ +01c068: 3229 a600 |0026: if-eq v9, v2, 00cc // +00a6 │ │ +01c06c: 120a |0028: const/4 v10, #int 0 // #0 │ │ +01c06e: 3269 6900 |0029: if-eq v9, v6, 0092 // +0069 │ │ +01c072: 3259 2d00 |002b: if-eq v9, v5, 0058 // +002d │ │ +01c076: 3239 0400 |002d: if-eq v9, v3, 0031 // +0004 │ │ +01c07a: 2900 4b01 |002f: goto/16 017a // +014b │ │ +01c07e: 150c 80bf |0031: const/high16 v12, #int -1082130432 // #bf80 │ │ +01c082: 2d0c 080c |0033: cmpl-float v12, v8, v12 │ │ +01c086: 3c0c 1e00 |0035: if-gtz v12, 0053 // +001e │ │ +01c08a: 7110 af00 0700 |0037: invoke-static {v7}, Ljava/lang/Math;.abs:(F)F // method@00af │ │ +01c090: 0a0c |003a: move-result v12 │ │ +01c092: 1503 803f |003b: const/high16 v3, #int 1065353216 // #3f80 │ │ +01c096: 2e0c 0c03 |003d: cmpg-float v12, v12, v3 │ │ +01c09a: 3b0c 0300 |003f: if-gez v12, 0042 // +0003 │ │ +01c09e: 2812 |0041: goto 0053 // +0012 │ │ +01c0a0: 6e10 5705 0b00 |0042: invoke-virtual {v11}, Lorg/jsl/wfwt/SwitchButton;.getParent:()Landroid/view/ViewParent; // method@0557 │ │ +01c0a6: 0c0c |0045: move-result-object v12 │ │ +01c0a8: 7220 7600 4c00 |0046: invoke-interface {v12, v4}, Landroid/view/ViewParent;.requestDisallowInterceptTouchEvent:(Z)V // method@0076 │ │ +01c0ae: 59b4 ca02 |0049: iput v4, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ +01c0b2: 620c be02 |004b: sget-object v12, Lorg/jsl/wfwt/SwitchButton;.LOG_TAG:Ljava/lang/String; // field@02be │ │ +01c0b6: 1a00 dd02 |004d: const-string v0, "STATE_DRAGGING_DOWN -> STATE_IDLE" // string@02dd │ │ +01c0ba: 7120 6100 0c00 |004f: invoke-static {v12, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +01c0c0: 2805 |0052: goto 0057 // +0005 │ │ +01c0c2: 59b0 cd02 |0053: iput v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchX:F // field@02cd │ │ +01c0c6: 59b1 ce02 |0055: iput v1, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchY:F // field@02ce │ │ +01c0ca: 0f02 |0057: return v2 │ │ +01c0cc: 150c 00bf |0058: const/high16 v12, #int -1090519040 // #bf00 │ │ +01c0d0: 2d0c 070c |005a: cmpl-float v12, v7, v12 │ │ +01c0d4: 3d0c 1300 |005c: if-lez v12, 006f // +0013 │ │ +01c0d8: 7110 af00 0700 |005e: invoke-static {v7}, Ljava/lang/Math;.abs:(F)F // method@00af │ │ +01c0de: 0a0c |0061: move-result v12 │ │ +01c0e0: 7110 af00 0800 |0062: invoke-static {v8}, Ljava/lang/Math;.abs:(F)F // method@00af │ │ +01c0e6: 0a05 |0065: move-result v5 │ │ +01c0e8: 2d0c 0c05 |0066: cmpl-float v12, v12, v5 │ │ +01c0ec: 3d0c 0700 |0068: if-lez v12, 006f // +0007 │ │ +01c0f0: 59b0 cd02 |006a: iput v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchX:F // field@02cd │ │ +01c0f4: 59b1 ce02 |006c: iput v1, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchY:F // field@02ce │ │ +01c0f8: 2823 |006e: goto 0091 // +0023 │ │ +01c0fa: 2d0c 080a |006f: cmpl-float v12, v8, v10 │ │ +01c0fe: 3a0c 1000 |0071: if-ltz v12, 0081 // +0010 │ │ +01c102: 59b0 cd02 |0073: iput v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchX:F // field@02cd │ │ +01c106: 59b1 ce02 |0075: iput v1, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchY:F // field@02ce │ │ +01c10a: 59b3 ca02 |0077: iput v3, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ +01c10e: 620c be02 |0079: sget-object v12, Lorg/jsl/wfwt/SwitchButton;.LOG_TAG:Ljava/lang/String; // field@02be │ │ +01c112: 1a00 e202 |007b: const-string v0, "STATE_DRAGGING_RIGHT -> STATE_DRAGGING_DOWN" // string@02e2 │ │ +01c116: 7120 6100 0c00 |007d: invoke-static {v12, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +01c11c: 2811 |0080: goto 0091 // +0011 │ │ +01c11e: 6e10 5705 0b00 |0081: invoke-virtual {v11}, Lorg/jsl/wfwt/SwitchButton;.getParent:()Landroid/view/ViewParent; // method@0557 │ │ +01c124: 0c0c |0084: move-result-object v12 │ │ +01c126: 7220 7600 4c00 |0085: invoke-interface {v12, v4}, Landroid/view/ViewParent;.requestDisallowInterceptTouchEvent:(Z)V // method@0076 │ │ +01c12c: 59b4 ca02 |0088: iput v4, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ +01c130: 620c be02 |008a: sget-object v12, Lorg/jsl/wfwt/SwitchButton;.LOG_TAG:Ljava/lang/String; // field@02be │ │ +01c134: 1a00 e302 |008c: const-string v0, "STATE_DRAGGING_RIGHT -> STATE_IDLE" // string@02e3 │ │ +01c138: 7120 6100 0c00 |008e: invoke-static {v12, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +01c13e: 0f02 |0091: return v2 │ │ +01c140: 150c 003f |0092: const/high16 v12, #int 1056964608 // #3f00 │ │ +01c144: 2e0c 070c |0094: cmpg-float v12, v7, v12 │ │ +01c148: 3b0c 1300 |0096: if-gez v12, 00a9 // +0013 │ │ +01c14c: 7110 af00 0700 |0098: invoke-static {v7}, Ljava/lang/Math;.abs:(F)F // method@00af │ │ +01c152: 0a0c |009b: move-result v12 │ │ +01c154: 7110 af00 0800 |009c: invoke-static {v8}, Ljava/lang/Math;.abs:(F)F // method@00af │ │ +01c15a: 0a05 |009f: move-result v5 │ │ +01c15c: 2d0c 0c05 |00a0: cmpl-float v12, v12, v5 │ │ +01c160: 3d0c 0700 |00a2: if-lez v12, 00a9 // +0007 │ │ +01c164: 59b0 cd02 |00a4: iput v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchX:F // field@02cd │ │ +01c168: 59b1 ce02 |00a6: iput v1, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchY:F // field@02ce │ │ +01c16c: 2823 |00a8: goto 00cb // +0023 │ │ +01c16e: 2d0c 080a |00a9: cmpl-float v12, v8, v10 │ │ +01c172: 3a0c 1000 |00ab: if-ltz v12, 00bb // +0010 │ │ +01c176: 59b0 cd02 |00ad: iput v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchX:F // field@02cd │ │ +01c17a: 59b1 ce02 |00af: iput v1, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchY:F // field@02ce │ │ +01c17e: 59b3 ca02 |00b1: iput v3, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ +01c182: 620c be02 |00b3: sget-object v12, Lorg/jsl/wfwt/SwitchButton;.LOG_TAG:Ljava/lang/String; // field@02be │ │ +01c186: 1a00 df02 |00b5: const-string v0, "STATE_DRAGGING_LEFT -> STATE_DRAGGING_DOWN" // string@02df │ │ +01c18a: 7120 6100 0c00 |00b7: invoke-static {v12, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +01c190: 2811 |00ba: goto 00cb // +0011 │ │ +01c192: 6e10 5705 0b00 |00bb: invoke-virtual {v11}, Lorg/jsl/wfwt/SwitchButton;.getParent:()Landroid/view/ViewParent; // method@0557 │ │ +01c198: 0c0c |00be: move-result-object v12 │ │ +01c19a: 7220 7600 4c00 |00bf: invoke-interface {v12, v4}, Landroid/view/ViewParent;.requestDisallowInterceptTouchEvent:(Z)V // method@0076 │ │ +01c1a0: 59b4 ca02 |00c2: iput v4, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ +01c1a4: 620c be02 |00c4: sget-object v12, Lorg/jsl/wfwt/SwitchButton;.LOG_TAG:Ljava/lang/String; // field@02be │ │ +01c1a8: 1a00 e002 |00c6: const-string v0, "STATE_DRAGGING_LEFT -> STATE_IDLE" // string@02e0 │ │ +01c1ac: 7120 6100 0c00 |00c8: invoke-static {v12, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +01c1b2: 0f02 |00cb: return v2 │ │ +01c1b4: 7110 af00 0700 |00cc: invoke-static {v7}, Ljava/lang/Math;.abs:(F)F // method@00af │ │ +01c1ba: 0a0c |00cf: move-result v12 │ │ +01c1bc: 52b3 cc02 |00d0: iget v3, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchSlop:I // field@02cc │ │ +01c1c0: 8233 |00d2: int-to-float v3, v3 │ │ +01c1c2: 2d0c 0c03 |00d3: cmpl-float v12, v12, v3 │ │ +01c1c6: 3c0c 0d00 |00d5: if-gtz v12, 00e2 // +000d │ │ +01c1ca: 7110 af00 0800 |00d7: invoke-static {v8}, Ljava/lang/Math;.abs:(F)F // method@00af │ │ +01c1d0: 0a0c |00da: move-result v12 │ │ +01c1d2: 52b3 cc02 |00db: iget v3, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchSlop:I // field@02cc │ │ +01c1d6: 8233 |00dd: int-to-float v3, v3 │ │ +01c1d8: 2d0c 0c03 |00de: cmpl-float v12, v12, v3 │ │ +01c1dc: 3d0c 3700 |00e0: if-lez v12, 0117 // +0037 │ │ +01c1e0: 7110 af00 0700 |00e2: invoke-static {v7}, Ljava/lang/Math;.abs:(F)F // method@00af │ │ +01c1e6: 0a0c |00e5: move-result v12 │ │ +01c1e8: 7110 af00 0800 |00e6: invoke-static {v8}, Ljava/lang/Math;.abs:(F)F // method@00af │ │ +01c1ee: 0a03 |00e9: move-result v3 │ │ +01c1f0: 2d0c 0c03 |00ea: cmpl-float v12, v12, v3 │ │ +01c1f4: 3d0c 2b00 |00ec: if-lez v12, 0117 // +002b │ │ +01c1f8: 8973 |00ee: float-to-double v3, v7 │ │ +01c1fa: 1607 0000 |00ef: const-wide/16 v7, #int 0 // #0 │ │ +01c1fe: 2f0c 0307 |00f1: cmpl-double v12, v3, v7 │ │ +01c202: 3d0c 0c00 |00f3: if-lez v12, 00ff // +000c │ │ +01c206: 59b5 ca02 |00f5: iput v5, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ +01c20a: 620c be02 |00f7: sget-object v12, Lorg/jsl/wfwt/SwitchButton;.LOG_TAG:Ljava/lang/String; // field@02be │ │ +01c20e: 1a03 db02 |00f9: const-string v3, "STATE_DOWN -> STATE_DRAGGING_RIGHT" // string@02db │ │ +01c212: 7120 6100 3c00 |00fb: invoke-static {v12, v3}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +01c218: 280e |00fe: goto 010c // +000e │ │ +01c21a: 300c 0307 |00ff: cmpg-double v12, v3, v7 │ │ +01c21e: 3b0c 0b00 |0101: if-gez v12, 010c // +000b │ │ +01c222: 59b6 ca02 |0103: iput v6, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ +01c226: 620c be02 |0105: sget-object v12, Lorg/jsl/wfwt/SwitchButton;.LOG_TAG:Ljava/lang/String; // field@02be │ │ +01c22a: 1a03 da02 |0107: const-string v3, "STATE_DOWN -> STATE_DRAGGING_LEFT" // string@02da │ │ +01c22e: 7120 6100 3c00 |0109: invoke-static {v12, v3}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +01c234: 6e10 5705 0b00 |010c: invoke-virtual {v11}, Lorg/jsl/wfwt/SwitchButton;.getParent:()Landroid/view/ViewParent; // method@0557 │ │ +01c23a: 0c0c |010f: move-result-object v12 │ │ +01c23c: 7220 7600 2c00 |0110: invoke-interface {v12, v2}, Landroid/view/ViewParent;.requestDisallowInterceptTouchEvent:(Z)V // method@0076 │ │ +01c242: 59b0 cd02 |0113: iput v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchX:F // field@02cd │ │ +01c246: 59b1 ce02 |0115: iput v1, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchY:F // field@02ce │ │ +01c24a: 0f02 |0117: return v2 │ │ +01c24c: 52b0 ca02 |0118: iget v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ +01c250: 3330 0c00 |011a: if-ne v0, v3, 0126 // +000c │ │ +01c254: 59b1 ca02 |011c: iput v1, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ +01c258: 6e10 5705 0b00 |011e: invoke-virtual {v11}, Lorg/jsl/wfwt/SwitchButton;.getParent:()Landroid/view/ViewParent; // method@0557 │ │ +01c25e: 0c00 |0121: move-result-object v0 │ │ +01c260: 7220 7600 4000 |0122: invoke-interface {v0, v4}, Landroid/view/ViewParent;.requestDisallowInterceptTouchEvent:(Z)V // method@0076 │ │ +01c266: 2855 |0125: goto 017a // +0055 │ │ +01c268: 54b0 cb02 |0126: iget-object v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_stateListener:Lorg/jsl/wfwt/SwitchButton$StateListener; // field@02cb │ │ +01c26c: 7220 5005 4000 |0128: invoke-interface {v0, v4}, Lorg/jsl/wfwt/SwitchButton$StateListener;.onStateChanged:(Z)V // method@0550 │ │ +01c272: 54b0 c502 |012b: iget-object v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_defaultBackground:Landroid/graphics/drawable/Drawable; // field@02c5 │ │ +01c276: 6e20 5e05 0b00 |012d: invoke-virtual {v11, v0}, Lorg/jsl/wfwt/SwitchButton;.setBackground:(Landroid/graphics/drawable/Drawable;)V // method@055e │ │ +01c27c: 6e20 6005 4b00 |0130: invoke-virtual {v11, v4}, Lorg/jsl/wfwt/SwitchButton;.setPressed:(Z)V // method@0560 │ │ +01c282: 52b0 ca02 |0133: iget v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ +01c286: 3800 4500 |0135: if-eqz v0, 017a // +0045 │ │ +01c28a: 59b4 ca02 |0137: iput v4, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ +01c28e: 6e10 5705 0b00 |0139: invoke-virtual {v11}, Lorg/jsl/wfwt/SwitchButton;.getParent:()Landroid/view/ViewParent; // method@0557 │ │ +01c294: 0c00 |013c: move-result-object v0 │ │ +01c296: 7220 7600 4000 |013d: invoke-interface {v0, v4}, Landroid/view/ViewParent;.requestDisallowInterceptTouchEvent:(Z)V // method@0076 │ │ +01c29c: 283a |0140: goto 017a // +003a │ │ +01c29e: 6e10 5a05 0b00 |0141: invoke-virtual {v11}, Lorg/jsl/wfwt/SwitchButton;.isEnabled:()Z // method@055a │ │ +01c2a4: 0a00 |0144: move-result v0 │ │ +01c2a6: 3800 3500 |0145: if-eqz v0, 017a // +0035 │ │ +01c2aa: 52b0 ca02 |0147: iget v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ +01c2ae: 3900 2000 |0149: if-nez v0, 0169 // +0020 │ │ +01c2b2: 6e20 6005 2b00 |014b: invoke-virtual {v11, v2}, Lorg/jsl/wfwt/SwitchButton;.setPressed:(Z)V // method@0560 │ │ +01c2b8: 54b0 c902 |014e: iget-object v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_pressedBackground:Landroid/graphics/drawable/Drawable; // field@02c9 │ │ +01c2bc: 6e20 5e05 0b00 |0150: invoke-virtual {v11, v0}, Lorg/jsl/wfwt/SwitchButton;.setBackground:(Landroid/graphics/drawable/Drawable;)V // method@055e │ │ +01c2c2: 59b2 ca02 |0153: iput v2, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ +01c2c6: 6e10 6e00 0c00 |0155: invoke-virtual {v12}, Landroid/view/MotionEvent;.getX:()F // method@006e │ │ +01c2cc: 0a00 |0158: move-result v0 │ │ +01c2ce: 59b0 cd02 |0159: iput v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchX:F // field@02cd │ │ +01c2d2: 6e10 6f00 0c00 |015b: invoke-virtual {v12}, Landroid/view/MotionEvent;.getY:()F // method@006f │ │ +01c2d8: 0a0c |015e: move-result v12 │ │ +01c2da: 59bc ce02 |015f: iput v12, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchY:F // field@02ce │ │ +01c2de: 54bc cb02 |0161: iget-object v12, v11, Lorg/jsl/wfwt/SwitchButton;.m_stateListener:Lorg/jsl/wfwt/SwitchButton$StateListener; // field@02cb │ │ +01c2e2: 380c 0500 |0163: if-eqz v12, 0168 // +0005 │ │ +01c2e6: 7220 5005 2c00 |0165: invoke-interface {v12, v2}, Lorg/jsl/wfwt/SwitchButton$StateListener;.onStateChanged:(Z)V // method@0550 │ │ +01c2ec: 0f02 |0168: return v2 │ │ +01c2ee: 3310 1100 |0169: if-ne v0, v1, 017a // +0011 │ │ +01c2f2: 59b2 ca02 |016b: iput v2, v11, Lorg/jsl/wfwt/SwitchButton;.m_state:I // field@02ca │ │ +01c2f6: 6e10 6e00 0c00 |016d: invoke-virtual {v12}, Landroid/view/MotionEvent;.getX:()F // method@006e │ │ +01c2fc: 0a00 |0170: move-result v0 │ │ +01c2fe: 59b0 cd02 |0171: iput v0, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchX:F // field@02cd │ │ +01c302: 6e10 6f00 0c00 |0173: invoke-virtual {v12}, Landroid/view/MotionEvent;.getY:()F // method@006f │ │ +01c308: 0a0c |0176: move-result v12 │ │ +01c30a: 59bc ce02 |0177: iput v12, v11, Lorg/jsl/wfwt/SwitchButton;.m_touchY:F // field@02ce │ │ +01c30e: 0f02 |0179: return v2 │ │ +01c310: 6f20 7b00 cb00 |017a: invoke-super {v11, v12}, Landroid/widget/Button;.onTouchEvent:(Landroid/view/MotionEvent;)Z // method@007b │ │ +01c316: 0a0c |017d: move-result v12 │ │ +01c318: 0f0c |017e: return v12 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=155 │ │ 0x0014 line=189 │ │ 0x0018 line=190 │ │ 0x001c line=191 │ │ 0x0020 line=192 │ │ @@ -16590,17 +16590,17 @@ │ │ type : '(Lorg/jsl/wfwt/SwitchButton$StateListener;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01c60c: |[01c60c] org.jsl.wfwt.SwitchButton.setStateListener:(Lorg/jsl/wfwt/SwitchButton$StateListener;)V │ │ -01c61c: 5b01 cb02 |0000: iput-object v1, v0, Lorg/jsl/wfwt/SwitchButton;.m_stateListener:Lorg/jsl/wfwt/SwitchButton$StateListener; // field@02cb │ │ -01c620: 0e00 |0002: return-void │ │ +01c610: |[01c610] org.jsl.wfwt.SwitchButton.setStateListener:(Lorg/jsl/wfwt/SwitchButton$StateListener;)V │ │ +01c620: 5b01 cb02 |0000: iput-object v1, v0, Lorg/jsl/wfwt/SwitchButton;.m_stateListener:Lorg/jsl/wfwt/SwitchButton$StateListener; // field@02cb │ │ +01c624: 0e00 |0002: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=92 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 this Lorg/jsl/wfwt/SwitchButton; │ │ 0x0000 - 0x0003 reg=1 (null) Lorg/jsl/wfwt/SwitchButton$StateListener; │ │ │ │ @@ -16640,18 +16640,18 @@ │ │ type : '(I)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -01c68c: |[01c68c] org.jsl.wfwt.WAV$DataSubChunk.:(I)V │ │ -01c69c: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01c6a2: 5901 cf02 |0003: iput v1, v0, Lorg/jsl/wfwt/WAV$DataSubChunk;.size:I // field@02cf │ │ -01c6a6: 0e00 |0005: return-void │ │ +01c690: |[01c690] org.jsl.wfwt.WAV$DataSubChunk.:(I)V │ │ +01c6a0: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01c6a6: 5901 cf02 |0003: iput v1, v0, Lorg/jsl/wfwt/WAV$DataSubChunk;.size:I // field@02cf │ │ +01c6aa: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=121 │ │ 0x0003 line=122 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/jsl/wfwt/WAV$DataSubChunk; │ │ 0x0000 - 0x0006 reg=1 (null) I │ │ @@ -16661,36 +16661,36 @@ │ │ type : '(Ljava/nio/ByteBuffer;)Lorg/jsl/wfwt/WAV$DataSubChunk;' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 43 16-bit code units │ │ -01c624: |[01c624] org.jsl.wfwt.WAV$DataSubChunk.read:(Ljava/nio/ByteBuffer;)Lorg/jsl/wfwt/WAV$DataSubChunk; │ │ -01c634: 6e10 1b01 0200 |0000: invoke-virtual {v2}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ -01c63a: 0a00 |0003: move-result v0 │ │ -01c63c: 1301 0800 |0004: const/16 v1, #int 8 // #8 │ │ -01c640: 3410 1d00 |0006: if-lt v0, v1, 0023 // +001d │ │ -01c644: 6e10 0001 0200 |0008: invoke-virtual {v2}, Ljava/nio/ByteBuffer;.getInt:()I // method@0100 │ │ -01c64a: 0a00 |000b: move-result v0 │ │ -01c64c: 1401 6461 7461 |000c: const v1, #float 2.81751e+20 // #61746164 │ │ -01c652: 3310 0c00 |000f: if-ne v0, v1, 001b // +000c │ │ -01c656: 6e10 0001 0200 |0011: invoke-virtual {v2}, Ljava/nio/ByteBuffer;.getInt:()I // method@0100 │ │ -01c65c: 0a02 |0014: move-result v2 │ │ -01c65e: 2200 4901 |0015: new-instance v0, Lorg/jsl/wfwt/WAV$DataSubChunk; // type@0149 │ │ -01c662: 7020 6205 2000 |0017: invoke-direct {v0, v2}, Lorg/jsl/wfwt/WAV$DataSubChunk;.:(I)V // method@0562 │ │ -01c668: 1100 |001a: return-object v0 │ │ -01c66a: 2202 4c01 |001b: new-instance v2, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ -01c66e: 1a00 5504 |001d: const-string v0, "expected 'data' marker in the beginning of the subchunk" // string@0455 │ │ -01c672: 7020 6905 0200 |001f: invoke-direct {v2, v0}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ -01c678: 2702 |0022: throw v2 │ │ -01c67a: 2202 4c01 |0023: new-instance v2, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ -01c67e: 1a00 0805 |0025: const-string v0, "less than 8 bytes" // string@0508 │ │ -01c682: 7020 6905 0200 |0027: invoke-direct {v2, v0}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ -01c688: 2702 |002a: throw v2 │ │ +01c628: |[01c628] org.jsl.wfwt.WAV$DataSubChunk.read:(Ljava/nio/ByteBuffer;)Lorg/jsl/wfwt/WAV$DataSubChunk; │ │ +01c638: 6e10 1b01 0200 |0000: invoke-virtual {v2}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ +01c63e: 0a00 |0003: move-result v0 │ │ +01c640: 1301 0800 |0004: const/16 v1, #int 8 // #8 │ │ +01c644: 3410 1d00 |0006: if-lt v0, v1, 0023 // +001d │ │ +01c648: 6e10 0001 0200 |0008: invoke-virtual {v2}, Ljava/nio/ByteBuffer;.getInt:()I // method@0100 │ │ +01c64e: 0a00 |000b: move-result v0 │ │ +01c650: 1401 6461 7461 |000c: const v1, #float 2.81751e+20 // #61746164 │ │ +01c656: 3310 0c00 |000f: if-ne v0, v1, 001b // +000c │ │ +01c65a: 6e10 0001 0200 |0011: invoke-virtual {v2}, Ljava/nio/ByteBuffer;.getInt:()I // method@0100 │ │ +01c660: 0a02 |0014: move-result v2 │ │ +01c662: 2200 4901 |0015: new-instance v0, Lorg/jsl/wfwt/WAV$DataSubChunk; // type@0149 │ │ +01c666: 7020 6205 2000 |0017: invoke-direct {v0, v2}, Lorg/jsl/wfwt/WAV$DataSubChunk;.:(I)V // method@0562 │ │ +01c66c: 1100 |001a: return-object v0 │ │ +01c66e: 2202 4c01 |001b: new-instance v2, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ +01c672: 1a00 5504 |001d: const-string v0, "expected 'data' marker in the beginning of the subchunk" // string@0455 │ │ +01c676: 7020 6905 0200 |001f: invoke-direct {v2, v0}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ +01c67c: 2702 |0022: throw v2 │ │ +01c67e: 2202 4c01 |0023: new-instance v2, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ +01c682: 1a00 0805 |0025: const-string v0, "less than 8 bytes" // string@0508 │ │ +01c686: 7020 6905 0200 |0027: invoke-direct {v2, v0}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ +01c68c: 2702 |002a: throw v2 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=127 │ │ 0x0008 line=131 │ │ 0x0011 line=134 │ │ 0x0015 line=135 │ │ 0x001b line=133 │ │ @@ -16760,23 +16760,23 @@ │ │ type : '(SSIISS)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 7 │ │ ins : 7 │ │ outs : 1 │ │ insns size : 16 16-bit code units │ │ -01c77c: |[01c77c] org.jsl.wfwt.WAV$FMTSubChunk.:(SSIISS)V │ │ -01c78c: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01c792: 5f01 d102 |0003: iput-short v1, v0, Lorg/jsl/wfwt/WAV$FMTSubChunk;.audioFormat:S // field@02d1 │ │ -01c796: 5f02 d502 |0005: iput-short v2, v0, Lorg/jsl/wfwt/WAV$FMTSubChunk;.numChannels:S // field@02d5 │ │ -01c79a: 5903 d602 |0007: iput v3, v0, Lorg/jsl/wfwt/WAV$FMTSubChunk;.sampleRate:I // field@02d6 │ │ -01c79e: 5904 d402 |0009: iput v4, v0, Lorg/jsl/wfwt/WAV$FMTSubChunk;.byteRate:I // field@02d4 │ │ -01c7a2: 5f05 d302 |000b: iput-short v5, v0, Lorg/jsl/wfwt/WAV$FMTSubChunk;.blockAlign:S // field@02d3 │ │ -01c7a6: 5f06 d202 |000d: iput-short v6, v0, Lorg/jsl/wfwt/WAV$FMTSubChunk;.bitsPerSample:S // field@02d2 │ │ -01c7aa: 0e00 |000f: return-void │ │ +01c780: |[01c780] org.jsl.wfwt.WAV$FMTSubChunk.:(SSIISS)V │ │ +01c790: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01c796: 5f01 d102 |0003: iput-short v1, v0, Lorg/jsl/wfwt/WAV$FMTSubChunk;.audioFormat:S // field@02d1 │ │ +01c79a: 5f02 d502 |0005: iput-short v2, v0, Lorg/jsl/wfwt/WAV$FMTSubChunk;.numChannels:S // field@02d5 │ │ +01c79e: 5903 d602 |0007: iput v3, v0, Lorg/jsl/wfwt/WAV$FMTSubChunk;.sampleRate:I // field@02d6 │ │ +01c7a2: 5904 d402 |0009: iput v4, v0, Lorg/jsl/wfwt/WAV$FMTSubChunk;.byteRate:I // field@02d4 │ │ +01c7a6: 5f05 d302 |000b: iput-short v5, v0, Lorg/jsl/wfwt/WAV$FMTSubChunk;.blockAlign:S // field@02d3 │ │ +01c7aa: 5f06 d202 |000d: iput-short v6, v0, Lorg/jsl/wfwt/WAV$FMTSubChunk;.bitsPerSample:S // field@02d2 │ │ +01c7ae: 0e00 |000f: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=86 │ │ 0x0003 line=87 │ │ 0x0005 line=88 │ │ 0x0007 line=89 │ │ 0x0009 line=90 │ │ @@ -16796,62 +16796,62 @@ │ │ type : '(Ljava/nio/ByteBuffer;)Lorg/jsl/wfwt/WAV$FMTSubChunk;' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 10 │ │ ins : 1 │ │ outs : 7 │ │ insns size : 97 16-bit code units │ │ -01c6a8: |[01c6a8] org.jsl.wfwt.WAV$FMTSubChunk.read:(Ljava/nio/ByteBuffer;)Lorg/jsl/wfwt/WAV$FMTSubChunk; │ │ -01c6b8: 6e10 1b01 0900 |0000: invoke-virtual {v9}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ -01c6be: 0a00 |0003: move-result v0 │ │ -01c6c0: 1301 1400 |0004: const/16 v1, #int 20 // #14 │ │ -01c6c4: 3410 5300 |0006: if-lt v0, v1, 0059 // +0053 │ │ -01c6c8: 6e10 0001 0900 |0008: invoke-virtual {v9}, Ljava/nio/ByteBuffer;.getInt:()I // method@0100 │ │ -01c6ce: 0a00 |000b: move-result v0 │ │ -01c6d0: 1401 666d 7420 |000c: const v1, #float 2.07038e-19 // #20746d66 │ │ -01c6d6: 3310 4200 |000f: if-ne v0, v1, 0051 // +0042 │ │ -01c6da: 6e10 0001 0900 |0011: invoke-virtual {v9}, Ljava/nio/ByteBuffer;.getInt:()I // method@0100 │ │ -01c6e0: 0a00 |0014: move-result v0 │ │ -01c6e2: 1301 1000 |0015: const/16 v1, #int 16 // #10 │ │ -01c6e6: 3310 2100 |0017: if-ne v0, v1, 0038 // +0021 │ │ -01c6ea: 6e10 0401 0900 |0019: invoke-virtual {v9}, Ljava/nio/ByteBuffer;.getShort:()S // method@0104 │ │ -01c6f0: 0a03 |001c: move-result v3 │ │ -01c6f2: 6e10 0401 0900 |001d: invoke-virtual {v9}, Ljava/nio/ByteBuffer;.getShort:()S // method@0104 │ │ -01c6f8: 0a04 |0020: move-result v4 │ │ -01c6fa: 6e10 0001 0900 |0021: invoke-virtual {v9}, Ljava/nio/ByteBuffer;.getInt:()I // method@0100 │ │ -01c700: 0a05 |0024: move-result v5 │ │ -01c702: 6e10 0001 0900 |0025: invoke-virtual {v9}, Ljava/nio/ByteBuffer;.getInt:()I // method@0100 │ │ -01c708: 0a06 |0028: move-result v6 │ │ -01c70a: 6e10 0401 0900 |0029: invoke-virtual {v9}, Ljava/nio/ByteBuffer;.getShort:()S // method@0104 │ │ -01c710: 0a07 |002c: move-result v7 │ │ -01c712: 6e10 0401 0900 |002d: invoke-virtual {v9}, Ljava/nio/ByteBuffer;.getShort:()S // method@0104 │ │ -01c718: 0a08 |0030: move-result v8 │ │ -01c71a: 2209 4a01 |0031: new-instance v9, Lorg/jsl/wfwt/WAV$FMTSubChunk; // type@014a │ │ -01c71e: 0792 |0033: move-object v2, v9 │ │ -01c720: 7607 6405 0200 |0034: invoke-direct/range {v2, v3, v4, v5, v6, v7, v8}, Lorg/jsl/wfwt/WAV$FMTSubChunk;.:(SSIISS)V // method@0564 │ │ -01c726: 1109 |0037: return-object v9 │ │ -01c728: 2209 4c01 |0038: new-instance v9, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ -01c72c: 2201 6700 |003a: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ -01c730: 1a02 0807 |003c: const-string v2, "unexpected subchunk size " // string@0708 │ │ -01c734: 7020 c600 2100 |003e: invoke-direct {v1, v2}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ -01c73a: 6e20 c800 0100 |0041: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ -01c740: 1a00 1600 |0044: const-string v0, " instead of 16" // string@0016 │ │ -01c744: 6e20 cb00 0100 |0046: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01c74a: 6e10 ce00 0100 |0049: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01c750: 0c00 |004c: move-result-object v0 │ │ -01c752: 7020 6905 0900 |004d: invoke-direct {v9, v0}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ -01c758: 2709 |0050: throw v9 │ │ -01c75a: 2209 4c01 |0051: new-instance v9, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ -01c75e: 1a00 5604 |0053: const-string v0, "expected 'fmt ' marker in the beginning of the subchunk" // string@0456 │ │ -01c762: 7020 6905 0900 |0055: invoke-direct {v9, v0}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ -01c768: 2709 |0058: throw v9 │ │ -01c76a: 2209 4c01 |0059: new-instance v9, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ -01c76e: 1a00 0705 |005b: const-string v0, "less than 20 bytes" // string@0507 │ │ -01c772: 7020 6905 0900 |005d: invoke-direct {v9, v0}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ -01c778: 2709 |0060: throw v9 │ │ +01c6ac: |[01c6ac] org.jsl.wfwt.WAV$FMTSubChunk.read:(Ljava/nio/ByteBuffer;)Lorg/jsl/wfwt/WAV$FMTSubChunk; │ │ +01c6bc: 6e10 1b01 0900 |0000: invoke-virtual {v9}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ +01c6c2: 0a00 |0003: move-result v0 │ │ +01c6c4: 1301 1400 |0004: const/16 v1, #int 20 // #14 │ │ +01c6c8: 3410 5300 |0006: if-lt v0, v1, 0059 // +0053 │ │ +01c6cc: 6e10 0001 0900 |0008: invoke-virtual {v9}, Ljava/nio/ByteBuffer;.getInt:()I // method@0100 │ │ +01c6d2: 0a00 |000b: move-result v0 │ │ +01c6d4: 1401 666d 7420 |000c: const v1, #float 2.07038e-19 // #20746d66 │ │ +01c6da: 3310 4200 |000f: if-ne v0, v1, 0051 // +0042 │ │ +01c6de: 6e10 0001 0900 |0011: invoke-virtual {v9}, Ljava/nio/ByteBuffer;.getInt:()I // method@0100 │ │ +01c6e4: 0a00 |0014: move-result v0 │ │ +01c6e6: 1301 1000 |0015: const/16 v1, #int 16 // #10 │ │ +01c6ea: 3310 2100 |0017: if-ne v0, v1, 0038 // +0021 │ │ +01c6ee: 6e10 0401 0900 |0019: invoke-virtual {v9}, Ljava/nio/ByteBuffer;.getShort:()S // method@0104 │ │ +01c6f4: 0a03 |001c: move-result v3 │ │ +01c6f6: 6e10 0401 0900 |001d: invoke-virtual {v9}, Ljava/nio/ByteBuffer;.getShort:()S // method@0104 │ │ +01c6fc: 0a04 |0020: move-result v4 │ │ +01c6fe: 6e10 0001 0900 |0021: invoke-virtual {v9}, Ljava/nio/ByteBuffer;.getInt:()I // method@0100 │ │ +01c704: 0a05 |0024: move-result v5 │ │ +01c706: 6e10 0001 0900 |0025: invoke-virtual {v9}, Ljava/nio/ByteBuffer;.getInt:()I // method@0100 │ │ +01c70c: 0a06 |0028: move-result v6 │ │ +01c70e: 6e10 0401 0900 |0029: invoke-virtual {v9}, Ljava/nio/ByteBuffer;.getShort:()S // method@0104 │ │ +01c714: 0a07 |002c: move-result v7 │ │ +01c716: 6e10 0401 0900 |002d: invoke-virtual {v9}, Ljava/nio/ByteBuffer;.getShort:()S // method@0104 │ │ +01c71c: 0a08 |0030: move-result v8 │ │ +01c71e: 2209 4a01 |0031: new-instance v9, Lorg/jsl/wfwt/WAV$FMTSubChunk; // type@014a │ │ +01c722: 0792 |0033: move-object v2, v9 │ │ +01c724: 7607 6405 0200 |0034: invoke-direct/range {v2, v3, v4, v5, v6, v7, v8}, Lorg/jsl/wfwt/WAV$FMTSubChunk;.:(SSIISS)V // method@0564 │ │ +01c72a: 1109 |0037: return-object v9 │ │ +01c72c: 2209 4c01 |0038: new-instance v9, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ +01c730: 2201 6700 |003a: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ +01c734: 1a02 0807 |003c: const-string v2, "unexpected subchunk size " // string@0708 │ │ +01c738: 7020 c600 2100 |003e: invoke-direct {v1, v2}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ +01c73e: 6e20 c800 0100 |0041: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ +01c744: 1a00 1600 |0044: const-string v0, " instead of 16" // string@0016 │ │ +01c748: 6e20 cb00 0100 |0046: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01c74e: 6e10 ce00 0100 |0049: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01c754: 0c00 |004c: move-result-object v0 │ │ +01c756: 7020 6905 0900 |004d: invoke-direct {v9, v0}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ +01c75c: 2709 |0050: throw v9 │ │ +01c75e: 2209 4c01 |0051: new-instance v9, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ +01c762: 1a00 5604 |0053: const-string v0, "expected 'fmt ' marker in the beginning of the subchunk" // string@0456 │ │ +01c766: 7020 6905 0900 |0055: invoke-direct {v9, v0}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ +01c76c: 2709 |0058: throw v9 │ │ +01c76e: 2209 4c01 |0059: new-instance v9, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ +01c772: 1a00 0705 |005b: const-string v0, "less than 20 bytes" // string@0507 │ │ +01c776: 7020 6905 0900 |005d: invoke-direct {v9, v0}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ +01c77c: 2709 |0060: throw v9 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=97 │ │ 0x0008 line=101 │ │ 0x0011 line=104 │ │ 0x0019 line=107 │ │ 0x001d line=108 │ │ @@ -16906,17 +16906,17 @@ │ │ type : '()V' │ │ access : 0x10002 (PRIVATE CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -01c7ac: |[01c7ac] org.jsl.wfwt.WAV$RIFFHeader.:()V │ │ -01c7bc: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01c7c2: 0e00 |0003: return-void │ │ +01c7b0: |[01c7b0] org.jsl.wfwt.WAV$RIFFHeader.:()V │ │ +01c7c0: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01c7c6: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=56 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/jsl/wfwt/WAV$RIFFHeader; │ │ │ │ #1 : (in Lorg/jsl/wfwt/WAV$RIFFHeader;) │ │ @@ -16924,17 +16924,17 @@ │ │ type : '(Ljava/nio/ByteBuffer;)V' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -01c7c4: |[01c7c4] org.jsl.wfwt.WAV$RIFFHeader.access$000:(Ljava/nio/ByteBuffer;)V │ │ -01c7d4: 7110 6805 0000 |0000: invoke-static {v0}, Lorg/jsl/wfwt/WAV$RIFFHeader;.read:(Ljava/nio/ByteBuffer;)V // method@0568 │ │ -01c7da: 0e00 |0003: return-void │ │ +01c7c8: |[01c7c8] org.jsl.wfwt.WAV$RIFFHeader.access$000:(Ljava/nio/ByteBuffer;)V │ │ +01c7d8: 7110 6805 0000 |0000: invoke-static {v0}, Lorg/jsl/wfwt/WAV$RIFFHeader;.read:(Ljava/nio/ByteBuffer;)V // method@0568 │ │ +01c7de: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=56 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 (null) Ljava/nio/ByteBuffer; │ │ │ │ #2 : (in Lorg/jsl/wfwt/WAV$RIFFHeader;) │ │ @@ -16942,49 +16942,49 @@ │ │ type : '(Ljava/nio/ByteBuffer;)V' │ │ access : 0x000a (PRIVATE STATIC) │ │ code - │ │ registers : 5 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 72 16-bit code units │ │ -01c7dc: |[01c7dc] org.jsl.wfwt.WAV$RIFFHeader.read:(Ljava/nio/ByteBuffer;)V │ │ -01c7ec: 6e10 1b01 0400 |0000: invoke-virtual {v4}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ -01c7f2: 0a00 |0003: move-result v0 │ │ -01c7f4: 1301 0c00 |0004: const/16 v1, #int 12 // #c │ │ -01c7f8: 3410 3a00 |0006: if-lt v0, v1, 0040 // +003a │ │ -01c7fc: 6e10 0001 0400 |0008: invoke-virtual {v4}, Ljava/nio/ByteBuffer;.getInt:()I // method@0100 │ │ -01c802: 0a01 |000b: move-result v1 │ │ -01c804: 1402 5249 4646 |000c: const v2, #float 12690.3 // #46464952 │ │ -01c80a: 3321 2900 |000f: if-ne v1, v2, 0038 // +0029 │ │ -01c80e: 6e10 0001 0400 |0011: invoke-virtual {v4}, Ljava/nio/ByteBuffer;.getInt:()I // method@0100 │ │ -01c814: 0a04 |0014: move-result v4 │ │ -01c816: d801 0408 |0015: add-int/lit8 v1, v4, #int 8 // #08 │ │ -01c81a: 3310 0300 |0017: if-ne v0, v1, 001a // +0003 │ │ -01c81e: 0e00 |0019: return-void │ │ -01c820: 2201 4c01 |001a: new-instance v1, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ -01c824: 2202 6700 |001c: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ -01c828: 1a03 0507 |001e: const-string v3, "unexpected chunk size " // string@0705 │ │ -01c82c: 7020 c600 3200 |0020: invoke-direct {v2, v3}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ -01c832: 6e20 c800 4200 |0023: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ -01c838: 1a04 1400 |0026: const-string v4, " instead of " // string@0014 │ │ -01c83c: 6e20 cb00 4200 |0028: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01c842: d800 00f8 |002b: add-int/lit8 v0, v0, #int -8 // #f8 │ │ -01c846: 6e20 c800 0200 |002d: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ -01c84c: 6e10 ce00 0200 |0030: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01c852: 0c04 |0033: move-result-object v4 │ │ -01c854: 7020 6905 4100 |0034: invoke-direct {v1, v4}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ -01c85a: 2701 |0037: throw v1 │ │ -01c85c: 2204 4c01 |0038: new-instance v4, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ -01c860: 1a00 5404 |003a: const-string v0, "expected 'RIFF' in the begin" // string@0454 │ │ -01c864: 7020 6905 0400 |003c: invoke-direct {v4, v0}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ -01c86a: 2704 |003f: throw v4 │ │ -01c86c: 2204 4c01 |0040: new-instance v4, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ -01c870: 1a00 0605 |0042: const-string v0, "less than 12 bytes" // string@0506 │ │ -01c874: 7020 6905 0400 |0044: invoke-direct {v4, v0}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ -01c87a: 2704 |0047: throw v4 │ │ +01c7e0: |[01c7e0] org.jsl.wfwt.WAV$RIFFHeader.read:(Ljava/nio/ByteBuffer;)V │ │ +01c7f0: 6e10 1b01 0400 |0000: invoke-virtual {v4}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ +01c7f6: 0a00 |0003: move-result v0 │ │ +01c7f8: 1301 0c00 |0004: const/16 v1, #int 12 // #c │ │ +01c7fc: 3410 3a00 |0006: if-lt v0, v1, 0040 // +003a │ │ +01c800: 6e10 0001 0400 |0008: invoke-virtual {v4}, Ljava/nio/ByteBuffer;.getInt:()I // method@0100 │ │ +01c806: 0a01 |000b: move-result v1 │ │ +01c808: 1402 5249 4646 |000c: const v2, #float 12690.3 // #46464952 │ │ +01c80e: 3321 2900 |000f: if-ne v1, v2, 0038 // +0029 │ │ +01c812: 6e10 0001 0400 |0011: invoke-virtual {v4}, Ljava/nio/ByteBuffer;.getInt:()I // method@0100 │ │ +01c818: 0a04 |0014: move-result v4 │ │ +01c81a: d801 0408 |0015: add-int/lit8 v1, v4, #int 8 // #08 │ │ +01c81e: 3310 0300 |0017: if-ne v0, v1, 001a // +0003 │ │ +01c822: 0e00 |0019: return-void │ │ +01c824: 2201 4c01 |001a: new-instance v1, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ +01c828: 2202 6700 |001c: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ +01c82c: 1a03 0507 |001e: const-string v3, "unexpected chunk size " // string@0705 │ │ +01c830: 7020 c600 3200 |0020: invoke-direct {v2, v3}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ +01c836: 6e20 c800 4200 |0023: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ +01c83c: 1a04 1400 |0026: const-string v4, " instead of " // string@0014 │ │ +01c840: 6e20 cb00 4200 |0028: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01c846: d800 00f8 |002b: add-int/lit8 v0, v0, #int -8 // #f8 │ │ +01c84a: 6e20 c800 0200 |002d: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ +01c850: 6e10 ce00 0200 |0030: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01c856: 0c04 |0033: move-result-object v4 │ │ +01c858: 7020 6905 4100 |0034: invoke-direct {v1, v4}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ +01c85e: 2701 |0037: throw v1 │ │ +01c860: 2204 4c01 |0038: new-instance v4, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ +01c864: 1a00 5404 |003a: const-string v0, "expected 'RIFF' in the begin" // string@0454 │ │ +01c868: 7020 6905 0400 |003c: invoke-direct {v4, v0}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ +01c86e: 2704 |003f: throw v4 │ │ +01c870: 2204 4c01 |0040: new-instance v4, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ +01c874: 1a00 0605 |0042: const-string v0, "less than 12 bytes" // string@0506 │ │ +01c878: 7020 6905 0400 |0044: invoke-direct {v4, v0}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ +01c87e: 2704 |0047: throw v4 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=62 │ │ 0x0008 line=65 │ │ 0x0011 line=68 │ │ 0x001a line=70 │ │ 0x0038 line=67 │ │ @@ -17027,18 +17027,18 @@ │ │ type : '(Ljava/lang/String;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -01c87c: |[01c87c] org.jsl.wfwt.WAV$ReadException.:(Ljava/lang/String;)V │ │ -01c88c: 7010 a100 0000 |0000: invoke-direct {v0}, Ljava/lang/Exception;.:()V // method@00a1 │ │ -01c892: 5b01 d802 |0003: iput-object v1, v0, Lorg/jsl/wfwt/WAV$ReadException;.description:Ljava/lang/String; // field@02d8 │ │ -01c896: 0e00 |0005: return-void │ │ +01c880: |[01c880] org.jsl.wfwt.WAV$ReadException.:(Ljava/lang/String;)V │ │ +01c890: 7010 a100 0000 |0000: invoke-direct {v0}, Ljava/lang/Exception;.:()V // method@00a1 │ │ +01c896: 5b01 d802 |0003: iput-object v1, v0, Lorg/jsl/wfwt/WAV$ReadException;.description:Ljava/lang/String; // field@02d8 │ │ +01c89a: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=33 │ │ 0x0003 line=34 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/jsl/wfwt/WAV$ReadException; │ │ 0x0000 - 0x0006 reg=1 (null) Ljava/lang/String; │ │ @@ -17075,17 +17075,17 @@ │ │ type : '()V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -01cb44: |[01cb44] org.jsl.wfwt.WAV.:()V │ │ -01cb54: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01cb5a: 0e00 |0003: return-void │ │ +01cb48: |[01cb48] org.jsl.wfwt.WAV.:()V │ │ +01cb58: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01cb5e: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=26 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/jsl/wfwt/WAV; │ │ │ │ #1 : (in Lorg/jsl/wfwt/WAV;) │ │ @@ -17093,41 +17093,41 @@ │ │ type : '(I)Ljava/lang/String;' │ │ access : 0x000a (PRIVATE STATIC) │ │ code - │ │ registers : 5 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 50 16-bit code units │ │ -01c898: |[01c898] org.jsl.wfwt.WAV.intToString:(I)Ljava/lang/String; │ │ -01c8a8: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -01c8ac: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -01c8b2: 7110 a800 0400 |0005: invoke-static {v4}, Ljava/lang/Integer;.reverseBytes:(I)I // method@00a8 │ │ -01c8b8: 0a04 |0008: move-result v4 │ │ -01c8ba: 1201 |0009: const/4 v1, #int 0 // #0 │ │ -01c8bc: 1242 |000a: const/4 v2, #int 4 // #4 │ │ -01c8be: 3521 2200 |000b: if-ge v1, v2, 002d // +0022 │ │ -01c8c2: d542 ff00 |000d: and-int/lit16 v2, v4, #int 255 // #00ff │ │ -01c8c6: 1303 2000 |000f: const/16 v3, #int 32 // #20 │ │ -01c8ca: 3432 0b00 |0011: if-lt v2, v3, 001c // +000b │ │ -01c8ce: 1303 7f00 |0013: const/16 v3, #int 127 // #7f │ │ -01c8d2: 3632 0700 |0015: if-gt v2, v3, 001c // +0007 │ │ -01c8d6: 8e22 |0017: int-to-char v2, v2 │ │ -01c8d8: 6e20 c700 2000 |0018: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(C)Ljava/lang/StringBuilder; // method@00c7 │ │ -01c8de: 280d |001b: goto 0028 // +000d │ │ -01c8e0: 1a03 9b03 |001c: const-string v3, "\x" // string@039b │ │ -01c8e4: 6e20 cb00 3000 |001e: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01c8ea: 7110 a900 0200 |0021: invoke-static {v2}, Ljava/lang/Integer;.toHexString:(I)Ljava/lang/String; // method@00a9 │ │ -01c8f0: 0c02 |0024: move-result-object v2 │ │ -01c8f2: 6e20 cb00 2000 |0025: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01c8f8: d801 0101 |0028: add-int/lit8 v1, v1, #int 1 // #01 │ │ -01c8fc: e104 0408 |002a: shr-int/lit8 v4, v4, #int 8 // #08 │ │ -01c900: 28de |002c: goto 000a // -0022 │ │ -01c902: 6e10 ce00 0000 |002d: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01c908: 0c04 |0030: move-result-object v4 │ │ -01c90a: 1104 |0031: return-object v4 │ │ +01c89c: |[01c89c] org.jsl.wfwt.WAV.intToString:(I)Ljava/lang/String; │ │ +01c8ac: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +01c8b0: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +01c8b6: 7110 a800 0400 |0005: invoke-static {v4}, Ljava/lang/Integer;.reverseBytes:(I)I // method@00a8 │ │ +01c8bc: 0a04 |0008: move-result v4 │ │ +01c8be: 1201 |0009: const/4 v1, #int 0 // #0 │ │ +01c8c0: 1242 |000a: const/4 v2, #int 4 // #4 │ │ +01c8c2: 3521 2200 |000b: if-ge v1, v2, 002d // +0022 │ │ +01c8c6: d542 ff00 |000d: and-int/lit16 v2, v4, #int 255 // #00ff │ │ +01c8ca: 1303 2000 |000f: const/16 v3, #int 32 // #20 │ │ +01c8ce: 3432 0b00 |0011: if-lt v2, v3, 001c // +000b │ │ +01c8d2: 1303 7f00 |0013: const/16 v3, #int 127 // #7f │ │ +01c8d6: 3632 0700 |0015: if-gt v2, v3, 001c // +0007 │ │ +01c8da: 8e22 |0017: int-to-char v2, v2 │ │ +01c8dc: 6e20 c700 2000 |0018: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(C)Ljava/lang/StringBuilder; // method@00c7 │ │ +01c8e2: 280d |001b: goto 0028 // +000d │ │ +01c8e4: 1a03 9b03 |001c: const-string v3, "\x" // string@039b │ │ +01c8e8: 6e20 cb00 3000 |001e: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01c8ee: 7110 a900 0200 |0021: invoke-static {v2}, Ljava/lang/Integer;.toHexString:(I)Ljava/lang/String; // method@00a9 │ │ +01c8f4: 0c02 |0024: move-result-object v2 │ │ +01c8f6: 6e20 cb00 2000 |0025: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01c8fc: d801 0101 |0028: add-int/lit8 v1, v1, #int 1 // #01 │ │ +01c900: e104 0408 |002a: shr-int/lit8 v4, v4, #int 8 // #08 │ │ +01c904: 28de |002c: goto 000a // -0022 │ │ +01c906: 6e10 ce00 0000 |002d: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01c90c: 0c04 |0030: move-result-object v4 │ │ +01c90e: 1104 |0031: return-object v4 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=40 │ │ 0x0005 line=41 │ │ 0x0018 line=46 │ │ 0x001e line=49 │ │ 0x0021 line=50 │ │ @@ -17140,133 +17140,133 @@ │ │ type : '(Ljava/io/InputStream;)Ljava/nio/ByteBuffer;' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 7 │ │ ins : 1 │ │ outs : 4 │ │ insns size : 251 16-bit code units │ │ -01c90c: |[01c90c] org.jsl.wfwt.WAV.loadData:(Ljava/io/InputStream;)Ljava/nio/ByteBuffer; │ │ -01c91c: 1a00 2903 |0000: const-string v0, "Unsupported number of channels " // string@0329 │ │ -01c920: 1a01 2803 |0002: const-string v1, "Unsupported audio format " // string@0328 │ │ -01c924: 6e10 9300 0600 |0004: invoke-virtual {v6}, Ljava/io/InputStream;.available:()I // method@0093 │ │ -01c92a: 0a02 |0007: move-result v2 │ │ -01c92c: 7110 f100 0200 |0008: invoke-static {v2}, Ljava/nio/ByteBuffer;.allocate:(I)Ljava/nio/ByteBuffer; // method@00f1 │ │ -01c932: 0c03 |000b: move-result-object v3 │ │ -01c934: 6204 0500 |000c: sget-object v4, Ljava/nio/ByteOrder;.LITTLE_ENDIAN:Ljava/nio/ByteOrder; // field@0005 │ │ -01c938: 6e20 0901 4300 |000e: invoke-virtual {v3, v4}, Ljava/nio/ByteBuffer;.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; // method@0109 │ │ -01c93e: 6e10 f300 0300 |0011: invoke-virtual {v3}, Ljava/nio/ByteBuffer;.array:()[B // method@00f3 │ │ -01c944: 0c04 |0014: move-result-object v4 │ │ -01c946: 1205 |0015: const/4 v5, #int 0 // #0 │ │ -01c948: 6e40 9500 4625 |0016: invoke-virtual {v6, v4, v5, v2}, Ljava/io/InputStream;.read:([BII)I // method@0095 │ │ -01c94e: 0a06 |0019: move-result v6 │ │ -01c950: 3326 c800 |001a: if-ne v6, v2, 00e2 // +00c8 │ │ -01c954: 7110 6705 0300 |001c: invoke-static {v3}, Lorg/jsl/wfwt/WAV$RIFFHeader;.access$000:(Ljava/nio/ByteBuffer;)V // method@0567 │ │ -01c95a: 6e10 0001 0300 |001f: invoke-virtual {v3}, Ljava/nio/ByteBuffer;.getInt:()I // method@0100 │ │ -01c960: 0a06 |0022: move-result v6 │ │ -01c962: 1402 5741 5645 |0023: const v2, #float 3428.08 // #45564157 │ │ -01c968: 3326 8800 |0026: if-ne v6, v2, 00ae // +0088 │ │ -01c96c: 7110 6505 0300 |0028: invoke-static {v3}, Lorg/jsl/wfwt/WAV$FMTSubChunk;.read:(Ljava/nio/ByteBuffer;)Lorg/jsl/wfwt/WAV$FMTSubChunk; // method@0565 │ │ -01c972: 0c06 |002b: move-result-object v6 │ │ -01c974: 5862 d102 |002c: iget-short v2, v6, Lorg/jsl/wfwt/WAV$FMTSubChunk;.audioFormat:S // field@02d1 │ │ -01c978: 1214 |002e: const/4 v4, #int 1 // #1 │ │ -01c97a: 3342 5400 |002f: if-ne v2, v4, 0083 // +0054 │ │ -01c97e: 5861 d502 |0031: iget-short v1, v6, Lorg/jsl/wfwt/WAV$FMTSubChunk;.numChannels:S // field@02d5 │ │ -01c982: 3341 3c00 |0033: if-ne v1, v4, 006f // +003c │ │ -01c986: 7110 6305 0300 |0035: invoke-static {v3}, Lorg/jsl/wfwt/WAV$DataSubChunk;.read:(Ljava/nio/ByteBuffer;)Lorg/jsl/wfwt/WAV$DataSubChunk; // method@0563 │ │ -01c98c: 0c06 |0038: move-result-object v6 │ │ -01c98e: 6e10 1b01 0300 |0039: invoke-virtual {v3}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ -01c994: 0a00 |003c: move-result v0 │ │ -01c996: 5261 cf02 |003d: iget v1, v6, Lorg/jsl/wfwt/WAV$DataSubChunk;.size:I // field@02cf │ │ -01c99a: 3410 0300 |003f: if-lt v0, v1, 0042 // +0003 │ │ -01c99e: 1103 |0041: return-object v3 │ │ -01c9a0: 2200 4c01 |0042: new-instance v0, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ -01c9a4: 2201 6700 |0044: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ -01c9a8: 1a02 0601 |0046: const-string v2, "Invalid input stream, available bytes is less than " // string@0106 │ │ -01c9ac: 7020 c600 2100 |0048: invoke-direct {v1, v2}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ -01c9b2: 5266 cf02 |004b: iget v6, v6, Lorg/jsl/wfwt/WAV$DataSubChunk;.size:I // field@02cf │ │ -01c9b6: 6e20 c800 6100 |004d: invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ -01c9bc: 6e10 ce00 0100 |0050: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01c9c2: 0c06 |0053: move-result-object v6 │ │ -01c9c4: 7020 6905 6000 |0054: invoke-direct {v0, v6}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ -01c9ca: 2700 |0057: throw v0 │ │ -01c9cc: 0d06 |0058: move-exception v6 │ │ -01c9ce: 2200 4c01 |0059: new-instance v0, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ -01c9d2: 2201 6700 |005b: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ -01c9d6: 1a02 0401 |005d: const-string v2, "Invalid data subchunk header: " // string@0104 │ │ -01c9da: 7020 c600 2100 |005f: invoke-direct {v1, v2}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ -01c9e0: 5466 d802 |0062: iget-object v6, v6, Lorg/jsl/wfwt/WAV$ReadException;.description:Ljava/lang/String; // field@02d8 │ │ -01c9e4: 6e20 cb00 6100 |0064: invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01c9ea: 6e10 ce00 0100 |0067: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01c9f0: 0c06 |006a: move-result-object v6 │ │ -01c9f2: 7020 6905 6000 |006b: invoke-direct {v0, v6}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ -01c9f8: 2700 |006e: throw v0 │ │ -01c9fa: 2201 4c01 |006f: new-instance v1, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ -01c9fe: 2202 6700 |0071: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ -01ca02: 7020 c600 0200 |0073: invoke-direct {v2, v0}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ -01ca08: 5866 d502 |0076: iget-short v6, v6, Lorg/jsl/wfwt/WAV$FMTSubChunk;.numChannels:S // field@02d5 │ │ -01ca0c: 6e20 c800 6200 |0078: invoke-virtual {v2, v6}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ -01ca12: 6e10 ce00 0200 |007b: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01ca18: 0c06 |007e: move-result-object v6 │ │ -01ca1a: 7020 6905 6100 |007f: invoke-direct {v1, v6}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ -01ca20: 2701 |0082: throw v1 │ │ -01ca22: 2200 4c01 |0083: new-instance v0, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ -01ca26: 2202 6700 |0085: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ -01ca2a: 7020 c600 1200 |0087: invoke-direct {v2, v1}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ -01ca30: 5866 d102 |008a: iget-short v6, v6, Lorg/jsl/wfwt/WAV$FMTSubChunk;.audioFormat:S // field@02d1 │ │ -01ca34: 6e20 c800 6200 |008c: invoke-virtual {v2, v6}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ -01ca3a: 6e10 ce00 0200 |008f: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01ca40: 0c06 |0092: move-result-object v6 │ │ -01ca42: 7020 6905 6000 |0093: invoke-direct {v0, v6}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ -01ca48: 2700 |0096: throw v0 │ │ -01ca4a: 0d06 |0097: move-exception v6 │ │ -01ca4c: 2200 4c01 |0098: new-instance v0, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ -01ca50: 2201 6700 |009a: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ -01ca54: 1a02 0501 |009c: const-string v2, "Invalid fmt subchunk header: " // string@0105 │ │ -01ca58: 7020 c600 2100 |009e: invoke-direct {v1, v2}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ -01ca5e: 5466 d802 |00a1: iget-object v6, v6, Lorg/jsl/wfwt/WAV$ReadException;.description:Ljava/lang/String; // field@02d8 │ │ -01ca62: 6e20 cb00 6100 |00a3: invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01ca68: 6e10 ce00 0100 |00a6: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01ca6e: 0c06 |00a9: move-result-object v6 │ │ -01ca70: 7020 6905 6000 |00aa: invoke-direct {v0, v6}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ -01ca76: 2700 |00ad: throw v0 │ │ -01ca78: 2200 4c01 |00ae: new-instance v0, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ -01ca7c: 2201 6700 |00b0: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ -01ca80: 1a02 0607 |00b2: const-string v2, "unexpected format " // string@0706 │ │ -01ca84: 7020 c600 2100 |00b4: invoke-direct {v1, v2}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ -01ca8a: 7110 6b05 0600 |00b7: invoke-static {v6}, Lorg/jsl/wfwt/WAV;.intToString:(I)Ljava/lang/String; // method@056b │ │ -01ca90: 0c06 |00ba: move-result-object v6 │ │ -01ca92: 6e20 cb00 6100 |00bb: invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01ca98: 1a06 1500 |00be: const-string v6, " instead of 'WAVE'" // string@0015 │ │ -01ca9c: 6e20 cb00 6100 |00c0: invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01caa2: 6e10 ce00 0100 |00c3: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01caa8: 0c06 |00c6: move-result-object v6 │ │ -01caaa: 7020 6905 6000 |00c7: invoke-direct {v0, v6}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ -01cab0: 2700 |00ca: throw v0 │ │ -01cab2: 0d06 |00cb: move-exception v6 │ │ -01cab4: 2200 5100 |00cc: new-instance v0, Ljava/io/IOException; // type@0051 │ │ -01cab8: 2201 6700 |00ce: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ -01cabc: 1a02 0301 |00d0: const-string v2, "Invalid RIFF header: " // string@0103 │ │ -01cac0: 7020 c600 2100 |00d2: invoke-direct {v1, v2}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ -01cac6: 5466 d802 |00d5: iget-object v6, v6, Lorg/jsl/wfwt/WAV$ReadException;.description:Ljava/lang/String; // field@02d8 │ │ -01caca: 6e20 cb00 6100 |00d7: invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01cad0: 6e10 ce00 0100 |00da: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01cad6: 0c06 |00dd: move-result-object v6 │ │ -01cad8: 7020 9100 6000 |00de: invoke-direct {v0, v6}, Ljava/io/IOException;.:(Ljava/lang/String;)V // method@0091 │ │ -01cade: 2700 |00e1: throw v0 │ │ -01cae0: 2206 4c01 |00e2: new-instance v6, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ -01cae4: 2200 6700 |00e4: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -01cae8: 1a01 e000 |00e6: const-string v1, "Failed to read whole data of " // string@00e0 │ │ -01caec: 7020 c600 1000 |00e8: invoke-direct {v0, v1}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ -01caf2: 6e20 c800 2000 |00eb: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ -01caf8: 1a01 0c00 |00ee: const-string v1, " bytes" // string@000c │ │ -01cafc: 6e20 cb00 1000 |00f0: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01cb02: 6e10 ce00 0000 |00f3: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01cb08: 0c00 |00f6: move-result-object v0 │ │ -01cb0a: 7020 6905 0600 |00f7: invoke-direct {v6, v0}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ -01cb10: 2706 |00fa: throw v6 │ │ +01c910: |[01c910] org.jsl.wfwt.WAV.loadData:(Ljava/io/InputStream;)Ljava/nio/ByteBuffer; │ │ +01c920: 1a00 2903 |0000: const-string v0, "Unsupported number of channels " // string@0329 │ │ +01c924: 1a01 2803 |0002: const-string v1, "Unsupported audio format " // string@0328 │ │ +01c928: 6e10 9300 0600 |0004: invoke-virtual {v6}, Ljava/io/InputStream;.available:()I // method@0093 │ │ +01c92e: 0a02 |0007: move-result v2 │ │ +01c930: 7110 f100 0200 |0008: invoke-static {v2}, Ljava/nio/ByteBuffer;.allocate:(I)Ljava/nio/ByteBuffer; // method@00f1 │ │ +01c936: 0c03 |000b: move-result-object v3 │ │ +01c938: 6204 0500 |000c: sget-object v4, Ljava/nio/ByteOrder;.LITTLE_ENDIAN:Ljava/nio/ByteOrder; // field@0005 │ │ +01c93c: 6e20 0901 4300 |000e: invoke-virtual {v3, v4}, Ljava/nio/ByteBuffer;.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; // method@0109 │ │ +01c942: 6e10 f300 0300 |0011: invoke-virtual {v3}, Ljava/nio/ByteBuffer;.array:()[B // method@00f3 │ │ +01c948: 0c04 |0014: move-result-object v4 │ │ +01c94a: 1205 |0015: const/4 v5, #int 0 // #0 │ │ +01c94c: 6e40 9500 4625 |0016: invoke-virtual {v6, v4, v5, v2}, Ljava/io/InputStream;.read:([BII)I // method@0095 │ │ +01c952: 0a06 |0019: move-result v6 │ │ +01c954: 3326 c800 |001a: if-ne v6, v2, 00e2 // +00c8 │ │ +01c958: 7110 6705 0300 |001c: invoke-static {v3}, Lorg/jsl/wfwt/WAV$RIFFHeader;.access$000:(Ljava/nio/ByteBuffer;)V // method@0567 │ │ +01c95e: 6e10 0001 0300 |001f: invoke-virtual {v3}, Ljava/nio/ByteBuffer;.getInt:()I // method@0100 │ │ +01c964: 0a06 |0022: move-result v6 │ │ +01c966: 1402 5741 5645 |0023: const v2, #float 3428.08 // #45564157 │ │ +01c96c: 3326 8800 |0026: if-ne v6, v2, 00ae // +0088 │ │ +01c970: 7110 6505 0300 |0028: invoke-static {v3}, Lorg/jsl/wfwt/WAV$FMTSubChunk;.read:(Ljava/nio/ByteBuffer;)Lorg/jsl/wfwt/WAV$FMTSubChunk; // method@0565 │ │ +01c976: 0c06 |002b: move-result-object v6 │ │ +01c978: 5862 d102 |002c: iget-short v2, v6, Lorg/jsl/wfwt/WAV$FMTSubChunk;.audioFormat:S // field@02d1 │ │ +01c97c: 1214 |002e: const/4 v4, #int 1 // #1 │ │ +01c97e: 3342 5400 |002f: if-ne v2, v4, 0083 // +0054 │ │ +01c982: 5861 d502 |0031: iget-short v1, v6, Lorg/jsl/wfwt/WAV$FMTSubChunk;.numChannels:S // field@02d5 │ │ +01c986: 3341 3c00 |0033: if-ne v1, v4, 006f // +003c │ │ +01c98a: 7110 6305 0300 |0035: invoke-static {v3}, Lorg/jsl/wfwt/WAV$DataSubChunk;.read:(Ljava/nio/ByteBuffer;)Lorg/jsl/wfwt/WAV$DataSubChunk; // method@0563 │ │ +01c990: 0c06 |0038: move-result-object v6 │ │ +01c992: 6e10 1b01 0300 |0039: invoke-virtual {v3}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ +01c998: 0a00 |003c: move-result v0 │ │ +01c99a: 5261 cf02 |003d: iget v1, v6, Lorg/jsl/wfwt/WAV$DataSubChunk;.size:I // field@02cf │ │ +01c99e: 3410 0300 |003f: if-lt v0, v1, 0042 // +0003 │ │ +01c9a2: 1103 |0041: return-object v3 │ │ +01c9a4: 2200 4c01 |0042: new-instance v0, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ +01c9a8: 2201 6700 |0044: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ +01c9ac: 1a02 0601 |0046: const-string v2, "Invalid input stream, available bytes is less than " // string@0106 │ │ +01c9b0: 7020 c600 2100 |0048: invoke-direct {v1, v2}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ +01c9b6: 5266 cf02 |004b: iget v6, v6, Lorg/jsl/wfwt/WAV$DataSubChunk;.size:I // field@02cf │ │ +01c9ba: 6e20 c800 6100 |004d: invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ +01c9c0: 6e10 ce00 0100 |0050: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01c9c6: 0c06 |0053: move-result-object v6 │ │ +01c9c8: 7020 6905 6000 |0054: invoke-direct {v0, v6}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ +01c9ce: 2700 |0057: throw v0 │ │ +01c9d0: 0d06 |0058: move-exception v6 │ │ +01c9d2: 2200 4c01 |0059: new-instance v0, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ +01c9d6: 2201 6700 |005b: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ +01c9da: 1a02 0401 |005d: const-string v2, "Invalid data subchunk header: " // string@0104 │ │ +01c9de: 7020 c600 2100 |005f: invoke-direct {v1, v2}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ +01c9e4: 5466 d802 |0062: iget-object v6, v6, Lorg/jsl/wfwt/WAV$ReadException;.description:Ljava/lang/String; // field@02d8 │ │ +01c9e8: 6e20 cb00 6100 |0064: invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01c9ee: 6e10 ce00 0100 |0067: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01c9f4: 0c06 |006a: move-result-object v6 │ │ +01c9f6: 7020 6905 6000 |006b: invoke-direct {v0, v6}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ +01c9fc: 2700 |006e: throw v0 │ │ +01c9fe: 2201 4c01 |006f: new-instance v1, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ +01ca02: 2202 6700 |0071: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ +01ca06: 7020 c600 0200 |0073: invoke-direct {v2, v0}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ +01ca0c: 5866 d502 |0076: iget-short v6, v6, Lorg/jsl/wfwt/WAV$FMTSubChunk;.numChannels:S // field@02d5 │ │ +01ca10: 6e20 c800 6200 |0078: invoke-virtual {v2, v6}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ +01ca16: 6e10 ce00 0200 |007b: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01ca1c: 0c06 |007e: move-result-object v6 │ │ +01ca1e: 7020 6905 6100 |007f: invoke-direct {v1, v6}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ +01ca24: 2701 |0082: throw v1 │ │ +01ca26: 2200 4c01 |0083: new-instance v0, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ +01ca2a: 2202 6700 |0085: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ +01ca2e: 7020 c600 1200 |0087: invoke-direct {v2, v1}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ +01ca34: 5866 d102 |008a: iget-short v6, v6, Lorg/jsl/wfwt/WAV$FMTSubChunk;.audioFormat:S // field@02d1 │ │ +01ca38: 6e20 c800 6200 |008c: invoke-virtual {v2, v6}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ +01ca3e: 6e10 ce00 0200 |008f: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01ca44: 0c06 |0092: move-result-object v6 │ │ +01ca46: 7020 6905 6000 |0093: invoke-direct {v0, v6}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ +01ca4c: 2700 |0096: throw v0 │ │ +01ca4e: 0d06 |0097: move-exception v6 │ │ +01ca50: 2200 4c01 |0098: new-instance v0, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ +01ca54: 2201 6700 |009a: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ +01ca58: 1a02 0501 |009c: const-string v2, "Invalid fmt subchunk header: " // string@0105 │ │ +01ca5c: 7020 c600 2100 |009e: invoke-direct {v1, v2}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ +01ca62: 5466 d802 |00a1: iget-object v6, v6, Lorg/jsl/wfwt/WAV$ReadException;.description:Ljava/lang/String; // field@02d8 │ │ +01ca66: 6e20 cb00 6100 |00a3: invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01ca6c: 6e10 ce00 0100 |00a6: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01ca72: 0c06 |00a9: move-result-object v6 │ │ +01ca74: 7020 6905 6000 |00aa: invoke-direct {v0, v6}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ +01ca7a: 2700 |00ad: throw v0 │ │ +01ca7c: 2200 4c01 |00ae: new-instance v0, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ +01ca80: 2201 6700 |00b0: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ +01ca84: 1a02 0607 |00b2: const-string v2, "unexpected format " // string@0706 │ │ +01ca88: 7020 c600 2100 |00b4: invoke-direct {v1, v2}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ +01ca8e: 7110 6b05 0600 |00b7: invoke-static {v6}, Lorg/jsl/wfwt/WAV;.intToString:(I)Ljava/lang/String; // method@056b │ │ +01ca94: 0c06 |00ba: move-result-object v6 │ │ +01ca96: 6e20 cb00 6100 |00bb: invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01ca9c: 1a06 1500 |00be: const-string v6, " instead of 'WAVE'" // string@0015 │ │ +01caa0: 6e20 cb00 6100 |00c0: invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01caa6: 6e10 ce00 0100 |00c3: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01caac: 0c06 |00c6: move-result-object v6 │ │ +01caae: 7020 6905 6000 |00c7: invoke-direct {v0, v6}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ +01cab4: 2700 |00ca: throw v0 │ │ +01cab6: 0d06 |00cb: move-exception v6 │ │ +01cab8: 2200 5100 |00cc: new-instance v0, Ljava/io/IOException; // type@0051 │ │ +01cabc: 2201 6700 |00ce: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ +01cac0: 1a02 0301 |00d0: const-string v2, "Invalid RIFF header: " // string@0103 │ │ +01cac4: 7020 c600 2100 |00d2: invoke-direct {v1, v2}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ +01caca: 5466 d802 |00d5: iget-object v6, v6, Lorg/jsl/wfwt/WAV$ReadException;.description:Ljava/lang/String; // field@02d8 │ │ +01cace: 6e20 cb00 6100 |00d7: invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01cad4: 6e10 ce00 0100 |00da: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01cada: 0c06 |00dd: move-result-object v6 │ │ +01cadc: 7020 9100 6000 |00de: invoke-direct {v0, v6}, Ljava/io/IOException;.:(Ljava/lang/String;)V // method@0091 │ │ +01cae2: 2700 |00e1: throw v0 │ │ +01cae4: 2206 4c01 |00e2: new-instance v6, Lorg/jsl/wfwt/WAV$ReadException; // type@014c │ │ +01cae8: 2200 6700 |00e4: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +01caec: 1a01 e000 |00e6: const-string v1, "Failed to read whole data of " // string@00e0 │ │ +01caf0: 7020 c600 1000 |00e8: invoke-direct {v0, v1}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ +01caf6: 6e20 c800 2000 |00eb: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ +01cafc: 1a01 0c00 |00ee: const-string v1, " bytes" // string@000c │ │ +01cb00: 6e20 cb00 1000 |00f0: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01cb06: 6e10 ce00 0000 |00f3: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01cb0c: 0c00 |00f6: move-result-object v0 │ │ +01cb0e: 7020 6905 0600 |00f7: invoke-direct {v6, v0}, Lorg/jsl/wfwt/WAV$ReadException;.:(Ljava/lang/String;)V // method@0569 │ │ +01cb14: 2706 |00fa: throw v6 │ │ catches : 4 │ │ 0x001c - 0x001f │ │ Lorg/jsl/wfwt/WAV$ReadException; -> 0x00cb │ │ 0x0028 - 0x0033 │ │ Lorg/jsl/wfwt/WAV$ReadException; -> 0x0097 │ │ 0x0035 - 0x0039 │ │ Lorg/jsl/wfwt/WAV$ReadException; -> 0x0058 │ │ @@ -17357,18 +17357,18 @@ │ │ type : '(Lorg/jsl/wfwt/WalkieService;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -01cb5c: |[01cb5c] org.jsl.wfwt.WalkieService$BinderImpl.:(Lorg/jsl/wfwt/WalkieService;)V │ │ -01cb6c: 5b01 d902 |0000: iput-object v1, v0, Lorg/jsl/wfwt/WalkieService$BinderImpl;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02d9 │ │ -01cb70: 7010 5b00 0000 |0002: invoke-direct {v0}, Landroid/os/Binder;.:()V // method@005b │ │ -01cb76: 0e00 |0005: return-void │ │ +01cb60: |[01cb60] org.jsl.wfwt.WalkieService$BinderImpl.:(Lorg/jsl/wfwt/WalkieService;)V │ │ +01cb70: 5b01 d902 |0000: iput-object v1, v0, Lorg/jsl/wfwt/WalkieService$BinderImpl;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02d9 │ │ +01cb74: 7010 5b00 0000 |0002: invoke-direct {v0}, Landroid/os/Binder;.:()V // method@005b │ │ +01cb7a: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=69 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/jsl/wfwt/WalkieService$BinderImpl; │ │ 0x0000 - 0x0006 reg=1 (null) Lorg/jsl/wfwt/WalkieService; │ │ │ │ @@ -17378,24 +17378,24 @@ │ │ type : '(Lorg/jsl/wfwt/WalkieService$StateListener;Lorg/jsl/wfwt/Channel$StateListener;)V' │ │ access : 0x0000 () │ │ code - │ │ registers : 4 │ │ ins : 3 │ │ outs : 2 │ │ insns size : 19 16-bit code units │ │ -01cb78: |[01cb78] org.jsl.wfwt.WalkieService$BinderImpl.setStateListener:(Lorg/jsl/wfwt/WalkieService$StateListener;Lorg/jsl/wfwt/Channel$StateListener;)V │ │ -01cb88: 5410 d902 |0000: iget-object v0, v1, Lorg/jsl/wfwt/WalkieService$BinderImpl;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02d9 │ │ -01cb8c: 7110 8005 0000 |0002: invoke-static {v0}, Lorg/jsl/wfwt/WalkieService;.access$000:(Lorg/jsl/wfwt/WalkieService;)Lorg/jsl/wfwt/AudioRecorder; // method@0580 │ │ -01cb92: 0c00 |0005: move-result-object v0 │ │ -01cb94: 7220 7d05 0200 |0006: invoke-interface {v2, v0}, Lorg/jsl/wfwt/WalkieService$StateListener;.onInit:(Lorg/jsl/wfwt/AudioRecorder;)V // method@057d │ │ -01cb9a: 5412 d902 |0009: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService$BinderImpl;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02d9 │ │ -01cb9e: 7110 8105 0200 |000b: invoke-static {v2}, Lorg/jsl/wfwt/WalkieService;.access$100:(Lorg/jsl/wfwt/WalkieService;)Lorg/jsl/wfwt/Channel; // method@0581 │ │ -01cba4: 0c02 |000e: move-result-object v2 │ │ -01cba6: 6e20 9104 3200 |000f: invoke-virtual {v2, v3}, Lorg/jsl/wfwt/Channel;.setStateListener:(Lorg/jsl/wfwt/Channel$StateListener;)V // method@0491 │ │ -01cbac: 0e00 |0012: return-void │ │ +01cb7c: |[01cb7c] org.jsl.wfwt.WalkieService$BinderImpl.setStateListener:(Lorg/jsl/wfwt/WalkieService$StateListener;Lorg/jsl/wfwt/Channel$StateListener;)V │ │ +01cb8c: 5410 d902 |0000: iget-object v0, v1, Lorg/jsl/wfwt/WalkieService$BinderImpl;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02d9 │ │ +01cb90: 7110 8005 0000 |0002: invoke-static {v0}, Lorg/jsl/wfwt/WalkieService;.access$000:(Lorg/jsl/wfwt/WalkieService;)Lorg/jsl/wfwt/AudioRecorder; // method@0580 │ │ +01cb96: 0c00 |0005: move-result-object v0 │ │ +01cb98: 7220 7d05 0200 |0006: invoke-interface {v2, v0}, Lorg/jsl/wfwt/WalkieService$StateListener;.onInit:(Lorg/jsl/wfwt/AudioRecorder;)V // method@057d │ │ +01cb9e: 5412 d902 |0009: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService$BinderImpl;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02d9 │ │ +01cba2: 7110 8105 0200 |000b: invoke-static {v2}, Lorg/jsl/wfwt/WalkieService;.access$100:(Lorg/jsl/wfwt/WalkieService;)Lorg/jsl/wfwt/Channel; // method@0581 │ │ +01cba8: 0c02 |000e: move-result-object v2 │ │ +01cbaa: 6e20 9104 3200 |000f: invoke-virtual {v2, v3}, Lorg/jsl/wfwt/Channel;.setStateListener:(Lorg/jsl/wfwt/Channel$StateListener;)V // method@0491 │ │ +01cbb0: 0e00 |0012: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=73 │ │ 0x0009 line=74 │ │ locals : │ │ 0x0000 - 0x0013 reg=1 this Lorg/jsl/wfwt/WalkieService$BinderImpl; │ │ 0x0000 - 0x0013 reg=2 (null) Lorg/jsl/wfwt/WalkieService$StateListener; │ │ @@ -17406,20 +17406,20 @@ │ │ type : '(Ljava/lang/String;)V' │ │ access : 0x0000 () │ │ code - │ │ registers : 3 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 10 16-bit code units │ │ -01cbb0: |[01cbb0] org.jsl.wfwt.WalkieService$BinderImpl.setStationName:(Ljava/lang/String;)V │ │ -01cbc0: 5410 d902 |0000: iget-object v0, v1, Lorg/jsl/wfwt/WalkieService$BinderImpl;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02d9 │ │ -01cbc4: 7110 8105 0000 |0002: invoke-static {v0}, Lorg/jsl/wfwt/WalkieService;.access$100:(Lorg/jsl/wfwt/WalkieService;)Lorg/jsl/wfwt/Channel; // method@0581 │ │ -01cbca: 0c00 |0005: move-result-object v0 │ │ -01cbcc: 6e20 9304 2000 |0006: invoke-virtual {v0, v2}, Lorg/jsl/wfwt/Channel;.setStationName:(Ljava/lang/String;)V // method@0493 │ │ -01cbd2: 0e00 |0009: return-void │ │ +01cbb4: |[01cbb4] org.jsl.wfwt.WalkieService$BinderImpl.setStationName:(Ljava/lang/String;)V │ │ +01cbc4: 5410 d902 |0000: iget-object v0, v1, Lorg/jsl/wfwt/WalkieService$BinderImpl;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02d9 │ │ +01cbc8: 7110 8105 0000 |0002: invoke-static {v0}, Lorg/jsl/wfwt/WalkieService;.access$100:(Lorg/jsl/wfwt/WalkieService;)Lorg/jsl/wfwt/Channel; // method@0581 │ │ +01cbce: 0c00 |0005: move-result-object v0 │ │ +01cbd0: 6e20 9304 2000 |0006: invoke-virtual {v0, v2}, Lorg/jsl/wfwt/Channel;.setStationName:(Ljava/lang/String;)V // method@0493 │ │ +01cbd6: 0e00 |0009: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=79 │ │ locals : │ │ 0x0000 - 0x000a reg=1 this Lorg/jsl/wfwt/WalkieService$BinderImpl; │ │ 0x0000 - 0x000a reg=2 (null) Ljava/lang/String; │ │ │ │ @@ -17457,19 +17457,19 @@ │ │ type : '(Lorg/jsl/collider/Collider;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 3 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 8 16-bit code units │ │ -01cbd4: |[01cbd4] org.jsl.wfwt.WalkieService$ColliderThread.:(Lorg/jsl/collider/Collider;)V │ │ -01cbe4: 1a00 be00 |0000: const-string v0, "ColliderThread" // string@00be │ │ -01cbe8: 7020 d500 0100 |0002: invoke-direct {v1, v0}, Ljava/lang/Thread;.:(Ljava/lang/String;)V // method@00d5 │ │ -01cbee: 5b12 da02 |0005: iput-object v2, v1, Lorg/jsl/wfwt/WalkieService$ColliderThread;.m_collider:Lorg/jsl/collider/Collider; // field@02da │ │ -01cbf2: 0e00 |0007: return-void │ │ +01cbd8: |[01cbd8] org.jsl.wfwt.WalkieService$ColliderThread.:(Lorg/jsl/collider/Collider;)V │ │ +01cbe8: 1a00 be00 |0000: const-string v0, "ColliderThread" // string@00be │ │ +01cbec: 7020 d500 0100 |0002: invoke-direct {v1, v0}, Ljava/lang/Thread;.:(Ljava/lang/String;)V // method@00d5 │ │ +01cbf2: 5b12 da02 |0005: iput-object v2, v1, Lorg/jsl/wfwt/WalkieService$ColliderThread;.m_collider:Lorg/jsl/collider/Collider; // field@02da │ │ +01cbf6: 0e00 |0007: return-void │ │ catches : (none) │ │ positions : │ │ 0x0002 line=89 │ │ 0x0005 line=90 │ │ locals : │ │ 0x0000 - 0x0008 reg=1 this Lorg/jsl/wfwt/WalkieService$ColliderThread; │ │ 0x0000 - 0x0008 reg=2 (null) Lorg/jsl/collider/Collider; │ │ @@ -17480,26 +17480,26 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 24 16-bit code units │ │ -01cbf4: |[01cbf4] org.jsl.wfwt.WalkieService$ColliderThread.run:()V │ │ -01cc04: 7100 8205 0000 |0000: invoke-static {}, Lorg/jsl/wfwt/WalkieService;.access$200:()Ljava/lang/String; // method@0582 │ │ -01cc0a: 0c00 |0003: move-result-object v0 │ │ -01cc0c: 1a01 bb00 |0004: const-string v1, "Collider thread: start" // string@00bb │ │ -01cc10: 7120 6400 1000 |0006: invoke-static {v0, v1}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -01cc16: 5420 da02 |0009: iget-object v0, v2, Lorg/jsl/wfwt/WalkieService$ColliderThread;.m_collider:Lorg/jsl/collider/Collider; // field@02da │ │ -01cc1a: 6e10 0902 0000 |000b: invoke-virtual {v0}, Lorg/jsl/collider/Collider;.run:()V // method@0209 │ │ -01cc20: 7100 8205 0000 |000e: invoke-static {}, Lorg/jsl/wfwt/WalkieService;.access$200:()Ljava/lang/String; // method@0582 │ │ -01cc26: 0c00 |0011: move-result-object v0 │ │ -01cc28: 1a01 ba00 |0012: const-string v1, "Collider thread: done" // string@00ba │ │ -01cc2c: 7120 6400 1000 |0014: invoke-static {v0, v1}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -01cc32: 0e00 |0017: return-void │ │ +01cbf8: |[01cbf8] org.jsl.wfwt.WalkieService$ColliderThread.run:()V │ │ +01cc08: 7100 8205 0000 |0000: invoke-static {}, Lorg/jsl/wfwt/WalkieService;.access$200:()Ljava/lang/String; // method@0582 │ │ +01cc0e: 0c00 |0003: move-result-object v0 │ │ +01cc10: 1a01 bb00 |0004: const-string v1, "Collider thread: start" // string@00bb │ │ +01cc14: 7120 6400 1000 |0006: invoke-static {v0, v1}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +01cc1a: 5420 da02 |0009: iget-object v0, v2, Lorg/jsl/wfwt/WalkieService$ColliderThread;.m_collider:Lorg/jsl/collider/Collider; // field@02da │ │ +01cc1e: 6e10 0902 0000 |000b: invoke-virtual {v0}, Lorg/jsl/collider/Collider;.run:()V // method@0209 │ │ +01cc24: 7100 8205 0000 |000e: invoke-static {}, Lorg/jsl/wfwt/WalkieService;.access$200:()Ljava/lang/String; // method@0582 │ │ +01cc2a: 0c00 |0011: move-result-object v0 │ │ +01cc2c: 1a01 ba00 |0012: const-string v1, "Collider thread: done" // string@00ba │ │ +01cc30: 7120 6400 1000 |0014: invoke-static {v0, v1}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +01cc36: 0e00 |0017: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=95 │ │ 0x0009 line=96 │ │ 0x000e line=97 │ │ locals : │ │ 0x0000 - 0x0018 reg=2 this Lorg/jsl/wfwt/WalkieService$ColliderThread; │ │ @@ -17539,18 +17539,18 @@ │ │ type : '(Lorg/jsl/wfwt/WalkieService;)V' │ │ access : 0x10002 (PRIVATE CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -01cc34: |[01cc34] org.jsl.wfwt.WalkieService$DiscoveryListener.:(Lorg/jsl/wfwt/WalkieService;)V │ │ -01cc44: 5b01 db02 |0000: iput-object v1, v0, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ -01cc48: 7010 b300 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01cc4e: 0e00 |0005: return-void │ │ +01cc38: |[01cc38] org.jsl.wfwt.WalkieService$DiscoveryListener.:(Lorg/jsl/wfwt/WalkieService;)V │ │ +01cc48: 5b01 db02 |0000: iput-object v1, v0, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ +01cc4c: 7010 b300 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01cc52: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=101 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/jsl/wfwt/WalkieService$DiscoveryListener; │ │ 0x0000 - 0x0006 reg=1 (null) Lorg/jsl/wfwt/WalkieService; │ │ │ │ @@ -17559,17 +17559,17 @@ │ │ type : '(Lorg/jsl/wfwt/WalkieService;Lorg/jsl/wfwt/WalkieService$1;)V' │ │ access : 0x11000 (SYNTHETIC CONSTRUCTOR) │ │ code - │ │ registers : 3 │ │ ins : 3 │ │ outs : 2 │ │ insns size : 4 16-bit code units │ │ -01cc50: |[01cc50] org.jsl.wfwt.WalkieService$DiscoveryListener.:(Lorg/jsl/wfwt/WalkieService;Lorg/jsl/wfwt/WalkieService$1;)V │ │ -01cc60: 7020 7505 1000 |0000: invoke-direct {v0, v1}, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.:(Lorg/jsl/wfwt/WalkieService;)V // method@0575 │ │ -01cc66: 0e00 |0003: return-void │ │ +01cc54: |[01cc54] org.jsl.wfwt.WalkieService$DiscoveryListener.:(Lorg/jsl/wfwt/WalkieService;Lorg/jsl/wfwt/WalkieService$1;)V │ │ +01cc64: 7020 7505 1000 |0000: invoke-direct {v0, v1}, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.:(Lorg/jsl/wfwt/WalkieService;)V // method@0575 │ │ +01cc6a: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=101 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/jsl/wfwt/WalkieService$DiscoveryListener; │ │ 0x0000 - 0x0004 reg=1 (null) Lorg/jsl/wfwt/WalkieService; │ │ 0x0000 - 0x0004 reg=2 (null) Lorg/jsl/wfwt/WalkieService$1; │ │ @@ -17580,46 +17580,46 @@ │ │ type : '(Ljava/lang/String;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 63 16-bit code units │ │ -01cc68: |[01cc68] org.jsl.wfwt.WalkieService$DiscoveryListener.onDiscoveryStarted:(Ljava/lang/String;)V │ │ -01cc78: 7100 8205 0000 |0000: invoke-static {}, Lorg/jsl/wfwt/WalkieService;.access$200:()Ljava/lang/String; // method@0582 │ │ -01cc7e: 0c02 |0003: move-result-object v2 │ │ -01cc80: 1a00 d200 |0004: const-string v0, "Discovery started" // string@00d2 │ │ -01cc84: 7120 6400 0200 |0006: invoke-static {v2, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -01cc8a: 5412 db02 |0009: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ -01cc8e: 7110 8305 0200 |000b: invoke-static {v2}, Lorg/jsl/wfwt/WalkieService;.access$300:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/ReentrantLock; // method@0583 │ │ -01cc94: 0c02 |000e: move-result-object v2 │ │ -01cc96: 6e10 ae01 0200 |000f: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ -01cc9c: 5412 db02 |0012: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ -01cca0: 7110 8405 0200 |0014: invoke-static {v2}, Lorg/jsl/wfwt/WalkieService;.access$400:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/Condition; // method@0584 │ │ -01cca6: 0c02 |0017: move-result-object v2 │ │ -01cca8: 3902 0900 |0018: if-nez v2, 0021 // +0009 │ │ -01ccac: 5412 db02 |001a: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ -01ccb0: 1210 |001c: const/4 v0, #int 1 // #1 │ │ -01ccb2: 7120 8505 0200 |001d: invoke-static {v2, v0}, Lorg/jsl/wfwt/WalkieService;.access$502:(Lorg/jsl/wfwt/WalkieService;Z)Z // method@0585 │ │ -01ccb8: 280a |0020: goto 002a // +000a │ │ -01ccba: 5412 db02 |0021: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ -01ccbe: 7110 8605 0200 |0023: invoke-static {v2}, Lorg/jsl/wfwt/WalkieService;.access$600:(Lorg/jsl/wfwt/WalkieService;)Landroid/net/nsd/NsdManager; // method@0586 │ │ -01ccc4: 0c02 |0026: move-result-object v2 │ │ -01ccc6: 6e20 5000 1200 |0027: invoke-virtual {v2, v1}, Landroid/net/nsd/NsdManager;.stopServiceDiscovery:(Landroid/net/nsd/NsdManager$DiscoveryListener;)V // method@0050 │ │ -01cccc: 5412 db02 |002a: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ -01ccd0: 7110 8305 0200 |002c: invoke-static {v2}, Lorg/jsl/wfwt/WalkieService;.access$300:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/ReentrantLock; // method@0583 │ │ -01ccd6: 0c02 |002f: move-result-object v2 │ │ -01ccd8: 6e10 b001 0200 |0030: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -01ccde: 0e00 |0033: return-void │ │ -01cce0: 0d02 |0034: move-exception v2 │ │ -01cce2: 5410 db02 |0035: iget-object v0, v1, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ -01cce6: 7110 8305 0000 |0037: invoke-static {v0}, Lorg/jsl/wfwt/WalkieService;.access$300:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/ReentrantLock; // method@0583 │ │ -01ccec: 0c00 |003a: move-result-object v0 │ │ -01ccee: 6e10 b001 0000 |003b: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -01ccf4: 2702 |003e: throw v2 │ │ +01cc6c: |[01cc6c] org.jsl.wfwt.WalkieService$DiscoveryListener.onDiscoveryStarted:(Ljava/lang/String;)V │ │ +01cc7c: 7100 8205 0000 |0000: invoke-static {}, Lorg/jsl/wfwt/WalkieService;.access$200:()Ljava/lang/String; // method@0582 │ │ +01cc82: 0c02 |0003: move-result-object v2 │ │ +01cc84: 1a00 d200 |0004: const-string v0, "Discovery started" // string@00d2 │ │ +01cc88: 7120 6400 0200 |0006: invoke-static {v2, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +01cc8e: 5412 db02 |0009: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ +01cc92: 7110 8305 0200 |000b: invoke-static {v2}, Lorg/jsl/wfwt/WalkieService;.access$300:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/ReentrantLock; // method@0583 │ │ +01cc98: 0c02 |000e: move-result-object v2 │ │ +01cc9a: 6e10 ae01 0200 |000f: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ +01cca0: 5412 db02 |0012: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ +01cca4: 7110 8405 0200 |0014: invoke-static {v2}, Lorg/jsl/wfwt/WalkieService;.access$400:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/Condition; // method@0584 │ │ +01ccaa: 0c02 |0017: move-result-object v2 │ │ +01ccac: 3902 0900 |0018: if-nez v2, 0021 // +0009 │ │ +01ccb0: 5412 db02 |001a: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ +01ccb4: 1210 |001c: const/4 v0, #int 1 // #1 │ │ +01ccb6: 7120 8505 0200 |001d: invoke-static {v2, v0}, Lorg/jsl/wfwt/WalkieService;.access$502:(Lorg/jsl/wfwt/WalkieService;Z)Z // method@0585 │ │ +01ccbc: 280a |0020: goto 002a // +000a │ │ +01ccbe: 5412 db02 |0021: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ +01ccc2: 7110 8605 0200 |0023: invoke-static {v2}, Lorg/jsl/wfwt/WalkieService;.access$600:(Lorg/jsl/wfwt/WalkieService;)Landroid/net/nsd/NsdManager; // method@0586 │ │ +01ccc8: 0c02 |0026: move-result-object v2 │ │ +01ccca: 6e20 5000 1200 |0027: invoke-virtual {v2, v1}, Landroid/net/nsd/NsdManager;.stopServiceDiscovery:(Landroid/net/nsd/NsdManager$DiscoveryListener;)V // method@0050 │ │ +01ccd0: 5412 db02 |002a: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ +01ccd4: 7110 8305 0200 |002c: invoke-static {v2}, Lorg/jsl/wfwt/WalkieService;.access$300:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/ReentrantLock; // method@0583 │ │ +01ccda: 0c02 |002f: move-result-object v2 │ │ +01ccdc: 6e10 b001 0200 |0030: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +01cce2: 0e00 |0033: return-void │ │ +01cce4: 0d02 |0034: move-exception v2 │ │ +01cce6: 5410 db02 |0035: iget-object v0, v1, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ +01ccea: 7110 8305 0000 |0037: invoke-static {v0}, Lorg/jsl/wfwt/WalkieService;.access$300:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/ReentrantLock; // method@0583 │ │ +01ccf0: 0c00 |003a: move-result-object v0 │ │ +01ccf2: 6e10 b001 0000 |003b: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +01ccf8: 2702 |003e: throw v2 │ │ catches : 1 │ │ 0x0012 - 0x002a │ │ -> 0x0034 │ │ positions : │ │ 0x0000 line=125 │ │ 0x0009 line=126 │ │ 0x0012 line=129 │ │ @@ -17636,38 +17636,38 @@ │ │ type : '(Ljava/lang/String;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 48 16-bit code units │ │ -01cd04: |[01cd04] org.jsl.wfwt.WalkieService$DiscoveryListener.onDiscoveryStopped:(Ljava/lang/String;)V │ │ -01cd14: 7100 8205 0000 |0000: invoke-static {}, Lorg/jsl/wfwt/WalkieService;.access$200:()Ljava/lang/String; // method@0582 │ │ -01cd1a: 0c02 |0003: move-result-object v2 │ │ -01cd1c: 1a00 d300 |0004: const-string v0, "Discovery stopped" // string@00d3 │ │ -01cd20: 7120 6400 0200 |0006: invoke-static {v2, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -01cd26: 5412 db02 |0009: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ -01cd2a: 7110 8305 0200 |000b: invoke-static {v2}, Lorg/jsl/wfwt/WalkieService;.access$300:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/ReentrantLock; // method@0583 │ │ -01cd30: 0c02 |000e: move-result-object v2 │ │ -01cd32: 6e10 ae01 0200 |000f: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ -01cd38: 5412 db02 |0012: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ -01cd3c: 7110 8405 0200 |0014: invoke-static {v2}, Lorg/jsl/wfwt/WalkieService;.access$400:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/Condition; // method@0584 │ │ -01cd42: 0c02 |0017: move-result-object v2 │ │ -01cd44: 7210 a901 0200 |0018: invoke-interface {v2}, Ljava/util/concurrent/locks/Condition;.signal:()V // method@01a9 │ │ -01cd4a: 5412 db02 |001b: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ -01cd4e: 7110 8305 0200 |001d: invoke-static {v2}, Lorg/jsl/wfwt/WalkieService;.access$300:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/ReentrantLock; // method@0583 │ │ -01cd54: 0c02 |0020: move-result-object v2 │ │ -01cd56: 6e10 b001 0200 |0021: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -01cd5c: 0e00 |0024: return-void │ │ -01cd5e: 0d02 |0025: move-exception v2 │ │ -01cd60: 5410 db02 |0026: iget-object v0, v1, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ -01cd64: 7110 8305 0000 |0028: invoke-static {v0}, Lorg/jsl/wfwt/WalkieService;.access$300:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/ReentrantLock; // method@0583 │ │ -01cd6a: 0c00 |002b: move-result-object v0 │ │ -01cd6c: 6e10 b001 0000 |002c: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -01cd72: 2702 |002f: throw v2 │ │ +01cd08: |[01cd08] org.jsl.wfwt.WalkieService$DiscoveryListener.onDiscoveryStopped:(Ljava/lang/String;)V │ │ +01cd18: 7100 8205 0000 |0000: invoke-static {}, Lorg/jsl/wfwt/WalkieService;.access$200:()Ljava/lang/String; // method@0582 │ │ +01cd1e: 0c02 |0003: move-result-object v2 │ │ +01cd20: 1a00 d300 |0004: const-string v0, "Discovery stopped" // string@00d3 │ │ +01cd24: 7120 6400 0200 |0006: invoke-static {v2, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +01cd2a: 5412 db02 |0009: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ +01cd2e: 7110 8305 0200 |000b: invoke-static {v2}, Lorg/jsl/wfwt/WalkieService;.access$300:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/ReentrantLock; // method@0583 │ │ +01cd34: 0c02 |000e: move-result-object v2 │ │ +01cd36: 6e10 ae01 0200 |000f: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ +01cd3c: 5412 db02 |0012: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ +01cd40: 7110 8405 0200 |0014: invoke-static {v2}, Lorg/jsl/wfwt/WalkieService;.access$400:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/Condition; // method@0584 │ │ +01cd46: 0c02 |0017: move-result-object v2 │ │ +01cd48: 7210 a901 0200 |0018: invoke-interface {v2}, Ljava/util/concurrent/locks/Condition;.signal:()V // method@01a9 │ │ +01cd4e: 5412 db02 |001b: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ +01cd52: 7110 8305 0200 |001d: invoke-static {v2}, Lorg/jsl/wfwt/WalkieService;.access$300:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/ReentrantLock; // method@0583 │ │ +01cd58: 0c02 |0020: move-result-object v2 │ │ +01cd5a: 6e10 b001 0200 |0021: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +01cd60: 0e00 |0024: return-void │ │ +01cd62: 0d02 |0025: move-exception v2 │ │ +01cd64: 5410 db02 |0026: iget-object v0, v1, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ +01cd68: 7110 8305 0000 |0028: invoke-static {v0}, Lorg/jsl/wfwt/WalkieService;.access$300:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/ReentrantLock; // method@0583 │ │ +01cd6e: 0c00 |002b: move-result-object v0 │ │ +01cd70: 6e10 b001 0000 |002c: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +01cd76: 2702 |002f: throw v2 │ │ catches : 1 │ │ 0x0012 - 0x001b │ │ -> 0x0025 │ │ positions : │ │ 0x0000 line=142 │ │ 0x0009 line=143 │ │ 0x0012 line=146 │ │ @@ -17682,54 +17682,54 @@ │ │ type : '(Landroid/net/nsd/NsdServiceInfo;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 6 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 82 16-bit code units │ │ -01cd80: |[01cd80] org.jsl.wfwt.WalkieService$DiscoveryListener.onServiceFound:(Landroid/net/nsd/NsdServiceInfo;)V │ │ -01cd90: 1a00 0e06 |0000: const-string v0, "onServiceFound: " // string@060e │ │ -01cd94: 6e10 5500 0500 |0002: invoke-virtual {v5}, Landroid/net/nsd/NsdServiceInfo;.getServiceName:()Ljava/lang/String; // method@0055 │ │ -01cd9a: 0c01 |0005: move-result-object v1 │ │ -01cd9c: 1a02 4f00 |0006: const-string v2, ":" // string@004f │ │ -01cda0: 6e20 c200 2100 |0008: invoke-virtual {v1, v2}, Ljava/lang/String;.split:(Ljava/lang/String;)[Ljava/lang/String; // method@00c2 │ │ -01cda6: 0c01 |000b: move-result-object v1 │ │ -01cda8: 2202 6600 |000c: new-instance v2, Ljava/lang/String; // type@0066 │ │ -01cdac: 1203 |000e: const/4 v3, #int 0 // #0 │ │ -01cdae: 4601 0103 |000f: aget-object v1, v1, v3 │ │ -01cdb2: 7120 5f00 3100 |0011: invoke-static {v1, v3}, Landroid/util/Base64;.decode:(Ljava/lang/String;I)[B // method@005f │ │ -01cdb8: 0c01 |0014: move-result-object v1 │ │ -01cdba: 7020 ba00 1200 |0015: invoke-direct {v2, v1}, Ljava/lang/String;.:([B)V // method@00ba │ │ -01cdc0: 7100 8205 0000 |0018: invoke-static {}, Lorg/jsl/wfwt/WalkieService;.access$200:()Ljava/lang/String; // method@0582 │ │ -01cdc6: 0c01 |001b: move-result-object v1 │ │ -01cdc8: 2203 6700 |001c: new-instance v3, Ljava/lang/StringBuilder; // type@0067 │ │ -01cdcc: 7020 c600 0300 |001e: invoke-direct {v3, v0}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ -01cdd2: 6e20 cb00 2300 |0021: invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01cdd8: 1a00 5100 |0024: const-string v0, ": " // string@0051 │ │ -01cddc: 6e20 cb00 0300 |0026: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01cde2: 6e20 ca00 5300 |0029: invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ -01cde8: 6e10 ce00 0300 |002c: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01cdee: 0c00 |002f: move-result-object v0 │ │ -01cdf0: 7120 6400 0100 |0030: invoke-static {v1, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -01cdf6: 1a00 b300 |0033: const-string v0, "Channel_00" // string@00b3 │ │ -01cdfa: 6e20 bb00 0200 |0035: invoke-virtual {v2, v0}, Ljava/lang/String;.compareTo:(Ljava/lang/String;)I // method@00bb │ │ -01ce00: 0a00 |0038: move-result v0 │ │ -01ce02: 3900 1800 |0039: if-nez v0, 0051 // +0018 │ │ -01ce06: 5440 db02 |003b: iget-object v0, v4, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ -01ce0a: 7110 8105 0000 |003d: invoke-static {v0}, Lorg/jsl/wfwt/WalkieService;.access$100:(Lorg/jsl/wfwt/WalkieService;)Lorg/jsl/wfwt/Channel; // method@0581 │ │ -01ce10: 0c00 |0040: move-result-object v0 │ │ -01ce12: 6e20 8b04 5000 |0041: invoke-virtual {v0, v5}, Lorg/jsl/wfwt/Channel;.onServiceFound:(Landroid/net/nsd/NsdServiceInfo;)V // method@048b │ │ -01ce18: 280d |0044: goto 0051 // +000d │ │ -01ce1a: 0d05 |0045: move-exception v5 │ │ -01ce1c: 7100 8205 0000 |0046: invoke-static {}, Lorg/jsl/wfwt/WalkieService;.access$200:()Ljava/lang/String; // method@0582 │ │ -01ce22: 0c00 |0049: move-result-object v0 │ │ -01ce24: 6e10 a600 0500 |004a: invoke-virtual {v5}, Ljava/lang/IllegalArgumentException;.toString:()Ljava/lang/String; // method@00a6 │ │ -01ce2a: 0c05 |004d: move-result-object v5 │ │ -01ce2c: 7120 6600 5000 |004e: invoke-static {v0, v5}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ -01ce32: 0e00 |0051: return-void │ │ +01cd84: |[01cd84] org.jsl.wfwt.WalkieService$DiscoveryListener.onServiceFound:(Landroid/net/nsd/NsdServiceInfo;)V │ │ +01cd94: 1a00 0e06 |0000: const-string v0, "onServiceFound: " // string@060e │ │ +01cd98: 6e10 5500 0500 |0002: invoke-virtual {v5}, Landroid/net/nsd/NsdServiceInfo;.getServiceName:()Ljava/lang/String; // method@0055 │ │ +01cd9e: 0c01 |0005: move-result-object v1 │ │ +01cda0: 1a02 4f00 |0006: const-string v2, ":" // string@004f │ │ +01cda4: 6e20 c200 2100 |0008: invoke-virtual {v1, v2}, Ljava/lang/String;.split:(Ljava/lang/String;)[Ljava/lang/String; // method@00c2 │ │ +01cdaa: 0c01 |000b: move-result-object v1 │ │ +01cdac: 2202 6600 |000c: new-instance v2, Ljava/lang/String; // type@0066 │ │ +01cdb0: 1203 |000e: const/4 v3, #int 0 // #0 │ │ +01cdb2: 4601 0103 |000f: aget-object v1, v1, v3 │ │ +01cdb6: 7120 5f00 3100 |0011: invoke-static {v1, v3}, Landroid/util/Base64;.decode:(Ljava/lang/String;I)[B // method@005f │ │ +01cdbc: 0c01 |0014: move-result-object v1 │ │ +01cdbe: 7020 ba00 1200 |0015: invoke-direct {v2, v1}, Ljava/lang/String;.:([B)V // method@00ba │ │ +01cdc4: 7100 8205 0000 |0018: invoke-static {}, Lorg/jsl/wfwt/WalkieService;.access$200:()Ljava/lang/String; // method@0582 │ │ +01cdca: 0c01 |001b: move-result-object v1 │ │ +01cdcc: 2203 6700 |001c: new-instance v3, Ljava/lang/StringBuilder; // type@0067 │ │ +01cdd0: 7020 c600 0300 |001e: invoke-direct {v3, v0}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ +01cdd6: 6e20 cb00 2300 |0021: invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01cddc: 1a00 5100 |0024: const-string v0, ": " // string@0051 │ │ +01cde0: 6e20 cb00 0300 |0026: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01cde6: 6e20 ca00 5300 |0029: invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ +01cdec: 6e10 ce00 0300 |002c: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01cdf2: 0c00 |002f: move-result-object v0 │ │ +01cdf4: 7120 6400 0100 |0030: invoke-static {v1, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +01cdfa: 1a00 b300 |0033: const-string v0, "Channel_00" // string@00b3 │ │ +01cdfe: 6e20 bb00 0200 |0035: invoke-virtual {v2, v0}, Ljava/lang/String;.compareTo:(Ljava/lang/String;)I // method@00bb │ │ +01ce04: 0a00 |0038: move-result v0 │ │ +01ce06: 3900 1800 |0039: if-nez v0, 0051 // +0018 │ │ +01ce0a: 5440 db02 |003b: iget-object v0, v4, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ +01ce0e: 7110 8105 0000 |003d: invoke-static {v0}, Lorg/jsl/wfwt/WalkieService;.access$100:(Lorg/jsl/wfwt/WalkieService;)Lorg/jsl/wfwt/Channel; // method@0581 │ │ +01ce14: 0c00 |0040: move-result-object v0 │ │ +01ce16: 6e20 8b04 5000 |0041: invoke-virtual {v0, v5}, Lorg/jsl/wfwt/Channel;.onServiceFound:(Landroid/net/nsd/NsdServiceInfo;)V // method@048b │ │ +01ce1c: 280d |0044: goto 0051 // +000d │ │ +01ce1e: 0d05 |0045: move-exception v5 │ │ +01ce20: 7100 8205 0000 |0046: invoke-static {}, Lorg/jsl/wfwt/WalkieService;.access$200:()Ljava/lang/String; // method@0582 │ │ +01ce26: 0c00 |0049: move-result-object v0 │ │ +01ce28: 6e10 a600 0500 |004a: invoke-virtual {v5}, Ljava/lang/IllegalArgumentException;.toString:()Ljava/lang/String; // method@00a6 │ │ +01ce2e: 0c05 |004d: move-result-object v5 │ │ +01ce30: 7120 6600 5000 |004e: invoke-static {v0, v5}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ +01ce36: 0e00 |0051: return-void │ │ catches : 1 │ │ 0x0002 - 0x0044 │ │ Ljava/lang/IllegalArgumentException; -> 0x0045 │ │ positions : │ │ 0x0002 line=158 │ │ 0x000c line=159 │ │ 0x0018 line=160 │ │ @@ -17745,56 +17745,56 @@ │ │ type : '(Landroid/net/nsd/NsdServiceInfo;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 6 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 87 16-bit code units │ │ -01ce40: |[01ce40] org.jsl.wfwt.WalkieService$DiscoveryListener.onServiceLost:(Landroid/net/nsd/NsdServiceInfo;)V │ │ -01ce50: 1a00 9006 |0000: const-string v0, "service lost: " // string@0690 │ │ -01ce54: 6e10 5500 0500 |0002: invoke-virtual {v5}, Landroid/net/nsd/NsdServiceInfo;.getServiceName:()Ljava/lang/String; // method@0055 │ │ -01ce5a: 0c01 |0005: move-result-object v1 │ │ -01ce5c: 1a02 4f00 |0006: const-string v2, ":" // string@004f │ │ -01ce60: 6e20 c200 2100 |0008: invoke-virtual {v1, v2}, Ljava/lang/String;.split:(Ljava/lang/String;)[Ljava/lang/String; // method@00c2 │ │ -01ce66: 0c01 |000b: move-result-object v1 │ │ -01ce68: 2202 6600 |000c: new-instance v2, Ljava/lang/String; // type@0066 │ │ -01ce6c: 1203 |000e: const/4 v3, #int 0 // #0 │ │ -01ce6e: 4601 0103 |000f: aget-object v1, v1, v3 │ │ -01ce72: 7120 5f00 3100 |0011: invoke-static {v1, v3}, Landroid/util/Base64;.decode:(Ljava/lang/String;I)[B // method@005f │ │ -01ce78: 0c01 |0014: move-result-object v1 │ │ -01ce7a: 7020 ba00 1200 |0015: invoke-direct {v2, v1}, Ljava/lang/String;.:([B)V // method@00ba │ │ -01ce80: 7100 8205 0000 |0018: invoke-static {}, Lorg/jsl/wfwt/WalkieService;.access$200:()Ljava/lang/String; // method@0582 │ │ -01ce86: 0c01 |001b: move-result-object v1 │ │ -01ce88: 2203 6700 |001c: new-instance v3, Ljava/lang/StringBuilder; // type@0067 │ │ -01ce8c: 7020 c600 0300 |001e: invoke-direct {v3, v0}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ -01ce92: 6e20 cb00 2300 |0021: invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01ce98: 1a00 0800 |0024: const-string v0, " [" // string@0008 │ │ -01ce9c: 6e20 cb00 0300 |0026: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01cea2: 6e20 ca00 5300 |0029: invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ -01cea8: 1a00 9c03 |002c: const-string v0, "]" // string@039c │ │ -01ceac: 6e20 cb00 0300 |002e: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01ceb2: 6e10 ce00 0300 |0031: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01ceb8: 0c00 |0034: move-result-object v0 │ │ -01ceba: 7120 6400 0100 |0035: invoke-static {v1, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -01cec0: 1a00 b300 |0038: const-string v0, "Channel_00" // string@00b3 │ │ -01cec4: 6e20 bb00 0200 |003a: invoke-virtual {v2, v0}, Ljava/lang/String;.compareTo:(Ljava/lang/String;)I // method@00bb │ │ -01ceca: 0a00 |003d: move-result v0 │ │ -01cecc: 3900 1800 |003e: if-nez v0, 0056 // +0018 │ │ -01ced0: 5440 db02 |0040: iget-object v0, v4, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ -01ced4: 7110 8105 0000 |0042: invoke-static {v0}, Lorg/jsl/wfwt/WalkieService;.access$100:(Lorg/jsl/wfwt/WalkieService;)Lorg/jsl/wfwt/Channel; // method@0581 │ │ -01ceda: 0c00 |0045: move-result-object v0 │ │ -01cedc: 6e20 8c04 5000 |0046: invoke-virtual {v0, v5}, Lorg/jsl/wfwt/Channel;.onServiceLost:(Landroid/net/nsd/NsdServiceInfo;)V // method@048c │ │ -01cee2: 280d |0049: goto 0056 // +000d │ │ -01cee4: 0d05 |004a: move-exception v5 │ │ -01cee6: 7100 8205 0000 |004b: invoke-static {}, Lorg/jsl/wfwt/WalkieService;.access$200:()Ljava/lang/String; // method@0582 │ │ -01ceec: 0c00 |004e: move-result-object v0 │ │ -01ceee: 6e10 a600 0500 |004f: invoke-virtual {v5}, Ljava/lang/IllegalArgumentException;.toString:()Ljava/lang/String; // method@00a6 │ │ -01cef4: 0c05 |0052: move-result-object v5 │ │ -01cef6: 7120 6600 5000 |0053: invoke-static {v0, v5}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ -01cefc: 0e00 |0056: return-void │ │ +01ce44: |[01ce44] org.jsl.wfwt.WalkieService$DiscoveryListener.onServiceLost:(Landroid/net/nsd/NsdServiceInfo;)V │ │ +01ce54: 1a00 9006 |0000: const-string v0, "service lost: " // string@0690 │ │ +01ce58: 6e10 5500 0500 |0002: invoke-virtual {v5}, Landroid/net/nsd/NsdServiceInfo;.getServiceName:()Ljava/lang/String; // method@0055 │ │ +01ce5e: 0c01 |0005: move-result-object v1 │ │ +01ce60: 1a02 4f00 |0006: const-string v2, ":" // string@004f │ │ +01ce64: 6e20 c200 2100 |0008: invoke-virtual {v1, v2}, Ljava/lang/String;.split:(Ljava/lang/String;)[Ljava/lang/String; // method@00c2 │ │ +01ce6a: 0c01 |000b: move-result-object v1 │ │ +01ce6c: 2202 6600 |000c: new-instance v2, Ljava/lang/String; // type@0066 │ │ +01ce70: 1203 |000e: const/4 v3, #int 0 // #0 │ │ +01ce72: 4601 0103 |000f: aget-object v1, v1, v3 │ │ +01ce76: 7120 5f00 3100 |0011: invoke-static {v1, v3}, Landroid/util/Base64;.decode:(Ljava/lang/String;I)[B // method@005f │ │ +01ce7c: 0c01 |0014: move-result-object v1 │ │ +01ce7e: 7020 ba00 1200 |0015: invoke-direct {v2, v1}, Ljava/lang/String;.:([B)V // method@00ba │ │ +01ce84: 7100 8205 0000 |0018: invoke-static {}, Lorg/jsl/wfwt/WalkieService;.access$200:()Ljava/lang/String; // method@0582 │ │ +01ce8a: 0c01 |001b: move-result-object v1 │ │ +01ce8c: 2203 6700 |001c: new-instance v3, Ljava/lang/StringBuilder; // type@0067 │ │ +01ce90: 7020 c600 0300 |001e: invoke-direct {v3, v0}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ +01ce96: 6e20 cb00 2300 |0021: invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01ce9c: 1a00 0800 |0024: const-string v0, " [" // string@0008 │ │ +01cea0: 6e20 cb00 0300 |0026: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01cea6: 6e20 ca00 5300 |0029: invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ +01ceac: 1a00 9c03 |002c: const-string v0, "]" // string@039c │ │ +01ceb0: 6e20 cb00 0300 |002e: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01ceb6: 6e10 ce00 0300 |0031: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01cebc: 0c00 |0034: move-result-object v0 │ │ +01cebe: 7120 6400 0100 |0035: invoke-static {v1, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +01cec4: 1a00 b300 |0038: const-string v0, "Channel_00" // string@00b3 │ │ +01cec8: 6e20 bb00 0200 |003a: invoke-virtual {v2, v0}, Ljava/lang/String;.compareTo:(Ljava/lang/String;)I // method@00bb │ │ +01cece: 0a00 |003d: move-result v0 │ │ +01ced0: 3900 1800 |003e: if-nez v0, 0056 // +0018 │ │ +01ced4: 5440 db02 |0040: iget-object v0, v4, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ +01ced8: 7110 8105 0000 |0042: invoke-static {v0}, Lorg/jsl/wfwt/WalkieService;.access$100:(Lorg/jsl/wfwt/WalkieService;)Lorg/jsl/wfwt/Channel; // method@0581 │ │ +01cede: 0c00 |0045: move-result-object v0 │ │ +01cee0: 6e20 8c04 5000 |0046: invoke-virtual {v0, v5}, Lorg/jsl/wfwt/Channel;.onServiceLost:(Landroid/net/nsd/NsdServiceInfo;)V // method@048c │ │ +01cee6: 280d |0049: goto 0056 // +000d │ │ +01cee8: 0d05 |004a: move-exception v5 │ │ +01ceea: 7100 8205 0000 |004b: invoke-static {}, Lorg/jsl/wfwt/WalkieService;.access$200:()Ljava/lang/String; // method@0582 │ │ +01cef0: 0c00 |004e: move-result-object v0 │ │ +01cef2: 6e10 a600 0500 |004f: invoke-virtual {v5}, Ljava/lang/IllegalArgumentException;.toString:()Ljava/lang/String; // method@00a6 │ │ +01cef8: 0c05 |0052: move-result-object v5 │ │ +01cefa: 7120 6600 5000 |0053: invoke-static {v0, v5}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ +01cf00: 0e00 |0056: return-void │ │ catches : 1 │ │ 0x0002 - 0x0049 │ │ Ljava/lang/IllegalArgumentException; -> 0x004a │ │ positions : │ │ 0x0002 line=177 │ │ 0x000c line=178 │ │ 0x0018 line=179 │ │ @@ -17810,47 +17810,47 @@ │ │ type : '(Ljava/lang/String;I)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 5 │ │ ins : 3 │ │ outs : 2 │ │ insns size : 68 16-bit code units │ │ -01cf0c: |[01cf0c] org.jsl.wfwt.WalkieService$DiscoveryListener.onStartDiscoveryFailed:(Ljava/lang/String;I)V │ │ -01cf1c: 7100 8205 0000 |0000: invoke-static {}, Lorg/jsl/wfwt/WalkieService;.access$200:()Ljava/lang/String; // method@0582 │ │ -01cf22: 0c03 |0003: move-result-object v3 │ │ -01cf24: 2200 6700 |0004: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -01cf28: 1a01 0f03 |0006: const-string v1, "Start discovery failed: " // string@030f │ │ -01cf2c: 7020 c600 1000 |0008: invoke-direct {v0, v1}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ -01cf32: 6e20 c800 4000 |000b: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ -01cf38: 6e10 ce00 0000 |000e: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01cf3e: 0c04 |0011: move-result-object v4 │ │ -01cf40: 7120 6200 4300 |0012: invoke-static {v3, v4}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ -01cf46: 5423 db02 |0015: iget-object v3, v2, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ -01cf4a: 7110 8305 0300 |0017: invoke-static {v3}, Lorg/jsl/wfwt/WalkieService;.access$300:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/ReentrantLock; // method@0583 │ │ -01cf50: 0c03 |001a: move-result-object v3 │ │ -01cf52: 6e10 ae01 0300 |001b: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ -01cf58: 5423 db02 |001e: iget-object v3, v2, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ -01cf5c: 7110 8405 0300 |0020: invoke-static {v3}, Lorg/jsl/wfwt/WalkieService;.access$400:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/Condition; // method@0584 │ │ -01cf62: 0c03 |0023: move-result-object v3 │ │ -01cf64: 3803 0b00 |0024: if-eqz v3, 002f // +000b │ │ -01cf68: 5423 db02 |0026: iget-object v3, v2, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ -01cf6c: 7110 8405 0300 |0028: invoke-static {v3}, Lorg/jsl/wfwt/WalkieService;.access$400:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/Condition; // method@0584 │ │ -01cf72: 0c03 |002b: move-result-object v3 │ │ -01cf74: 7210 a901 0300 |002c: invoke-interface {v3}, Ljava/util/concurrent/locks/Condition;.signal:()V // method@01a9 │ │ -01cf7a: 5423 db02 |002f: iget-object v3, v2, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ -01cf7e: 7110 8305 0300 |0031: invoke-static {v3}, Lorg/jsl/wfwt/WalkieService;.access$300:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/ReentrantLock; // method@0583 │ │ -01cf84: 0c03 |0034: move-result-object v3 │ │ -01cf86: 6e10 b001 0300 |0035: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -01cf8c: 0e00 |0038: return-void │ │ -01cf8e: 0d03 |0039: move-exception v3 │ │ -01cf90: 5424 db02 |003a: iget-object v4, v2, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ -01cf94: 7110 8305 0400 |003c: invoke-static {v4}, Lorg/jsl/wfwt/WalkieService;.access$300:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/ReentrantLock; // method@0583 │ │ -01cf9a: 0c04 |003f: move-result-object v4 │ │ -01cf9c: 6e10 b001 0400 |0040: invoke-virtual {v4}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -01cfa2: 2703 |0043: throw v3 │ │ +01cf10: |[01cf10] org.jsl.wfwt.WalkieService$DiscoveryListener.onStartDiscoveryFailed:(Ljava/lang/String;I)V │ │ +01cf20: 7100 8205 0000 |0000: invoke-static {}, Lorg/jsl/wfwt/WalkieService;.access$200:()Ljava/lang/String; // method@0582 │ │ +01cf26: 0c03 |0003: move-result-object v3 │ │ +01cf28: 2200 6700 |0004: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +01cf2c: 1a01 0f03 |0006: const-string v1, "Start discovery failed: " // string@030f │ │ +01cf30: 7020 c600 1000 |0008: invoke-direct {v0, v1}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ +01cf36: 6e20 c800 4000 |000b: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ +01cf3c: 6e10 ce00 0000 |000e: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01cf42: 0c04 |0011: move-result-object v4 │ │ +01cf44: 7120 6200 4300 |0012: invoke-static {v3, v4}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ +01cf4a: 5423 db02 |0015: iget-object v3, v2, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ +01cf4e: 7110 8305 0300 |0017: invoke-static {v3}, Lorg/jsl/wfwt/WalkieService;.access$300:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/ReentrantLock; // method@0583 │ │ +01cf54: 0c03 |001a: move-result-object v3 │ │ +01cf56: 6e10 ae01 0300 |001b: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ +01cf5c: 5423 db02 |001e: iget-object v3, v2, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ +01cf60: 7110 8405 0300 |0020: invoke-static {v3}, Lorg/jsl/wfwt/WalkieService;.access$400:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/Condition; // method@0584 │ │ +01cf66: 0c03 |0023: move-result-object v3 │ │ +01cf68: 3803 0b00 |0024: if-eqz v3, 002f // +000b │ │ +01cf6c: 5423 db02 |0026: iget-object v3, v2, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ +01cf70: 7110 8405 0300 |0028: invoke-static {v3}, Lorg/jsl/wfwt/WalkieService;.access$400:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/Condition; // method@0584 │ │ +01cf76: 0c03 |002b: move-result-object v3 │ │ +01cf78: 7210 a901 0300 |002c: invoke-interface {v3}, Ljava/util/concurrent/locks/Condition;.signal:()V // method@01a9 │ │ +01cf7e: 5423 db02 |002f: iget-object v3, v2, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ +01cf82: 7110 8305 0300 |0031: invoke-static {v3}, Lorg/jsl/wfwt/WalkieService;.access$300:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/ReentrantLock; // method@0583 │ │ +01cf88: 0c03 |0034: move-result-object v3 │ │ +01cf8a: 6e10 b001 0300 |0035: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +01cf90: 0e00 |0038: return-void │ │ +01cf92: 0d03 |0039: move-exception v3 │ │ +01cf94: 5424 db02 |003a: iget-object v4, v2, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.this$0:Lorg/jsl/wfwt/WalkieService; // field@02db │ │ +01cf98: 7110 8305 0400 |003c: invoke-static {v4}, Lorg/jsl/wfwt/WalkieService;.access$300:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/ReentrantLock; // method@0583 │ │ +01cf9e: 0c04 |003f: move-result-object v4 │ │ +01cfa0: 6e10 b001 0400 |0040: invoke-virtual {v4}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +01cfa6: 2703 |0043: throw v3 │ │ catches : 1 │ │ 0x001e - 0x002f │ │ -> 0x0039 │ │ positions : │ │ 0x0000 line=105 │ │ 0x0015 line=106 │ │ 0x001e line=109 │ │ @@ -17867,25 +17867,25 @@ │ │ type : '(Ljava/lang/String;I)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 5 │ │ ins : 3 │ │ outs : 2 │ │ insns size : 22 16-bit code units │ │ -01cfb0: |[01cfb0] org.jsl.wfwt.WalkieService$DiscoveryListener.onStopDiscoveryFailed:(Ljava/lang/String;I)V │ │ -01cfc0: 7100 8205 0000 |0000: invoke-static {}, Lorg/jsl/wfwt/WalkieService;.access$200:()Ljava/lang/String; // method@0582 │ │ -01cfc6: 0c03 |0003: move-result-object v3 │ │ -01cfc8: 2200 6700 |0004: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -01cfcc: 1a01 1b03 |0006: const-string v1, "Stop discovery failed: " // string@031b │ │ -01cfd0: 7020 c600 1000 |0008: invoke-direct {v0, v1}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ -01cfd6: 6e20 c800 4000 |000b: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ -01cfdc: 6e10 ce00 0000 |000e: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01cfe2: 0c04 |0011: move-result-object v4 │ │ -01cfe4: 7120 6200 4300 |0012: invoke-static {v3, v4}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ -01cfea: 0e00 |0015: return-void │ │ +01cfb4: |[01cfb4] org.jsl.wfwt.WalkieService$DiscoveryListener.onStopDiscoveryFailed:(Ljava/lang/String;I)V │ │ +01cfc4: 7100 8205 0000 |0000: invoke-static {}, Lorg/jsl/wfwt/WalkieService;.access$200:()Ljava/lang/String; // method@0582 │ │ +01cfca: 0c03 |0003: move-result-object v3 │ │ +01cfcc: 2200 6700 |0004: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +01cfd0: 1a01 1b03 |0006: const-string v1, "Stop discovery failed: " // string@031b │ │ +01cfd4: 7020 c600 1000 |0008: invoke-direct {v0, v1}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ +01cfda: 6e20 c800 4000 |000b: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ +01cfe0: 6e10 ce00 0000 |000e: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01cfe6: 0c04 |0011: move-result-object v4 │ │ +01cfe8: 7120 6200 4300 |0012: invoke-static {v3, v4}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ +01cfee: 0e00 |0015: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=120 │ │ locals : │ │ 0x0000 - 0x0016 reg=2 this Lorg/jsl/wfwt/WalkieService$DiscoveryListener; │ │ 0x0000 - 0x0016 reg=3 (null) Ljava/lang/String; │ │ 0x0000 - 0x0016 reg=4 (null) I │ │ @@ -18015,38 +18015,38 @@ │ │ type : '()V' │ │ access : 0x10008 (STATIC CONSTRUCTOR) │ │ code - │ │ registers : 0 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 1 16-bit code units │ │ -01d36c: |[01d36c] org.jsl.wfwt.WalkieService.:()V │ │ -01d37c: 0e00 |0000: return-void │ │ +01d370: |[01d370] org.jsl.wfwt.WalkieService.:()V │ │ +01d380: 0e00 |0000: return-void │ │ catches : (none) │ │ positions : │ │ locals : │ │ │ │ #1 : (in Lorg/jsl/wfwt/WalkieService;) │ │ name : '' │ │ type : '()V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 18 16-bit code units │ │ -01d380: |[01d380] org.jsl.wfwt.WalkieService.:()V │ │ -01d390: 7010 1b00 0100 |0000: invoke-direct {v1}, Landroid/app/Service;.:()V // method@001b │ │ -01d396: 2200 4f01 |0003: new-instance v0, Lorg/jsl/wfwt/WalkieService$BinderImpl; // type@014f │ │ -01d39a: 7020 6d05 1000 |0005: invoke-direct {v0, v1}, Lorg/jsl/wfwt/WalkieService$BinderImpl;.:(Lorg/jsl/wfwt/WalkieService;)V // method@056d │ │ -01d3a0: 5b10 e202 |0008: iput-object v0, v1, Lorg/jsl/wfwt/WalkieService;.m_binder:Landroid/os/Binder; // field@02e2 │ │ -01d3a4: 2200 a400 |000a: new-instance v0, Ljava/util/concurrent/locks/ReentrantLock; // type@00a4 │ │ -01d3a8: 7010 ad01 0000 |000c: invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantLock;.:()V // method@01ad │ │ -01d3ae: 5b10 e902 |000f: iput-object v0, v1, Lorg/jsl/wfwt/WalkieService;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02e9 │ │ -01d3b2: 0e00 |0011: return-void │ │ +01d384: |[01d384] org.jsl.wfwt.WalkieService.:()V │ │ +01d394: 7010 1b00 0100 |0000: invoke-direct {v1}, Landroid/app/Service;.:()V // method@001b │ │ +01d39a: 2200 4f01 |0003: new-instance v0, Lorg/jsl/wfwt/WalkieService$BinderImpl; // type@014f │ │ +01d39e: 7020 6d05 1000 |0005: invoke-direct {v0, v1}, Lorg/jsl/wfwt/WalkieService$BinderImpl;.:(Lorg/jsl/wfwt/WalkieService;)V // method@056d │ │ +01d3a4: 5b10 e202 |0008: iput-object v0, v1, Lorg/jsl/wfwt/WalkieService;.m_binder:Landroid/os/Binder; // field@02e2 │ │ +01d3a8: 2200 a400 |000a: new-instance v0, Ljava/util/concurrent/locks/ReentrantLock; // type@00a4 │ │ +01d3ac: 7010 ad01 0000 |000c: invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantLock;.:()V // method@01ad │ │ +01d3b2: 5b10 e902 |000f: iput-object v0, v1, Lorg/jsl/wfwt/WalkieService;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02e9 │ │ +01d3b6: 0e00 |0011: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=226 │ │ 0x0003 line=227 │ │ 0x000a line=228 │ │ locals : │ │ 0x0000 - 0x0012 reg=1 this Lorg/jsl/wfwt/WalkieService; │ │ @@ -18056,17 +18056,17 @@ │ │ type : '(Lorg/jsl/wfwt/WalkieService;)Lorg/jsl/wfwt/AudioRecorder;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01d33c: |[01d33c] org.jsl.wfwt.WalkieService.access$000:(Lorg/jsl/wfwt/WalkieService;)Lorg/jsl/wfwt/AudioRecorder; │ │ -01d34c: 5400 e102 |0000: iget-object v0, v0, Lorg/jsl/wfwt/WalkieService;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@02e1 │ │ -01d350: 1100 |0002: return-object v0 │ │ +01d340: |[01d340] org.jsl.wfwt.WalkieService.access$000:(Lorg/jsl/wfwt/WalkieService;)Lorg/jsl/wfwt/AudioRecorder; │ │ +01d350: 5400 e102 |0000: iget-object v0, v0, Lorg/jsl/wfwt/WalkieService;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@02e1 │ │ +01d354: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=42 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/WalkieService; │ │ │ │ #3 : (in Lorg/jsl/wfwt/WalkieService;) │ │ @@ -18074,17 +18074,17 @@ │ │ type : '(Lorg/jsl/wfwt/WalkieService;)Lorg/jsl/wfwt/Channel;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01d354: |[01d354] org.jsl.wfwt.WalkieService.access$100:(Lorg/jsl/wfwt/WalkieService;)Lorg/jsl/wfwt/Channel; │ │ -01d364: 5400 e302 |0000: iget-object v0, v0, Lorg/jsl/wfwt/WalkieService;.m_channel:Lorg/jsl/wfwt/Channel; // field@02e3 │ │ -01d368: 1100 |0002: return-object v0 │ │ +01d358: |[01d358] org.jsl.wfwt.WalkieService.access$100:(Lorg/jsl/wfwt/WalkieService;)Lorg/jsl/wfwt/Channel; │ │ +01d368: 5400 e302 |0000: iget-object v0, v0, Lorg/jsl/wfwt/WalkieService;.m_channel:Lorg/jsl/wfwt/Channel; // field@02e3 │ │ +01d36c: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=42 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/WalkieService; │ │ │ │ #4 : (in Lorg/jsl/wfwt/WalkieService;) │ │ @@ -18092,34 +18092,34 @@ │ │ type : '()Ljava/lang/String;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01d24c: |[01d24c] org.jsl.wfwt.WalkieService.access$200:()Ljava/lang/String; │ │ -01d25c: 6200 dc02 |0000: sget-object v0, Lorg/jsl/wfwt/WalkieService;.LOG_TAG:Ljava/lang/String; // field@02dc │ │ -01d260: 1100 |0002: return-object v0 │ │ +01d250: |[01d250] org.jsl.wfwt.WalkieService.access$200:()Ljava/lang/String; │ │ +01d260: 6200 dc02 |0000: sget-object v0, Lorg/jsl/wfwt/WalkieService;.LOG_TAG:Ljava/lang/String; // field@02dc │ │ +01d264: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=42 │ │ locals : │ │ │ │ #5 : (in Lorg/jsl/wfwt/WalkieService;) │ │ name : 'access$300' │ │ type : '(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/ReentrantLock;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01d324: |[01d324] org.jsl.wfwt.WalkieService.access$300:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/ReentrantLock; │ │ -01d334: 5400 e902 |0000: iget-object v0, v0, Lorg/jsl/wfwt/WalkieService;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02e9 │ │ -01d338: 1100 |0002: return-object v0 │ │ +01d328: |[01d328] org.jsl.wfwt.WalkieService.access$300:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/ReentrantLock; │ │ +01d338: 5400 e902 |0000: iget-object v0, v0, Lorg/jsl/wfwt/WalkieService;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02e9 │ │ +01d33c: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=42 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/WalkieService; │ │ │ │ #6 : (in Lorg/jsl/wfwt/WalkieService;) │ │ @@ -18127,17 +18127,17 @@ │ │ type : '(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/Condition;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01d30c: |[01d30c] org.jsl.wfwt.WalkieService.access$400:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/Condition; │ │ -01d31c: 5400 e602 |0000: iget-object v0, v0, Lorg/jsl/wfwt/WalkieService;.m_cond:Ljava/util/concurrent/locks/Condition; // field@02e6 │ │ -01d320: 1100 |0002: return-object v0 │ │ +01d310: |[01d310] org.jsl.wfwt.WalkieService.access$400:(Lorg/jsl/wfwt/WalkieService;)Ljava/util/concurrent/locks/Condition; │ │ +01d320: 5400 e602 |0000: iget-object v0, v0, Lorg/jsl/wfwt/WalkieService;.m_cond:Ljava/util/concurrent/locks/Condition; // field@02e6 │ │ +01d324: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=42 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/WalkieService; │ │ │ │ #7 : (in Lorg/jsl/wfwt/WalkieService;) │ │ @@ -18145,17 +18145,17 @@ │ │ type : '(Lorg/jsl/wfwt/WalkieService;Z)Z' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01d028: |[01d028] org.jsl.wfwt.WalkieService.access$502:(Lorg/jsl/wfwt/WalkieService;Z)Z │ │ -01d038: 5c01 e802 |0000: iput-boolean v1, v0, Lorg/jsl/wfwt/WalkieService;.m_discoveryStarted:Z // field@02e8 │ │ -01d03c: 0f01 |0002: return v1 │ │ +01d02c: |[01d02c] org.jsl.wfwt.WalkieService.access$502:(Lorg/jsl/wfwt/WalkieService;Z)Z │ │ +01d03c: 5c01 e802 |0000: iput-boolean v1, v0, Lorg/jsl/wfwt/WalkieService;.m_discoveryStarted:Z // field@02e8 │ │ +01d040: 0f01 |0002: return v1 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=42 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/WalkieService; │ │ 0x0000 - 0x0003 reg=1 (null) Z │ │ │ │ @@ -18164,17 +18164,17 @@ │ │ type : '(Lorg/jsl/wfwt/WalkieService;)Landroid/net/nsd/NsdManager;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01cfec: |[01cfec] org.jsl.wfwt.WalkieService.access$600:(Lorg/jsl/wfwt/WalkieService;)Landroid/net/nsd/NsdManager; │ │ -01cffc: 5400 ea02 |0000: iget-object v0, v0, Lorg/jsl/wfwt/WalkieService;.m_nsdManager:Landroid/net/nsd/NsdManager; // field@02ea │ │ -01d000: 1100 |0002: return-object v0 │ │ +01cff0: |[01cff0] org.jsl.wfwt.WalkieService.access$600:(Lorg/jsl/wfwt/WalkieService;)Landroid/net/nsd/NsdManager; │ │ +01d000: 5400 ea02 |0000: iget-object v0, v0, Lorg/jsl/wfwt/WalkieService;.m_nsdManager:Landroid/net/nsd/NsdManager; // field@02ea │ │ +01d004: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=42 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/WalkieService; │ │ │ │ #9 : (in Lorg/jsl/wfwt/WalkieService;) │ │ @@ -18182,54 +18182,54 @@ │ │ type : '(Landroid/content/ContentResolver;)Ljava/lang/String;' │ │ access : 0x000a (PRIVATE STATIC) │ │ code - │ │ registers : 7 │ │ ins : 1 │ │ outs : 3 │ │ insns size : 70 16-bit code units │ │ -01d264: |[01d264] org.jsl.wfwt.WalkieService.getDeviceID:(Landroid/content/ContentResolver;)Ljava/lang/String; │ │ -01d274: 1a00 eb03 |0000: const-string v0, "android_id" // string@03eb │ │ -01d278: 7120 5d00 0600 |0002: invoke-static {v6, v0}, Landroid/provider/Settings$Secure;.getString:(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String; // method@005d │ │ -01d27e: 0c06 |0005: move-result-object v6 │ │ -01d280: 1600 0000 |0006: const-wide/16 v0, #int 0 // #0 │ │ -01d284: 3806 1800 |0008: if-eqz v6, 0020 // +0018 │ │ -01d288: 2202 6b00 |000a: new-instance v2, Ljava/math/BigInteger; // type@006b │ │ -01d28c: 1303 1000 |000c: const/16 v3, #int 16 // #10 │ │ -01d290: 7030 dd00 6203 |000e: invoke-direct {v2, v6, v3}, Ljava/math/BigInteger;.:(Ljava/lang/String;I)V // method@00dd │ │ -01d296: 6e10 de00 0200 |0011: invoke-virtual {v2}, Ljava/math/BigInteger;.longValue:()J // method@00de │ │ -01d29c: 0b02 |0014: move-result-wide v2 │ │ -01d29e: 280c |0015: goto 0021 // +000c │ │ -01d2a0: 0d06 |0016: move-exception v6 │ │ -01d2a2: 6202 dc02 |0017: sget-object v2, Lorg/jsl/wfwt/WalkieService;.LOG_TAG:Ljava/lang/String; // field@02dc │ │ -01d2a6: 6e10 b200 0600 |0019: invoke-virtual {v6}, Ljava/lang/NumberFormatException;.toString:()Ljava/lang/String; // method@00b2 │ │ -01d2ac: 0c06 |001c: move-result-object v6 │ │ -01d2ae: 7120 6400 6200 |001d: invoke-static {v2, v6}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -01d2b4: 0402 |0020: move-wide v2, v0 │ │ -01d2b6: 3106 0200 |0021: cmp-long v6, v2, v0 │ │ -01d2ba: 3906 0b00 |0023: if-nez v6, 002e // +000b │ │ -01d2be: 2206 9600 |0025: new-instance v6, Ljava/util/Random; // type@0096 │ │ -01d2c2: 7010 7501 0600 |0027: invoke-direct {v6}, Ljava/util/Random;.:()V // method@0175 │ │ -01d2c8: 6e10 7601 0600 |002a: invoke-virtual {v6}, Ljava/util/Random;.nextLong:()J // method@0176 │ │ -01d2ce: 0b02 |002d: move-result-wide v2 │ │ -01d2d0: 1306 0800 |002e: const/16 v6, #int 8 // #8 │ │ -01d2d4: 2360 5701 |0030: new-array v0, v6, [B // type@0157 │ │ -01d2d8: 1271 |0032: const/4 v1, #int 7 // #7 │ │ -01d2da: 3a01 0d00 |0033: if-ltz v1, 0040 // +000d │ │ -01d2de: 1604 ff00 |0035: const-wide/16 v4, #int 255 // #ff │ │ -01d2e2: c024 |0037: and-long/2addr v4, v2 │ │ -01d2e4: 8445 |0038: long-to-int v5, v4 │ │ -01d2e6: 8d54 |0039: int-to-byte v4, v5 │ │ -01d2e8: 4f04 0001 |003a: aput-byte v4, v0, v1 │ │ -01d2ec: c462 |003c: shr-long/2addr v2, v6 │ │ -01d2ee: d801 01ff |003d: add-int/lit8 v1, v1, #int -1 // #ff │ │ -01d2f2: 28f4 |003f: goto 0033 // -000c │ │ -01d2f4: 1236 |0040: const/4 v6, #int 3 // #3 │ │ -01d2f6: 7120 6000 6000 |0041: invoke-static {v0, v6}, Landroid/util/Base64;.encodeToString:([BI)Ljava/lang/String; // method@0060 │ │ -01d2fc: 0c06 |0044: move-result-object v6 │ │ -01d2fe: 1106 |0045: return-object v6 │ │ +01d268: |[01d268] org.jsl.wfwt.WalkieService.getDeviceID:(Landroid/content/ContentResolver;)Ljava/lang/String; │ │ +01d278: 1a00 eb03 |0000: const-string v0, "android_id" // string@03eb │ │ +01d27c: 7120 5d00 0600 |0002: invoke-static {v6, v0}, Landroid/provider/Settings$Secure;.getString:(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String; // method@005d │ │ +01d282: 0c06 |0005: move-result-object v6 │ │ +01d284: 1600 0000 |0006: const-wide/16 v0, #int 0 // #0 │ │ +01d288: 3806 1800 |0008: if-eqz v6, 0020 // +0018 │ │ +01d28c: 2202 6b00 |000a: new-instance v2, Ljava/math/BigInteger; // type@006b │ │ +01d290: 1303 1000 |000c: const/16 v3, #int 16 // #10 │ │ +01d294: 7030 dd00 6203 |000e: invoke-direct {v2, v6, v3}, Ljava/math/BigInteger;.:(Ljava/lang/String;I)V // method@00dd │ │ +01d29a: 6e10 de00 0200 |0011: invoke-virtual {v2}, Ljava/math/BigInteger;.longValue:()J // method@00de │ │ +01d2a0: 0b02 |0014: move-result-wide v2 │ │ +01d2a2: 280c |0015: goto 0021 // +000c │ │ +01d2a4: 0d06 |0016: move-exception v6 │ │ +01d2a6: 6202 dc02 |0017: sget-object v2, Lorg/jsl/wfwt/WalkieService;.LOG_TAG:Ljava/lang/String; // field@02dc │ │ +01d2aa: 6e10 b200 0600 |0019: invoke-virtual {v6}, Ljava/lang/NumberFormatException;.toString:()Ljava/lang/String; // method@00b2 │ │ +01d2b0: 0c06 |001c: move-result-object v6 │ │ +01d2b2: 7120 6400 6200 |001d: invoke-static {v2, v6}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +01d2b8: 0402 |0020: move-wide v2, v0 │ │ +01d2ba: 3106 0200 |0021: cmp-long v6, v2, v0 │ │ +01d2be: 3906 0b00 |0023: if-nez v6, 002e // +000b │ │ +01d2c2: 2206 9600 |0025: new-instance v6, Ljava/util/Random; // type@0096 │ │ +01d2c6: 7010 7501 0600 |0027: invoke-direct {v6}, Ljava/util/Random;.:()V // method@0175 │ │ +01d2cc: 6e10 7601 0600 |002a: invoke-virtual {v6}, Ljava/util/Random;.nextLong:()J // method@0176 │ │ +01d2d2: 0b02 |002d: move-result-wide v2 │ │ +01d2d4: 1306 0800 |002e: const/16 v6, #int 8 // #8 │ │ +01d2d8: 2360 5701 |0030: new-array v0, v6, [B // type@0157 │ │ +01d2dc: 1271 |0032: const/4 v1, #int 7 // #7 │ │ +01d2de: 3a01 0d00 |0033: if-ltz v1, 0040 // +000d │ │ +01d2e2: 1604 ff00 |0035: const-wide/16 v4, #int 255 // #ff │ │ +01d2e6: c024 |0037: and-long/2addr v4, v2 │ │ +01d2e8: 8445 |0038: long-to-int v5, v4 │ │ +01d2ea: 8d54 |0039: int-to-byte v4, v5 │ │ +01d2ec: 4f04 0001 |003a: aput-byte v4, v0, v1 │ │ +01d2f0: c462 |003c: shr-long/2addr v2, v6 │ │ +01d2f2: d801 01ff |003d: add-int/lit8 v1, v1, #int -1 // #ff │ │ +01d2f6: 28f4 |003f: goto 0033 // -000c │ │ +01d2f8: 1236 |0040: const/4 v6, #int 3 // #3 │ │ +01d2fa: 7120 6000 6000 |0041: invoke-static {v0, v6}, Landroid/util/Base64;.encodeToString:([BI)Ljava/lang/String; // method@0060 │ │ +01d300: 0c06 |0044: move-result-object v6 │ │ +01d302: 1106 |0045: return-object v6 │ │ catches : 1 │ │ 0x000a - 0x0015 │ │ Ljava/lang/NumberFormatException; -> 0x0016 │ │ positions : │ │ 0x0002 line=194 │ │ 0x000a line=199 │ │ 0x0011 line=200 │ │ @@ -18246,20 +18246,20 @@ │ │ type : '(Landroid/content/Intent;)Landroid/os/IBinder;' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 10 16-bit code units │ │ -01d004: |[01d004] org.jsl.wfwt.WalkieService.onBind:(Landroid/content/Intent;)Landroid/os/IBinder; │ │ -01d014: 6202 dc02 |0000: sget-object v2, Lorg/jsl/wfwt/WalkieService;.LOG_TAG:Ljava/lang/String; // field@02dc │ │ -01d018: 1a00 f305 |0002: const-string v0, "onBind" // string@05f3 │ │ -01d01c: 7120 6100 0200 |0004: invoke-static {v2, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -01d022: 5412 e202 |0007: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService;.m_binder:Landroid/os/Binder; // field@02e2 │ │ -01d026: 1102 |0009: return-object v2 │ │ +01d008: |[01d008] org.jsl.wfwt.WalkieService.onBind:(Landroid/content/Intent;)Landroid/os/IBinder; │ │ +01d018: 6202 dc02 |0000: sget-object v2, Lorg/jsl/wfwt/WalkieService;.LOG_TAG:Ljava/lang/String; // field@02dc │ │ +01d01c: 1a00 f305 |0002: const-string v0, "onBind" // string@05f3 │ │ +01d020: 7120 6100 0200 |0004: invoke-static {v2, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +01d026: 5412 e202 |0007: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService;.m_binder:Landroid/os/Binder; // field@02e2 │ │ +01d02a: 1102 |0009: return-object v2 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=240 │ │ 0x0007 line=241 │ │ locals : │ │ 0x0000 - 0x000a reg=1 this Lorg/jsl/wfwt/WalkieService; │ │ 0x0000 - 0x000a reg=2 (null) Landroid/content/Intent; │ │ @@ -18269,25 +18269,25 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 21 16-bit code units │ │ -01d3b4: |[01d3b4] org.jsl.wfwt.WalkieService.onCreate:()V │ │ -01d3c4: 6f10 1c00 0200 |0000: invoke-super {v2}, Landroid/app/Service;.onCreate:()V // method@001c │ │ -01d3ca: 6200 dc02 |0003: sget-object v0, Lorg/jsl/wfwt/WalkieService;.LOG_TAG:Ljava/lang/String; // field@02dc │ │ -01d3ce: 1a01 f605 |0005: const-string v1, "onCreate" // string@05f6 │ │ -01d3d2: 7120 6100 1000 |0007: invoke-static {v0, v1}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -01d3d8: 1a00 9106 |000a: const-string v0, "servicediscovery" // string@0691 │ │ -01d3dc: 6e20 8905 0200 |000c: invoke-virtual {v2, v0}, Lorg/jsl/wfwt/WalkieService;.getSystemService:(Ljava/lang/String;)Ljava/lang/Object; // method@0589 │ │ -01d3e2: 0c00 |000f: move-result-object v0 │ │ -01d3e4: 1f00 2700 |0010: check-cast v0, Landroid/net/nsd/NsdManager; // type@0027 │ │ -01d3e8: 5b20 ea02 |0012: iput-object v0, v2, Lorg/jsl/wfwt/WalkieService;.m_nsdManager:Landroid/net/nsd/NsdManager; // field@02ea │ │ -01d3ec: 0e00 |0014: return-void │ │ +01d3b8: |[01d3b8] org.jsl.wfwt.WalkieService.onCreate:()V │ │ +01d3c8: 6f10 1c00 0200 |0000: invoke-super {v2}, Landroid/app/Service;.onCreate:()V // method@001c │ │ +01d3ce: 6200 dc02 |0003: sget-object v0, Lorg/jsl/wfwt/WalkieService;.LOG_TAG:Ljava/lang/String; // field@02dc │ │ +01d3d2: 1a01 f605 |0005: const-string v1, "onCreate" // string@05f6 │ │ +01d3d6: 7120 6100 1000 |0007: invoke-static {v0, v1}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +01d3dc: 1a00 9106 |000a: const-string v0, "servicediscovery" // string@0691 │ │ +01d3e0: 6e20 8905 0200 |000c: invoke-virtual {v2, v0}, Lorg/jsl/wfwt/WalkieService;.getSystemService:(Ljava/lang/String;)Ljava/lang/Object; // method@0589 │ │ +01d3e6: 0c00 |000f: move-result-object v0 │ │ +01d3e8: 1f00 2700 |0010: check-cast v0, Landroid/net/nsd/NsdManager; // type@0027 │ │ +01d3ec: 5b20 ea02 |0012: iput-object v0, v2, Lorg/jsl/wfwt/WalkieService;.m_nsdManager:Landroid/net/nsd/NsdManager; // field@02ea │ │ +01d3f0: 0e00 |0014: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=233 │ │ 0x0003 line=234 │ │ 0x000c line=235 │ │ locals : │ │ 0x0000 - 0x0015 reg=2 this Lorg/jsl/wfwt/WalkieService; │ │ @@ -18297,98 +18297,98 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 6 │ │ ins : 1 │ │ outs : 4 │ │ insns size : 166 16-bit code units │ │ -01d3f0: |[01d3f0] org.jsl.wfwt.WalkieService.onDestroy:()V │ │ -01d400: 6200 dc02 |0000: sget-object v0, Lorg/jsl/wfwt/WalkieService;.LOG_TAG:Ljava/lang/String; // field@02dc │ │ -01d404: 1a01 fa05 |0002: const-string v1, "onDestroy" // string@05fa │ │ -01d408: 7120 6100 1000 |0004: invoke-static {v0, v1}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -01d40e: 5450 e102 |0007: iget-object v0, v5, Lorg/jsl/wfwt/WalkieService;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@02e1 │ │ -01d412: 3800 0800 |0009: if-eqz v0, 0011 // +0008 │ │ -01d416: 6e10 5204 0000 |000b: invoke-virtual {v0}, Lorg/jsl/wfwt/AudioRecorder;.shutdown:()V // method@0452 │ │ -01d41c: 1200 |000e: const/4 v0, #int 0 // #0 │ │ -01d41e: 5b50 e102 |000f: iput-object v0, v5, Lorg/jsl/wfwt/WalkieService;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@02e1 │ │ -01d422: 5450 e902 |0011: iget-object v0, v5, Lorg/jsl/wfwt/WalkieService;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02e9 │ │ -01d426: 6e10 ae01 0000 |0013: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ -01d42c: 1200 |0016: const/4 v0, #int 0 // #0 │ │ -01d42e: 1211 |0017: const/4 v1, #int 1 // #1 │ │ -01d430: 5452 e702 |0018: iget-object v2, v5, Lorg/jsl/wfwt/WalkieService;.m_discoveryListener:Lorg/jsl/wfwt/WalkieService$DiscoveryListener; // field@02e7 │ │ -01d434: 3802 1800 |001a: if-eqz v2, 0032 // +0018 │ │ -01d438: 5452 e902 |001c: iget-object v2, v5, Lorg/jsl/wfwt/WalkieService;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02e9 │ │ -01d43c: 6e10 af01 0200 |001e: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantLock;.newCondition:()Ljava/util/concurrent/locks/Condition; // method@01af │ │ -01d442: 0c02 |0021: move-result-object v2 │ │ -01d444: 5b52 e602 |0022: iput-object v2, v5, Lorg/jsl/wfwt/WalkieService;.m_cond:Ljava/util/concurrent/locks/Condition; // field@02e6 │ │ -01d448: 5553 e802 |0024: iget-boolean v3, v5, Lorg/jsl/wfwt/WalkieService;.m_discoveryStarted:Z // field@02e8 │ │ -01d44c: 3803 0900 |0026: if-eqz v3, 002f // +0009 │ │ -01d450: 5453 ea02 |0028: iget-object v3, v5, Lorg/jsl/wfwt/WalkieService;.m_nsdManager:Landroid/net/nsd/NsdManager; // field@02ea │ │ -01d454: 5454 e702 |002a: iget-object v4, v5, Lorg/jsl/wfwt/WalkieService;.m_discoveryListener:Lorg/jsl/wfwt/WalkieService$DiscoveryListener; // field@02e7 │ │ -01d458: 6e20 5000 4300 |002c: invoke-virtual {v3, v4}, Landroid/net/nsd/NsdManager;.stopServiceDiscovery:(Landroid/net/nsd/NsdManager$DiscoveryListener;)V // method@0050 │ │ -01d45e: 7210 a701 0200 |002f: invoke-interface {v2}, Ljava/util/concurrent/locks/Condition;.await:()V // method@01a7 │ │ -01d464: 5452 e902 |0032: iget-object v2, v5, Lorg/jsl/wfwt/WalkieService;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02e9 │ │ -01d468: 6e10 b001 0200 |0034: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -01d46e: 1202 |0037: const/4 v2, #int 0 // #0 │ │ -01d470: 2813 |0038: goto 004b // +0013 │ │ -01d472: 0d00 |0039: move-exception v0 │ │ -01d474: 2866 |003a: goto 00a0 // +0066 │ │ -01d476: 0d02 |003b: move-exception v2 │ │ -01d478: 6203 dc02 |003c: sget-object v3, Lorg/jsl/wfwt/WalkieService;.LOG_TAG:Ljava/lang/String; // field@02dc │ │ -01d47c: 6e10 ac00 0200 |003e: invoke-virtual {v2}, Ljava/lang/InterruptedException;.toString:()Ljava/lang/String; // method@00ac │ │ -01d482: 0c02 |0041: move-result-object v2 │ │ -01d484: 7120 6600 2300 |0042: invoke-static {v3, v2}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ -01d48a: 5452 e902 |0045: iget-object v2, v5, Lorg/jsl/wfwt/WalkieService;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02e9 │ │ -01d48e: 6e10 b001 0200 |0047: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -01d494: 1212 |004a: const/4 v2, #int 1 // #1 │ │ -01d496: 2203 9900 |004b: new-instance v3, Ljava/util/concurrent/CountDownLatch; // type@0099 │ │ -01d49a: 1224 |004d: const/4 v4, #int 2 // #2 │ │ -01d49c: 7020 8201 4300 |004e: invoke-direct {v3, v4}, Ljava/util/concurrent/CountDownLatch;.:(I)V // method@0182 │ │ -01d4a2: 5454 e302 |0051: iget-object v4, v5, Lorg/jsl/wfwt/WalkieService;.m_channel:Lorg/jsl/wfwt/Channel; // field@02e3 │ │ -01d4a6: 6e20 9504 3400 |0053: invoke-virtual {v4, v3}, Lorg/jsl/wfwt/Channel;.stop:(Ljava/util/concurrent/CountDownLatch;)V // method@0495 │ │ -01d4ac: 6e10 8301 0300 |0056: invoke-virtual {v3}, Ljava/util/concurrent/CountDownLatch;.await:()V // method@0183 │ │ -01d4b2: 280c |0059: goto 0065 // +000c │ │ -01d4b4: 0d02 |005a: move-exception v2 │ │ -01d4b6: 6203 dc02 |005b: sget-object v3, Lorg/jsl/wfwt/WalkieService;.LOG_TAG:Ljava/lang/String; // field@02dc │ │ -01d4ba: 6e10 ac00 0200 |005d: invoke-virtual {v2}, Ljava/lang/InterruptedException;.toString:()Ljava/lang/String; // method@00ac │ │ -01d4c0: 0c02 |0060: move-result-object v2 │ │ -01d4c2: 7120 6600 2300 |0061: invoke-static {v3, v2}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ -01d4c8: 1212 |0064: const/4 v2, #int 1 // #1 │ │ -01d4ca: 5453 e402 |0065: iget-object v3, v5, Lorg/jsl/wfwt/WalkieService;.m_collider:Lorg/jsl/collider/Collider; // field@02e4 │ │ -01d4ce: 3803 1600 |0067: if-eqz v3, 007d // +0016 │ │ -01d4d2: 6e10 0a02 0300 |0069: invoke-virtual {v3}, Lorg/jsl/collider/Collider;.stop:()V // method@020a │ │ -01d4d8: 5453 e502 |006c: iget-object v3, v5, Lorg/jsl/wfwt/WalkieService;.m_colliderThread:Lorg/jsl/wfwt/WalkieService$ColliderThread; // field@02e5 │ │ -01d4dc: 6e10 7105 0300 |006e: invoke-virtual {v3}, Lorg/jsl/wfwt/WalkieService$ColliderThread;.join:()V // method@0571 │ │ -01d4e2: 280c |0071: goto 007d // +000c │ │ -01d4e4: 0d02 |0072: move-exception v2 │ │ -01d4e6: 6203 dc02 |0073: sget-object v3, Lorg/jsl/wfwt/WalkieService;.LOG_TAG:Ljava/lang/String; // field@02dc │ │ -01d4ea: 6e10 ac00 0200 |0075: invoke-virtual {v2}, Ljava/lang/InterruptedException;.toString:()Ljava/lang/String; // method@00ac │ │ -01d4f0: 0c02 |0078: move-result-object v2 │ │ -01d4f2: 7120 6100 2300 |0079: invoke-static {v3, v2}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -01d4f8: 2802 |007c: goto 007e // +0002 │ │ -01d4fa: 0121 |007d: move v1, v2 │ │ -01d4fc: 1a02 f403 |007e: const-string v2, "audio" // string@03f4 │ │ -01d500: 6e20 8905 2500 |0080: invoke-virtual {v5, v2}, Lorg/jsl/wfwt/WalkieService;.getSystemService:(Ljava/lang/String;)Ljava/lang/Object; // method@0589 │ │ -01d506: 0c02 |0083: move-result-object v2 │ │ -01d508: 1f02 2100 |0084: check-cast v2, Landroid/media/AudioManager; // type@0021 │ │ -01d50c: 1233 |0086: const/4 v3, #int 3 // #3 │ │ -01d50e: 5254 e002 |0087: iget v4, v5, Lorg/jsl/wfwt/WalkieService;.m_audioPrvVolume:I // field@02e0 │ │ -01d512: 6e40 3e00 3204 |0089: invoke-virtual {v2, v3, v4, v0}, Landroid/media/AudioManager;.setStreamVolume:(III)V // method@003e │ │ -01d518: 3801 0900 |008c: if-eqz v1, 0095 // +0009 │ │ -01d51c: 7100 d600 0000 |008e: invoke-static {}, Ljava/lang/Thread;.currentThread:()Ljava/lang/Thread; // method@00d6 │ │ -01d522: 0c00 |0091: move-result-object v0 │ │ -01d524: 6e10 d900 0000 |0092: invoke-virtual {v0}, Ljava/lang/Thread;.interrupt:()V // method@00d9 │ │ -01d52a: 6200 dc02 |0095: sget-object v0, Lorg/jsl/wfwt/WalkieService;.LOG_TAG:Ljava/lang/String; // field@02dc │ │ -01d52e: 1a01 fb05 |0097: const-string v1, "onDestroy: done" // string@05fb │ │ -01d532: 7120 6100 1000 |0099: invoke-static {v0, v1}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -01d538: 6f10 1d00 0500 |009c: invoke-super {v5}, Landroid/app/Service;.onDestroy:()V // method@001d │ │ -01d53e: 0e00 |009f: return-void │ │ -01d540: 5451 e902 |00a0: iget-object v1, v5, Lorg/jsl/wfwt/WalkieService;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02e9 │ │ -01d544: 6e10 b001 0100 |00a2: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -01d54a: 2700 |00a5: throw v0 │ │ +01d3f4: |[01d3f4] org.jsl.wfwt.WalkieService.onDestroy:()V │ │ +01d404: 6200 dc02 |0000: sget-object v0, Lorg/jsl/wfwt/WalkieService;.LOG_TAG:Ljava/lang/String; // field@02dc │ │ +01d408: 1a01 fa05 |0002: const-string v1, "onDestroy" // string@05fa │ │ +01d40c: 7120 6100 1000 |0004: invoke-static {v0, v1}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +01d412: 5450 e102 |0007: iget-object v0, v5, Lorg/jsl/wfwt/WalkieService;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@02e1 │ │ +01d416: 3800 0800 |0009: if-eqz v0, 0011 // +0008 │ │ +01d41a: 6e10 5204 0000 |000b: invoke-virtual {v0}, Lorg/jsl/wfwt/AudioRecorder;.shutdown:()V // method@0452 │ │ +01d420: 1200 |000e: const/4 v0, #int 0 // #0 │ │ +01d422: 5b50 e102 |000f: iput-object v0, v5, Lorg/jsl/wfwt/WalkieService;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@02e1 │ │ +01d426: 5450 e902 |0011: iget-object v0, v5, Lorg/jsl/wfwt/WalkieService;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02e9 │ │ +01d42a: 6e10 ae01 0000 |0013: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ +01d430: 1200 |0016: const/4 v0, #int 0 // #0 │ │ +01d432: 1211 |0017: const/4 v1, #int 1 // #1 │ │ +01d434: 5452 e702 |0018: iget-object v2, v5, Lorg/jsl/wfwt/WalkieService;.m_discoveryListener:Lorg/jsl/wfwt/WalkieService$DiscoveryListener; // field@02e7 │ │ +01d438: 3802 1800 |001a: if-eqz v2, 0032 // +0018 │ │ +01d43c: 5452 e902 |001c: iget-object v2, v5, Lorg/jsl/wfwt/WalkieService;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02e9 │ │ +01d440: 6e10 af01 0200 |001e: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantLock;.newCondition:()Ljava/util/concurrent/locks/Condition; // method@01af │ │ +01d446: 0c02 |0021: move-result-object v2 │ │ +01d448: 5b52 e602 |0022: iput-object v2, v5, Lorg/jsl/wfwt/WalkieService;.m_cond:Ljava/util/concurrent/locks/Condition; // field@02e6 │ │ +01d44c: 5553 e802 |0024: iget-boolean v3, v5, Lorg/jsl/wfwt/WalkieService;.m_discoveryStarted:Z // field@02e8 │ │ +01d450: 3803 0900 |0026: if-eqz v3, 002f // +0009 │ │ +01d454: 5453 ea02 |0028: iget-object v3, v5, Lorg/jsl/wfwt/WalkieService;.m_nsdManager:Landroid/net/nsd/NsdManager; // field@02ea │ │ +01d458: 5454 e702 |002a: iget-object v4, v5, Lorg/jsl/wfwt/WalkieService;.m_discoveryListener:Lorg/jsl/wfwt/WalkieService$DiscoveryListener; // field@02e7 │ │ +01d45c: 6e20 5000 4300 |002c: invoke-virtual {v3, v4}, Landroid/net/nsd/NsdManager;.stopServiceDiscovery:(Landroid/net/nsd/NsdManager$DiscoveryListener;)V // method@0050 │ │ +01d462: 7210 a701 0200 |002f: invoke-interface {v2}, Ljava/util/concurrent/locks/Condition;.await:()V // method@01a7 │ │ +01d468: 5452 e902 |0032: iget-object v2, v5, Lorg/jsl/wfwt/WalkieService;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02e9 │ │ +01d46c: 6e10 b001 0200 |0034: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +01d472: 1202 |0037: const/4 v2, #int 0 // #0 │ │ +01d474: 2813 |0038: goto 004b // +0013 │ │ +01d476: 0d00 |0039: move-exception v0 │ │ +01d478: 2866 |003a: goto 00a0 // +0066 │ │ +01d47a: 0d02 |003b: move-exception v2 │ │ +01d47c: 6203 dc02 |003c: sget-object v3, Lorg/jsl/wfwt/WalkieService;.LOG_TAG:Ljava/lang/String; // field@02dc │ │ +01d480: 6e10 ac00 0200 |003e: invoke-virtual {v2}, Ljava/lang/InterruptedException;.toString:()Ljava/lang/String; // method@00ac │ │ +01d486: 0c02 |0041: move-result-object v2 │ │ +01d488: 7120 6600 2300 |0042: invoke-static {v3, v2}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ +01d48e: 5452 e902 |0045: iget-object v2, v5, Lorg/jsl/wfwt/WalkieService;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02e9 │ │ +01d492: 6e10 b001 0200 |0047: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +01d498: 1212 |004a: const/4 v2, #int 1 // #1 │ │ +01d49a: 2203 9900 |004b: new-instance v3, Ljava/util/concurrent/CountDownLatch; // type@0099 │ │ +01d49e: 1224 |004d: const/4 v4, #int 2 // #2 │ │ +01d4a0: 7020 8201 4300 |004e: invoke-direct {v3, v4}, Ljava/util/concurrent/CountDownLatch;.:(I)V // method@0182 │ │ +01d4a6: 5454 e302 |0051: iget-object v4, v5, Lorg/jsl/wfwt/WalkieService;.m_channel:Lorg/jsl/wfwt/Channel; // field@02e3 │ │ +01d4aa: 6e20 9504 3400 |0053: invoke-virtual {v4, v3}, Lorg/jsl/wfwt/Channel;.stop:(Ljava/util/concurrent/CountDownLatch;)V // method@0495 │ │ +01d4b0: 6e10 8301 0300 |0056: invoke-virtual {v3}, Ljava/util/concurrent/CountDownLatch;.await:()V // method@0183 │ │ +01d4b6: 280c |0059: goto 0065 // +000c │ │ +01d4b8: 0d02 |005a: move-exception v2 │ │ +01d4ba: 6203 dc02 |005b: sget-object v3, Lorg/jsl/wfwt/WalkieService;.LOG_TAG:Ljava/lang/String; // field@02dc │ │ +01d4be: 6e10 ac00 0200 |005d: invoke-virtual {v2}, Ljava/lang/InterruptedException;.toString:()Ljava/lang/String; // method@00ac │ │ +01d4c4: 0c02 |0060: move-result-object v2 │ │ +01d4c6: 7120 6600 2300 |0061: invoke-static {v3, v2}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ +01d4cc: 1212 |0064: const/4 v2, #int 1 // #1 │ │ +01d4ce: 5453 e402 |0065: iget-object v3, v5, Lorg/jsl/wfwt/WalkieService;.m_collider:Lorg/jsl/collider/Collider; // field@02e4 │ │ +01d4d2: 3803 1600 |0067: if-eqz v3, 007d // +0016 │ │ +01d4d6: 6e10 0a02 0300 |0069: invoke-virtual {v3}, Lorg/jsl/collider/Collider;.stop:()V // method@020a │ │ +01d4dc: 5453 e502 |006c: iget-object v3, v5, Lorg/jsl/wfwt/WalkieService;.m_colliderThread:Lorg/jsl/wfwt/WalkieService$ColliderThread; // field@02e5 │ │ +01d4e0: 6e10 7105 0300 |006e: invoke-virtual {v3}, Lorg/jsl/wfwt/WalkieService$ColliderThread;.join:()V // method@0571 │ │ +01d4e6: 280c |0071: goto 007d // +000c │ │ +01d4e8: 0d02 |0072: move-exception v2 │ │ +01d4ea: 6203 dc02 |0073: sget-object v3, Lorg/jsl/wfwt/WalkieService;.LOG_TAG:Ljava/lang/String; // field@02dc │ │ +01d4ee: 6e10 ac00 0200 |0075: invoke-virtual {v2}, Ljava/lang/InterruptedException;.toString:()Ljava/lang/String; // method@00ac │ │ +01d4f4: 0c02 |0078: move-result-object v2 │ │ +01d4f6: 7120 6100 2300 |0079: invoke-static {v3, v2}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +01d4fc: 2802 |007c: goto 007e // +0002 │ │ +01d4fe: 0121 |007d: move v1, v2 │ │ +01d500: 1a02 f403 |007e: const-string v2, "audio" // string@03f4 │ │ +01d504: 6e20 8905 2500 |0080: invoke-virtual {v5, v2}, Lorg/jsl/wfwt/WalkieService;.getSystemService:(Ljava/lang/String;)Ljava/lang/Object; // method@0589 │ │ +01d50a: 0c02 |0083: move-result-object v2 │ │ +01d50c: 1f02 2100 |0084: check-cast v2, Landroid/media/AudioManager; // type@0021 │ │ +01d510: 1233 |0086: const/4 v3, #int 3 // #3 │ │ +01d512: 5254 e002 |0087: iget v4, v5, Lorg/jsl/wfwt/WalkieService;.m_audioPrvVolume:I // field@02e0 │ │ +01d516: 6e40 3e00 3204 |0089: invoke-virtual {v2, v3, v4, v0}, Landroid/media/AudioManager;.setStreamVolume:(III)V // method@003e │ │ +01d51c: 3801 0900 |008c: if-eqz v1, 0095 // +0009 │ │ +01d520: 7100 d600 0000 |008e: invoke-static {}, Ljava/lang/Thread;.currentThread:()Ljava/lang/Thread; // method@00d6 │ │ +01d526: 0c00 |0091: move-result-object v0 │ │ +01d528: 6e10 d900 0000 |0092: invoke-virtual {v0}, Ljava/lang/Thread;.interrupt:()V // method@00d9 │ │ +01d52e: 6200 dc02 |0095: sget-object v0, Lorg/jsl/wfwt/WalkieService;.LOG_TAG:Ljava/lang/String; // field@02dc │ │ +01d532: 1a01 fb05 |0097: const-string v1, "onDestroy: done" // string@05fb │ │ +01d536: 7120 6100 1000 |0099: invoke-static {v0, v1}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +01d53c: 6f10 1d00 0500 |009c: invoke-super {v5}, Landroid/app/Service;.onDestroy:()V // method@001d │ │ +01d542: 0e00 |009f: return-void │ │ +01d544: 5451 e902 |00a0: iget-object v1, v5, Lorg/jsl/wfwt/WalkieService;.m_lock:Ljava/util/concurrent/locks/ReentrantLock; // field@02e9 │ │ +01d548: 6e10 b001 0100 |00a2: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +01d54e: 2700 |00a5: throw v0 │ │ catches : 4 │ │ 0x0018 - 0x0032 │ │ Ljava/lang/InterruptedException; -> 0x003b │ │ -> 0x0039 │ │ 0x003c - 0x0045 │ │ -> 0x0039 │ │ 0x0056 - 0x0059 │ │ @@ -18433,121 +18433,121 @@ │ │ type : '(Landroid/content/Intent;II)I' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 20 │ │ ins : 4 │ │ outs : 11 │ │ insns size : 222 16-bit code units │ │ -01d070: |[01d070] org.jsl.wfwt.WalkieService.onStartCommand:(Landroid/content/Intent;II)I │ │ -01d080: 0801 1000 |0000: move-object/from16 v1, v16 │ │ -01d084: 0800 1100 |0002: move-object/from16 v0, v17 │ │ -01d088: 6202 dc02 |0004: sget-object v2, Lorg/jsl/wfwt/WalkieService;.LOG_TAG:Ljava/lang/String; // field@02dc │ │ -01d08c: 2203 6700 |0006: new-instance v3, Ljava/lang/StringBuilder; // type@0067 │ │ -01d090: 1a04 1506 |0008: const-string v4, "onStartCommand: flags=" // string@0615 │ │ -01d094: 7020 c600 4300 |000a: invoke-direct {v3, v4}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ -01d09a: 0204 1200 |000d: move/from16 v4, v18 │ │ -01d09e: 6e20 c800 4300 |000f: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ -01d0a4: 1a04 2500 |0012: const-string v4, " startId=" // string@0025 │ │ -01d0a8: 6e20 cb00 4300 |0014: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01d0ae: 0204 1300 |0017: move/from16 v4, v19 │ │ -01d0b2: 6e20 c800 4300 |0019: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ -01d0b8: 6e10 ce00 0300 |001c: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01d0be: 0c03 |001f: move-result-object v3 │ │ -01d0c0: 7120 6100 3200 |0020: invoke-static {v2, v3}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -01d0c6: 5413 e102 |0023: iget-object v3, v1, Lorg/jsl/wfwt/WalkieService;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@02e1 │ │ -01d0ca: 1234 |0025: const/4 v4, #int 3 // #3 │ │ -01d0cc: 3903 b700 |0026: if-nez v3, 00dd // +00b7 │ │ -01d0d0: 7401 8705 1000 |0028: invoke-virtual/range {v16}, Lorg/jsl/wfwt/WalkieService;.getContentResolver:()Landroid/content/ContentResolver; // method@0587 │ │ -01d0d6: 0c03 |002b: move-result-object v3 │ │ -01d0d8: 7110 8805 0300 |002c: invoke-static {v3}, Lorg/jsl/wfwt/WalkieService;.getDeviceID:(Landroid/content/ContentResolver;)Ljava/lang/String; // method@0588 │ │ -01d0de: 0c06 |002f: move-result-object v6 │ │ -01d0e0: 220d 4401 |0030: new-instance v13, Lorg/jsl/wfwt/SessionManager; // type@0144 │ │ -01d0e4: 7010 3f05 0d00 |0032: invoke-direct {v13}, Lorg/jsl/wfwt/SessionManager;.:()V // method@053f │ │ -01d0ea: 7110 4904 0d00 |0035: invoke-static {v13}, Lorg/jsl/wfwt/AudioRecorder;.create:(Lorg/jsl/wfwt/SessionManager;)Lorg/jsl/wfwt/AudioRecorder; // method@0449 │ │ -01d0f0: 0c03 |0038: move-result-object v3 │ │ -01d0f2: 5b13 e102 |0039: iput-object v3, v1, Lorg/jsl/wfwt/WalkieService;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@02e1 │ │ -01d0f6: 3803 a200 |003b: if-eqz v3, 00dd // +00a2 │ │ -01d0fa: 1203 |003d: const/4 v3, #int 0 // #0 │ │ -01d0fc: 120f |003e: const/4 v15, #int 0 // #0 │ │ -01d0fe: 6e30 8f05 310f |003f: invoke-virtual {v1, v3, v15}, Lorg/jsl/wfwt/WalkieService;.startForeground:(ILandroid/app/Notification;)V // method@058f │ │ -01d104: 1a05 f403 |0042: const-string v5, "audio" // string@03f4 │ │ -01d108: 6e20 8905 5100 |0044: invoke-virtual {v1, v5}, Lorg/jsl/wfwt/WalkieService;.getSystemService:(Ljava/lang/String;)Ljava/lang/Object; // method@0589 │ │ -01d10e: 0c05 |0047: move-result-object v5 │ │ -01d110: 1f05 2100 |0048: check-cast v5, Landroid/media/AudioManager; // type@0021 │ │ -01d114: 6e20 3d00 4500 |004a: invoke-virtual {v5, v4}, Landroid/media/AudioManager;.getStreamVolume:(I)I // method@003d │ │ -01d11a: 0a07 |004d: move-result v7 │ │ -01d11c: 5917 e002 |004e: iput v7, v1, Lorg/jsl/wfwt/WalkieService;.m_audioPrvVolume:I // field@02e0 │ │ -01d120: 1a07 e506 |0050: const-string v7, "station_name" // string@06e5 │ │ -01d124: 6e20 2300 7000 |0052: invoke-virtual {v0, v7}, Landroid/content/Intent;.getStringExtra:(Ljava/lang/String;)Ljava/lang/String; // method@0023 │ │ -01d12a: 0c07 |0055: move-result-object v7 │ │ -01d12c: 1a08 1d07 |0056: const-string v8, "volume" // string@071d │ │ -01d130: 12f9 |0058: const/4 v9, #int -1 // #ff │ │ -01d132: 6e30 2200 8009 |0059: invoke-virtual {v0, v8, v9}, Landroid/content/Intent;.getIntExtra:(Ljava/lang/String;I)I // method@0022 │ │ -01d138: 0a00 |005c: move-result v0 │ │ -01d13a: 3b00 0600 |005d: if-gez v0, 0063 // +0006 │ │ -01d13e: 6e20 3c00 4500 |005f: invoke-virtual {v5, v4}, Landroid/media/AudioManager;.getStreamMaxVolume:(I)I // method@003c │ │ -01d144: 0a00 |0062: move-result v0 │ │ -01d146: 2208 6700 |0063: new-instance v8, Ljava/lang/StringBuilder; // type@0067 │ │ -01d14a: 1a09 c606 |0065: const-string v9, "setStreamVolume(3, " // string@06c6 │ │ -01d14e: 7020 c600 9800 |0067: invoke-direct {v8, v9}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ -01d154: 6e20 c800 0800 |006a: invoke-virtual {v8, v0}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ -01d15a: 1a09 3700 |006d: const-string v9, ")" // string@0037 │ │ -01d15e: 6e20 cb00 9800 |006f: invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01d164: 6e10 ce00 0800 |0072: invoke-virtual {v8}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01d16a: 0c08 |0075: move-result-object v8 │ │ -01d16c: 7120 6100 8200 |0076: invoke-static {v2, v8}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -01d172: 6e40 3e00 4530 |0079: invoke-virtual {v5, v4, v0, v3}, Landroid/media/AudioManager;.setStreamVolume:(III)V // method@003e │ │ -01d178: 2200 b300 |007c: new-instance v0, Lorg/jsl/collider/Collider$Config; // type@00b3 │ │ -01d17c: 7010 fc01 0000 |007e: invoke-direct {v0}, Lorg/jsl/collider/Collider$Config;.:()V // method@01fc │ │ -01d182: 1302 0a00 |0081: const/16 v2, #int 10 // #a │ │ -01d186: 5902 3900 |0083: iput v2, v0, Lorg/jsl/collider/Collider$Config;.threadPriority:I // field@0039 │ │ -01d18a: 7110 0302 0000 |0085: invoke-static {v0}, Lorg/jsl/collider/Collider;.create:(Lorg/jsl/collider/Collider$Config;)Lorg/jsl/collider/Collider; // method@0203 │ │ -01d190: 0c02 |0088: move-result-object v2 │ │ -01d192: 5b12 e402 |0089: iput-object v2, v1, Lorg/jsl/wfwt/WalkieService;.m_collider:Lorg/jsl/collider/Collider; // field@02e4 │ │ -01d196: 2202 5001 |008b: new-instance v2, Lorg/jsl/wfwt/WalkieService$ColliderThread; // type@0150 │ │ -01d19a: 5413 e402 |008d: iget-object v3, v1, Lorg/jsl/wfwt/WalkieService;.m_collider:Lorg/jsl/collider/Collider; // field@02e4 │ │ -01d19e: 7020 7005 3200 |008f: invoke-direct {v2, v3}, Lorg/jsl/wfwt/WalkieService$ColliderThread;.:(Lorg/jsl/collider/Collider;)V // method@0570 │ │ -01d1a4: 5b12 e502 |0092: iput-object v2, v1, Lorg/jsl/wfwt/WalkieService;.m_colliderThread:Lorg/jsl/wfwt/WalkieService$ColliderThread; // field@02e5 │ │ -01d1a8: 5200 3900 |0094: iget v0, v0, Lorg/jsl/collider/Collider$Config;.threadPriority:I // field@0039 │ │ -01d1ac: 6e20 7305 0200 |0096: invoke-virtual {v2, v0}, Lorg/jsl/wfwt/WalkieService$ColliderThread;.setPriority:(I)V // method@0573 │ │ -01d1b2: 220e 0901 |0099: new-instance v14, Lorg/jsl/collider/TimerQueue; // type@0109 │ │ -01d1b6: 5410 e402 |009b: iget-object v0, v1, Lorg/jsl/wfwt/WalkieService;.m_collider:Lorg/jsl/collider/Collider; // field@02e4 │ │ -01d1ba: 6e10 0502 0000 |009d: invoke-virtual {v0}, Lorg/jsl/collider/Collider;.getThreadPool:()Lorg/jsl/collider/ThreadPool; // method@0205 │ │ -01d1c0: 0c00 |00a0: move-result-object v0 │ │ -01d1c2: 7020 1b04 0e00 |00a1: invoke-direct {v14, v0}, Lorg/jsl/collider/TimerQueue;.:(Lorg/jsl/collider/ThreadPool;)V // method@041b │ │ -01d1c8: 2200 1d01 |00a4: new-instance v0, Lorg/jsl/wfwt/Channel; // type@011d │ │ -01d1cc: 5412 e102 |00a6: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@02e1 │ │ -01d1d0: 6e10 4a04 0200 |00a8: invoke-virtual {v2}, Lorg/jsl/wfwt/AudioRecorder;.getAudioFormat:()Ljava/lang/String; // method@044a │ │ -01d1d6: 0c08 |00ab: move-result-object v8 │ │ -01d1d8: 5419 e402 |00ac: iget-object v9, v1, Lorg/jsl/wfwt/WalkieService;.m_collider:Lorg/jsl/collider/Collider; // field@02e4 │ │ -01d1dc: 541a ea02 |00ae: iget-object v10, v1, Lorg/jsl/wfwt/WalkieService;.m_nsdManager:Landroid/net/nsd/NsdManager; // field@02ea │ │ -01d1e0: 1a0b ac03 |00b0: const-string v11, "_wfwt._tcp" // string@03ac │ │ -01d1e4: 1a0c b300 |00b2: const-string v12, "Channel_00" // string@00b3 │ │ -01d1e8: 6002 1c02 |00b4: sget v2, Lorg/jsl/wfwt/Config;.PING_INTERVAL:I // field@021c │ │ -01d1ec: 0705 |00b6: move-object v5, v0 │ │ -01d1ee: 07f3 |00b7: move-object v3, v15 │ │ -01d1f0: 012f |00b8: move v15, v2 │ │ -01d1f2: 760b 6d04 0500 |00b9: invoke-direct/range {v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15}, Lorg/jsl/wfwt/Channel;.:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/jsl/collider/Collider;Landroid/net/nsd/NsdManager;Ljava/lang/String;Ljava/lang/String;Lorg/jsl/wfwt/SessionManager;Lorg/jsl/collider/TimerQueue;I)V // method@046d │ │ -01d1f8: 5b10 e302 |00bc: iput-object v0, v1, Lorg/jsl/wfwt/WalkieService;.m_channel:Lorg/jsl/wfwt/Channel; // field@02e3 │ │ -01d1fc: 2200 5101 |00be: new-instance v0, Lorg/jsl/wfwt/WalkieService$DiscoveryListener; // type@0151 │ │ -01d200: 7030 7605 1003 |00c0: invoke-direct {v0, v1, v3}, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.:(Lorg/jsl/wfwt/WalkieService;Lorg/jsl/wfwt/WalkieService$1;)V // method@0576 │ │ -01d206: 5b10 e702 |00c3: iput-object v0, v1, Lorg/jsl/wfwt/WalkieService;.m_discoveryListener:Lorg/jsl/wfwt/WalkieService$DiscoveryListener; // field@02e7 │ │ -01d20a: 5412 ea02 |00c5: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService;.m_nsdManager:Landroid/net/nsd/NsdManager; // field@02ea │ │ -01d20e: 1a03 ac03 |00c7: const-string v3, "_wfwt._tcp" // string@03ac │ │ -01d212: 1215 |00c9: const/4 v5, #int 1 // #1 │ │ -01d214: 6e40 4d00 3205 |00ca: invoke-virtual {v2, v3, v5, v0}, Landroid/net/nsd/NsdManager;.discoverServices:(Ljava/lang/String;ILandroid/net/nsd/NsdManager$DiscoveryListener;)V // method@004d │ │ -01d21a: 5410 e502 |00cd: iget-object v0, v1, Lorg/jsl/wfwt/WalkieService;.m_colliderThread:Lorg/jsl/wfwt/WalkieService$ColliderThread; // field@02e5 │ │ -01d21e: 6e10 7405 0000 |00cf: invoke-virtual {v0}, Lorg/jsl/wfwt/WalkieService$ColliderThread;.start:()V // method@0574 │ │ -01d224: 280b |00d2: goto 00dd // +000b │ │ -01d226: 0d00 |00d3: move-exception v0 │ │ -01d228: 6202 dc02 |00d4: sget-object v2, Lorg/jsl/wfwt/WalkieService;.LOG_TAG:Ljava/lang/String; // field@02dc │ │ -01d22c: 6e10 9200 0000 |00d6: invoke-virtual {v0}, Ljava/io/IOException;.toString:()Ljava/lang/String; // method@0092 │ │ -01d232: 0c00 |00d9: move-result-object v0 │ │ -01d234: 7120 6600 0200 |00da: invoke-static {v2, v0}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ -01d23a: 0f04 |00dd: return v4 │ │ +01d074: |[01d074] org.jsl.wfwt.WalkieService.onStartCommand:(Landroid/content/Intent;II)I │ │ +01d084: 0801 1000 |0000: move-object/from16 v1, v16 │ │ +01d088: 0800 1100 |0002: move-object/from16 v0, v17 │ │ +01d08c: 6202 dc02 |0004: sget-object v2, Lorg/jsl/wfwt/WalkieService;.LOG_TAG:Ljava/lang/String; // field@02dc │ │ +01d090: 2203 6700 |0006: new-instance v3, Ljava/lang/StringBuilder; // type@0067 │ │ +01d094: 1a04 1506 |0008: const-string v4, "onStartCommand: flags=" // string@0615 │ │ +01d098: 7020 c600 4300 |000a: invoke-direct {v3, v4}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ +01d09e: 0204 1200 |000d: move/from16 v4, v18 │ │ +01d0a2: 6e20 c800 4300 |000f: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ +01d0a8: 1a04 2500 |0012: const-string v4, " startId=" // string@0025 │ │ +01d0ac: 6e20 cb00 4300 |0014: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01d0b2: 0204 1300 |0017: move/from16 v4, v19 │ │ +01d0b6: 6e20 c800 4300 |0019: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ +01d0bc: 6e10 ce00 0300 |001c: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01d0c2: 0c03 |001f: move-result-object v3 │ │ +01d0c4: 7120 6100 3200 |0020: invoke-static {v2, v3}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +01d0ca: 5413 e102 |0023: iget-object v3, v1, Lorg/jsl/wfwt/WalkieService;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@02e1 │ │ +01d0ce: 1234 |0025: const/4 v4, #int 3 // #3 │ │ +01d0d0: 3903 b700 |0026: if-nez v3, 00dd // +00b7 │ │ +01d0d4: 7401 8705 1000 |0028: invoke-virtual/range {v16}, Lorg/jsl/wfwt/WalkieService;.getContentResolver:()Landroid/content/ContentResolver; // method@0587 │ │ +01d0da: 0c03 |002b: move-result-object v3 │ │ +01d0dc: 7110 8805 0300 |002c: invoke-static {v3}, Lorg/jsl/wfwt/WalkieService;.getDeviceID:(Landroid/content/ContentResolver;)Ljava/lang/String; // method@0588 │ │ +01d0e2: 0c06 |002f: move-result-object v6 │ │ +01d0e4: 220d 4401 |0030: new-instance v13, Lorg/jsl/wfwt/SessionManager; // type@0144 │ │ +01d0e8: 7010 3f05 0d00 |0032: invoke-direct {v13}, Lorg/jsl/wfwt/SessionManager;.:()V // method@053f │ │ +01d0ee: 7110 4904 0d00 |0035: invoke-static {v13}, Lorg/jsl/wfwt/AudioRecorder;.create:(Lorg/jsl/wfwt/SessionManager;)Lorg/jsl/wfwt/AudioRecorder; // method@0449 │ │ +01d0f4: 0c03 |0038: move-result-object v3 │ │ +01d0f6: 5b13 e102 |0039: iput-object v3, v1, Lorg/jsl/wfwt/WalkieService;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@02e1 │ │ +01d0fa: 3803 a200 |003b: if-eqz v3, 00dd // +00a2 │ │ +01d0fe: 1203 |003d: const/4 v3, #int 0 // #0 │ │ +01d100: 120f |003e: const/4 v15, #int 0 // #0 │ │ +01d102: 6e30 8f05 310f |003f: invoke-virtual {v1, v3, v15}, Lorg/jsl/wfwt/WalkieService;.startForeground:(ILandroid/app/Notification;)V // method@058f │ │ +01d108: 1a05 f403 |0042: const-string v5, "audio" // string@03f4 │ │ +01d10c: 6e20 8905 5100 |0044: invoke-virtual {v1, v5}, Lorg/jsl/wfwt/WalkieService;.getSystemService:(Ljava/lang/String;)Ljava/lang/Object; // method@0589 │ │ +01d112: 0c05 |0047: move-result-object v5 │ │ +01d114: 1f05 2100 |0048: check-cast v5, Landroid/media/AudioManager; // type@0021 │ │ +01d118: 6e20 3d00 4500 |004a: invoke-virtual {v5, v4}, Landroid/media/AudioManager;.getStreamVolume:(I)I // method@003d │ │ +01d11e: 0a07 |004d: move-result v7 │ │ +01d120: 5917 e002 |004e: iput v7, v1, Lorg/jsl/wfwt/WalkieService;.m_audioPrvVolume:I // field@02e0 │ │ +01d124: 1a07 e506 |0050: const-string v7, "station_name" // string@06e5 │ │ +01d128: 6e20 2300 7000 |0052: invoke-virtual {v0, v7}, Landroid/content/Intent;.getStringExtra:(Ljava/lang/String;)Ljava/lang/String; // method@0023 │ │ +01d12e: 0c07 |0055: move-result-object v7 │ │ +01d130: 1a08 1d07 |0056: const-string v8, "volume" // string@071d │ │ +01d134: 12f9 |0058: const/4 v9, #int -1 // #ff │ │ +01d136: 6e30 2200 8009 |0059: invoke-virtual {v0, v8, v9}, Landroid/content/Intent;.getIntExtra:(Ljava/lang/String;I)I // method@0022 │ │ +01d13c: 0a00 |005c: move-result v0 │ │ +01d13e: 3b00 0600 |005d: if-gez v0, 0063 // +0006 │ │ +01d142: 6e20 3c00 4500 |005f: invoke-virtual {v5, v4}, Landroid/media/AudioManager;.getStreamMaxVolume:(I)I // method@003c │ │ +01d148: 0a00 |0062: move-result v0 │ │ +01d14a: 2208 6700 |0063: new-instance v8, Ljava/lang/StringBuilder; // type@0067 │ │ +01d14e: 1a09 c606 |0065: const-string v9, "setStreamVolume(3, " // string@06c6 │ │ +01d152: 7020 c600 9800 |0067: invoke-direct {v8, v9}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ +01d158: 6e20 c800 0800 |006a: invoke-virtual {v8, v0}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ +01d15e: 1a09 3700 |006d: const-string v9, ")" // string@0037 │ │ +01d162: 6e20 cb00 9800 |006f: invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01d168: 6e10 ce00 0800 |0072: invoke-virtual {v8}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01d16e: 0c08 |0075: move-result-object v8 │ │ +01d170: 7120 6100 8200 |0076: invoke-static {v2, v8}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +01d176: 6e40 3e00 4530 |0079: invoke-virtual {v5, v4, v0, v3}, Landroid/media/AudioManager;.setStreamVolume:(III)V // method@003e │ │ +01d17c: 2200 b300 |007c: new-instance v0, Lorg/jsl/collider/Collider$Config; // type@00b3 │ │ +01d180: 7010 fc01 0000 |007e: invoke-direct {v0}, Lorg/jsl/collider/Collider$Config;.:()V // method@01fc │ │ +01d186: 1302 0a00 |0081: const/16 v2, #int 10 // #a │ │ +01d18a: 5902 3900 |0083: iput v2, v0, Lorg/jsl/collider/Collider$Config;.threadPriority:I // field@0039 │ │ +01d18e: 7110 0302 0000 |0085: invoke-static {v0}, Lorg/jsl/collider/Collider;.create:(Lorg/jsl/collider/Collider$Config;)Lorg/jsl/collider/Collider; // method@0203 │ │ +01d194: 0c02 |0088: move-result-object v2 │ │ +01d196: 5b12 e402 |0089: iput-object v2, v1, Lorg/jsl/wfwt/WalkieService;.m_collider:Lorg/jsl/collider/Collider; // field@02e4 │ │ +01d19a: 2202 5001 |008b: new-instance v2, Lorg/jsl/wfwt/WalkieService$ColliderThread; // type@0150 │ │ +01d19e: 5413 e402 |008d: iget-object v3, v1, Lorg/jsl/wfwt/WalkieService;.m_collider:Lorg/jsl/collider/Collider; // field@02e4 │ │ +01d1a2: 7020 7005 3200 |008f: invoke-direct {v2, v3}, Lorg/jsl/wfwt/WalkieService$ColliderThread;.:(Lorg/jsl/collider/Collider;)V // method@0570 │ │ +01d1a8: 5b12 e502 |0092: iput-object v2, v1, Lorg/jsl/wfwt/WalkieService;.m_colliderThread:Lorg/jsl/wfwt/WalkieService$ColliderThread; // field@02e5 │ │ +01d1ac: 5200 3900 |0094: iget v0, v0, Lorg/jsl/collider/Collider$Config;.threadPriority:I // field@0039 │ │ +01d1b0: 6e20 7305 0200 |0096: invoke-virtual {v2, v0}, Lorg/jsl/wfwt/WalkieService$ColliderThread;.setPriority:(I)V // method@0573 │ │ +01d1b6: 220e 0901 |0099: new-instance v14, Lorg/jsl/collider/TimerQueue; // type@0109 │ │ +01d1ba: 5410 e402 |009b: iget-object v0, v1, Lorg/jsl/wfwt/WalkieService;.m_collider:Lorg/jsl/collider/Collider; // field@02e4 │ │ +01d1be: 6e10 0502 0000 |009d: invoke-virtual {v0}, Lorg/jsl/collider/Collider;.getThreadPool:()Lorg/jsl/collider/ThreadPool; // method@0205 │ │ +01d1c4: 0c00 |00a0: move-result-object v0 │ │ +01d1c6: 7020 1b04 0e00 |00a1: invoke-direct {v14, v0}, Lorg/jsl/collider/TimerQueue;.:(Lorg/jsl/collider/ThreadPool;)V // method@041b │ │ +01d1cc: 2200 1d01 |00a4: new-instance v0, Lorg/jsl/wfwt/Channel; // type@011d │ │ +01d1d0: 5412 e102 |00a6: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@02e1 │ │ +01d1d4: 6e10 4a04 0200 |00a8: invoke-virtual {v2}, Lorg/jsl/wfwt/AudioRecorder;.getAudioFormat:()Ljava/lang/String; // method@044a │ │ +01d1da: 0c08 |00ab: move-result-object v8 │ │ +01d1dc: 5419 e402 |00ac: iget-object v9, v1, Lorg/jsl/wfwt/WalkieService;.m_collider:Lorg/jsl/collider/Collider; // field@02e4 │ │ +01d1e0: 541a ea02 |00ae: iget-object v10, v1, Lorg/jsl/wfwt/WalkieService;.m_nsdManager:Landroid/net/nsd/NsdManager; // field@02ea │ │ +01d1e4: 1a0b ac03 |00b0: const-string v11, "_wfwt._tcp" // string@03ac │ │ +01d1e8: 1a0c b300 |00b2: const-string v12, "Channel_00" // string@00b3 │ │ +01d1ec: 6002 1c02 |00b4: sget v2, Lorg/jsl/wfwt/Config;.PING_INTERVAL:I // field@021c │ │ +01d1f0: 0705 |00b6: move-object v5, v0 │ │ +01d1f2: 07f3 |00b7: move-object v3, v15 │ │ +01d1f4: 012f |00b8: move v15, v2 │ │ +01d1f6: 760b 6d04 0500 |00b9: invoke-direct/range {v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15}, Lorg/jsl/wfwt/Channel;.:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/jsl/collider/Collider;Landroid/net/nsd/NsdManager;Ljava/lang/String;Ljava/lang/String;Lorg/jsl/wfwt/SessionManager;Lorg/jsl/collider/TimerQueue;I)V // method@046d │ │ +01d1fc: 5b10 e302 |00bc: iput-object v0, v1, Lorg/jsl/wfwt/WalkieService;.m_channel:Lorg/jsl/wfwt/Channel; // field@02e3 │ │ +01d200: 2200 5101 |00be: new-instance v0, Lorg/jsl/wfwt/WalkieService$DiscoveryListener; // type@0151 │ │ +01d204: 7030 7605 1003 |00c0: invoke-direct {v0, v1, v3}, Lorg/jsl/wfwt/WalkieService$DiscoveryListener;.:(Lorg/jsl/wfwt/WalkieService;Lorg/jsl/wfwt/WalkieService$1;)V // method@0576 │ │ +01d20a: 5b10 e702 |00c3: iput-object v0, v1, Lorg/jsl/wfwt/WalkieService;.m_discoveryListener:Lorg/jsl/wfwt/WalkieService$DiscoveryListener; // field@02e7 │ │ +01d20e: 5412 ea02 |00c5: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService;.m_nsdManager:Landroid/net/nsd/NsdManager; // field@02ea │ │ +01d212: 1a03 ac03 |00c7: const-string v3, "_wfwt._tcp" // string@03ac │ │ +01d216: 1215 |00c9: const/4 v5, #int 1 // #1 │ │ +01d218: 6e40 4d00 3205 |00ca: invoke-virtual {v2, v3, v5, v0}, Landroid/net/nsd/NsdManager;.discoverServices:(Ljava/lang/String;ILandroid/net/nsd/NsdManager$DiscoveryListener;)V // method@004d │ │ +01d21e: 5410 e502 |00cd: iget-object v0, v1, Lorg/jsl/wfwt/WalkieService;.m_colliderThread:Lorg/jsl/wfwt/WalkieService$ColliderThread; // field@02e5 │ │ +01d222: 6e10 7405 0000 |00cf: invoke-virtual {v0}, Lorg/jsl/wfwt/WalkieService$ColliderThread;.start:()V // method@0574 │ │ +01d228: 280b |00d2: goto 00dd // +000b │ │ +01d22a: 0d00 |00d3: move-exception v0 │ │ +01d22c: 6202 dc02 |00d4: sget-object v2, Lorg/jsl/wfwt/WalkieService;.LOG_TAG:Ljava/lang/String; // field@02dc │ │ +01d230: 6e10 9200 0000 |00d6: invoke-virtual {v0}, Ljava/io/IOException;.toString:()Ljava/lang/String; // method@0092 │ │ +01d236: 0c00 |00d9: move-result-object v0 │ │ +01d238: 7120 6600 0200 |00da: invoke-static {v2, v0}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ +01d23e: 0f04 |00dd: return v4 │ │ catches : 1 │ │ 0x007c - 0x00d2 │ │ Ljava/io/IOException; -> 0x00d3 │ │ positions : │ │ 0x0004 line=253 │ │ 0x0023 line=255 │ │ 0x0028 line=257 │ │ @@ -18584,23 +18584,23 @@ │ │ type : '(Landroid/content/Intent;)Z' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 15 16-bit code units │ │ -01d040: |[01d040] org.jsl.wfwt.WalkieService.onUnbind:(Landroid/content/Intent;)Z │ │ -01d050: 6202 dc02 |0000: sget-object v2, Lorg/jsl/wfwt/WalkieService;.LOG_TAG:Ljava/lang/String; // field@02dc │ │ -01d054: 1a00 1c06 |0002: const-string v0, "onUnbind" // string@061c │ │ -01d058: 7120 6100 0200 |0004: invoke-static {v2, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -01d05e: 5412 e302 |0007: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService;.m_channel:Lorg/jsl/wfwt/Channel; // field@02e3 │ │ -01d062: 1200 |0009: const/4 v0, #int 0 // #0 │ │ -01d064: 6e20 9104 0200 |000a: invoke-virtual {v2, v0}, Lorg/jsl/wfwt/Channel;.setStateListener:(Lorg/jsl/wfwt/Channel$StateListener;)V // method@0491 │ │ -01d06a: 1202 |000d: const/4 v2, #int 0 // #0 │ │ -01d06c: 0f02 |000e: return v2 │ │ +01d044: |[01d044] org.jsl.wfwt.WalkieService.onUnbind:(Landroid/content/Intent;)Z │ │ +01d054: 6202 dc02 |0000: sget-object v2, Lorg/jsl/wfwt/WalkieService;.LOG_TAG:Ljava/lang/String; // field@02dc │ │ +01d058: 1a00 1c06 |0002: const-string v0, "onUnbind" // string@061c │ │ +01d05c: 7120 6100 0200 |0004: invoke-static {v2, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +01d062: 5412 e302 |0007: iget-object v2, v1, Lorg/jsl/wfwt/WalkieService;.m_channel:Lorg/jsl/wfwt/Channel; // field@02e3 │ │ +01d066: 1200 |0009: const/4 v0, #int 0 // #0 │ │ +01d068: 6e20 9104 0200 |000a: invoke-virtual {v2, v0}, Lorg/jsl/wfwt/Channel;.setStateListener:(Lorg/jsl/wfwt/Channel$StateListener;)V // method@0491 │ │ +01d06e: 1202 |000d: const/4 v2, #int 0 // #0 │ │ +01d070: 0f02 |000e: return v2 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=246 │ │ 0x0007 line=247 │ │ locals : │ │ 0x0000 - 0x000f reg=1 this Lorg/jsl/wfwt/WalkieService; │ │ 0x0000 - 0x000f reg=2 (null) Landroid/content/Intent; │ │ @@ -35915,17 +35915,17 @@ │ │ type : '(I)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 4 16-bit code units │ │ -017c28: |[017c28] org.jsl.wfwt.ChannelSession$1.:(I)V │ │ -017c38: 7020 f403 1000 |0000: invoke-direct {v0, v1}, Lorg/jsl/collider/StreamDefragger;.:(I)V // method@03f4 │ │ -017c3e: 0e00 |0003: return-void │ │ +017c2c: |[017c2c] org.jsl.wfwt.ChannelSession$1.:(I)V │ │ +017c3c: 7020 f403 1000 |0000: invoke-direct {v0, v1}, Lorg/jsl/collider/StreamDefragger;.:(I)V // method@03f4 │ │ +017c42: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=177 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/jsl/wfwt/ChannelSession$1; │ │ 0x0000 - 0x0004 reg=1 (null) I │ │ │ │ @@ -35935,20 +35935,20 @@ │ │ type : '(Ljava/nio/ByteBuffer;)I' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 8 16-bit code units │ │ -017c08: |[017c08] org.jsl.wfwt.ChannelSession$1.validateHeader:(Ljava/nio/ByteBuffer;)I │ │ -017c18: 7110 2505 0100 |0000: invoke-static {v1}, Lorg/jsl/wfwt/Protocol$Message;.getLength:(Ljava/nio/ByteBuffer;)I // method@0525 │ │ -017c1e: 0a01 |0003: move-result v1 │ │ -017c20: 3c01 0300 |0004: if-gtz v1, 0007 // +0003 │ │ -017c24: 12f1 |0006: const/4 v1, #int -1 // #ff │ │ -017c26: 0f01 |0007: return v1 │ │ +017c0c: |[017c0c] org.jsl.wfwt.ChannelSession$1.validateHeader:(Ljava/nio/ByteBuffer;)I │ │ +017c1c: 7110 2505 0100 |0000: invoke-static {v1}, Lorg/jsl/wfwt/Protocol$Message;.getLength:(Ljava/nio/ByteBuffer;)I // method@0525 │ │ +017c22: 0a01 |0003: move-result v1 │ │ +017c24: 3c01 0300 |0004: if-gtz v1, 0007 // +0003 │ │ +017c28: 12f1 |0006: const/4 v1, #int -1 // #ff │ │ +017c2a: 0f01 |0007: return v1 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=182 │ │ locals : │ │ 0x0000 - 0x0008 reg=0 this Lorg/jsl/wfwt/ChannelSession$1; │ │ 0x0000 - 0x0008 reg=1 (null) Ljava/nio/ByteBuffer; │ │ │ │ @@ -35991,19 +35991,19 @@ │ │ type : '(Lorg/jsl/wfwt/ChannelSession;J)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 4 │ │ ins : 4 │ │ outs : 1 │ │ insns size : 8 16-bit code units │ │ -017c60: |[017c60] org.jsl.wfwt.ChannelSession$TimerHandler.:(Lorg/jsl/wfwt/ChannelSession;J)V │ │ -017c70: 5b01 0802 |0000: iput-object v1, v0, Lorg/jsl/wfwt/ChannelSession$TimerHandler;.this$0:Lorg/jsl/wfwt/ChannelSession; // field@0208 │ │ -017c74: 7010 b300 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -017c7a: 5a02 0702 |0005: iput-wide v2, v0, Lorg/jsl/wfwt/ChannelSession$TimerHandler;.m_interval:J // field@0207 │ │ -017c7e: 0e00 |0007: return-void │ │ +017c64: |[017c64] org.jsl.wfwt.ChannelSession$TimerHandler.:(Lorg/jsl/wfwt/ChannelSession;J)V │ │ +017c74: 5b01 0802 |0000: iput-object v1, v0, Lorg/jsl/wfwt/ChannelSession$TimerHandler;.this$0:Lorg/jsl/wfwt/ChannelSession; // field@0208 │ │ +017c78: 7010 b300 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +017c7e: 5a02 0702 |0005: iput-wide v2, v0, Lorg/jsl/wfwt/ChannelSession$TimerHandler;.m_interval:J // field@0207 │ │ +017c82: 0e00 |0007: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=71 │ │ 0x0005 line=72 │ │ locals : │ │ 0x0000 - 0x0008 reg=0 this Lorg/jsl/wfwt/ChannelSession$TimerHandler; │ │ 0x0000 - 0x0008 reg=1 (null) Lorg/jsl/wfwt/ChannelSession; │ │ @@ -36015,19 +36015,19 @@ │ │ type : '()J' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 8 16-bit code units │ │ -017c40: |[017c40] org.jsl.wfwt.ChannelSession$TimerHandler.run:()J │ │ -017c50: 5420 0802 |0000: iget-object v0, v2, Lorg/jsl/wfwt/ChannelSession$TimerHandler;.this$0:Lorg/jsl/wfwt/ChannelSession; // field@0208 │ │ -017c54: 7110 9d04 0000 |0002: invoke-static {v0}, Lorg/jsl/wfwt/ChannelSession;.access$000:(Lorg/jsl/wfwt/ChannelSession;)V // method@049d │ │ -017c5a: 5320 0702 |0005: iget-wide v0, v2, Lorg/jsl/wfwt/ChannelSession$TimerHandler;.m_interval:J // field@0207 │ │ -017c5e: 1000 |0007: return-wide v0 │ │ +017c44: |[017c44] org.jsl.wfwt.ChannelSession$TimerHandler.run:()J │ │ +017c54: 5420 0802 |0000: iget-object v0, v2, Lorg/jsl/wfwt/ChannelSession$TimerHandler;.this$0:Lorg/jsl/wfwt/ChannelSession; // field@0208 │ │ +017c58: 7110 9d04 0000 |0002: invoke-static {v0}, Lorg/jsl/wfwt/ChannelSession;.access$000:(Lorg/jsl/wfwt/ChannelSession;)V // method@049d │ │ +017c5e: 5320 0702 |0005: iget-wide v0, v2, Lorg/jsl/wfwt/ChannelSession$TimerHandler;.m_interval:J // field@0207 │ │ +017c62: 1000 |0007: return-wide v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=77 │ │ 0x0005 line=78 │ │ locals : │ │ 0x0000 - 0x0008 reg=2 this Lorg/jsl/wfwt/ChannelSession$TimerHandler; │ │ │ │ @@ -36142,62 +36142,62 @@ │ │ type : '()V' │ │ access : 0x10008 (STATIC CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 0 │ │ outs : 2 │ │ insns size : 11 16-bit code units │ │ -017d1c: |[017d1c] org.jsl.wfwt.ChannelSession.:()V │ │ -017d2c: 1c00 2001 |0000: const-class v0, Lorg/jsl/wfwt/ChannelSession; // type@0120 │ │ -017d30: 1a01 cb05 |0002: const-string v1, "m_totalBytesReceived" // string@05cb │ │ -017d34: 7120 9301 1000 |0004: invoke-static {v0, v1}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater; // method@0193 │ │ -017d3a: 0c00 |0007: move-result-object v0 │ │ -017d3c: 6900 1b02 |0008: sput-object v0, Lorg/jsl/wfwt/ChannelSession;.s_totalBytesReceivedUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater; // field@021b │ │ -017d40: 0e00 |000a: return-void │ │ +017d20: |[017d20] org.jsl.wfwt.ChannelSession.:()V │ │ +017d30: 1c00 2001 |0000: const-class v0, Lorg/jsl/wfwt/ChannelSession; // type@0120 │ │ +017d34: 1a01 cb05 |0002: const-string v1, "m_totalBytesReceived" // string@05cb │ │ +017d38: 7120 9301 1000 |0004: invoke-static {v0, v1}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater; // method@0193 │ │ +017d3e: 0c00 |0007: move-result-object v0 │ │ +017d40: 6900 1b02 |0008: sput-object v0, Lorg/jsl/wfwt/ChannelSession;.s_totalBytesReceivedUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater; // field@021b │ │ +017d44: 0e00 |000a: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=40 │ │ locals : │ │ │ │ #1 : (in Lorg/jsl/wfwt/ChannelSession;) │ │ name : '' │ │ type : '(Lorg/jsl/wfwt/Channel;Ljava/lang/String;Lorg/jsl/collider/Session;Lorg/jsl/collider/StreamDefragger;Lorg/jsl/wfwt/SessionManager;Lorg/jsl/wfwt/AudioPlayer;Lorg/jsl/collider/TimerQueue;I)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 11 │ │ ins : 9 │ │ outs : 5 │ │ insns size : 55 16-bit code units │ │ -017d44: |[017d44] org.jsl.wfwt.ChannelSession.:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;Lorg/jsl/collider/Session;Lorg/jsl/collider/StreamDefragger;Lorg/jsl/wfwt/SessionManager;Lorg/jsl/wfwt/AudioPlayer;Lorg/jsl/collider/TimerQueue;I)V │ │ -017d54: 7010 b300 0200 |0000: invoke-direct {v2}, Ljava/lang/Object;.:()V // method@00b3 │ │ -017d5a: 5b23 0d02 |0003: iput-object v3, v2, Lorg/jsl/wfwt/ChannelSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@020d │ │ -017d5e: 5b24 1402 |0005: iput-object v4, v2, Lorg/jsl/wfwt/ChannelSession;.m_serviceName:Ljava/lang/String; // field@0214 │ │ -017d62: 5b25 1502 |0007: iput-object v5, v2, Lorg/jsl/wfwt/ChannelSession;.m_session:Lorg/jsl/collider/Session; // field@0215 │ │ -017d66: 5b26 1702 |0009: iput-object v6, v2, Lorg/jsl/wfwt/ChannelSession;.m_streamDefragger:Lorg/jsl/collider/StreamDefragger; // field@0217 │ │ -017d6a: 5b27 1602 |000b: iput-object v7, v2, Lorg/jsl/wfwt/ChannelSession;.m_sessionManager:Lorg/jsl/wfwt/SessionManager; // field@0216 │ │ -017d6e: 5b28 0c02 |000d: iput-object v8, v2, Lorg/jsl/wfwt/ChannelSession;.m_audioPlayer:Lorg/jsl/wfwt/AudioPlayer; // field@020c │ │ -017d72: 5b29 1902 |000f: iput-object v9, v2, Lorg/jsl/wfwt/ChannelSession;.m_timerQueue:Lorg/jsl/collider/TimerQueue; // field@0219 │ │ -017d76: 3d0a 1b00 |0011: if-lez v10, 002c // +001b │ │ -017d7a: 1303 0800 |0013: const/16 v3, #int 8 // #8 │ │ -017d7e: 2333 5a01 |0015: new-array v3, v3, [J // type@015a │ │ -017d82: 5b23 1102 |0017: iput-object v3, v2, Lorg/jsl/wfwt/ChannelSession;.m_pingSendTime:[J // field@0211 │ │ -017d86: 2203 1f01 |0019: new-instance v3, Lorg/jsl/wfwt/ChannelSession$TimerHandler; // type@011f │ │ -017d8a: 6204 0800 |001b: sget-object v4, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@0008 │ │ -017d8e: 81a0 |001d: int-to-long v0, v10 │ │ -017d90: 6e30 8901 0401 |001e: invoke-virtual {v4, v0, v1}, Ljava/util/concurrent/TimeUnit;.toMillis:(J)J // method@0189 │ │ -017d96: 0b04 |0021: move-result-wide v4 │ │ -017d98: 7040 9904 2354 |0022: invoke-direct {v3, v2, v4, v5}, Lorg/jsl/wfwt/ChannelSession$TimerHandler;.:(Lorg/jsl/wfwt/ChannelSession;J)V // method@0499 │ │ -017d9e: 5b23 1802 |0025: iput-object v3, v2, Lorg/jsl/wfwt/ChannelSession;.m_timerHandler:Lorg/jsl/wfwt/ChannelSession$TimerHandler; // field@0218 │ │ -017da2: 6204 0800 |0027: sget-object v4, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@0008 │ │ -017da6: 6e54 2204 3910 |0029: invoke-virtual {v9, v3, v0, v1, v4}, Lorg/jsl/collider/TimerQueue;.schedule:(Lorg/jsl/collider/TimerQueue$Task;JLjava/util/concurrent/TimeUnit;)I // method@0422 │ │ -017dac: 6e20 4005 2700 |002c: invoke-virtual {v7, v2}, Lorg/jsl/wfwt/SessionManager;.addSession:(Lorg/jsl/wfwt/ChannelSession;)V // method@0540 │ │ -017db2: 6e10 f703 0600 |002f: invoke-virtual {v6}, Lorg/jsl/collider/StreamDefragger;.getNext:()Lorg/jsl/collider/RetainableByteBuffer; // method@03f7 │ │ -017db8: 0c03 |0032: move-result-object v3 │ │ -017dba: 7020 a804 3200 |0033: invoke-direct {v2, v3}, Lorg/jsl/wfwt/ChannelSession;.onDataReceivedEx:(Lorg/jsl/collider/RetainableByteBuffer;)V // method@04a8 │ │ -017dc0: 0e00 |0036: return-void │ │ +017d48: |[017d48] org.jsl.wfwt.ChannelSession.:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;Lorg/jsl/collider/Session;Lorg/jsl/collider/StreamDefragger;Lorg/jsl/wfwt/SessionManager;Lorg/jsl/wfwt/AudioPlayer;Lorg/jsl/collider/TimerQueue;I)V │ │ +017d58: 7010 b300 0200 |0000: invoke-direct {v2}, Ljava/lang/Object;.:()V // method@00b3 │ │ +017d5e: 5b23 0d02 |0003: iput-object v3, v2, Lorg/jsl/wfwt/ChannelSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@020d │ │ +017d62: 5b24 1402 |0005: iput-object v4, v2, Lorg/jsl/wfwt/ChannelSession;.m_serviceName:Ljava/lang/String; // field@0214 │ │ +017d66: 5b25 1502 |0007: iput-object v5, v2, Lorg/jsl/wfwt/ChannelSession;.m_session:Lorg/jsl/collider/Session; // field@0215 │ │ +017d6a: 5b26 1702 |0009: iput-object v6, v2, Lorg/jsl/wfwt/ChannelSession;.m_streamDefragger:Lorg/jsl/collider/StreamDefragger; // field@0217 │ │ +017d6e: 5b27 1602 |000b: iput-object v7, v2, Lorg/jsl/wfwt/ChannelSession;.m_sessionManager:Lorg/jsl/wfwt/SessionManager; // field@0216 │ │ +017d72: 5b28 0c02 |000d: iput-object v8, v2, Lorg/jsl/wfwt/ChannelSession;.m_audioPlayer:Lorg/jsl/wfwt/AudioPlayer; // field@020c │ │ +017d76: 5b29 1902 |000f: iput-object v9, v2, Lorg/jsl/wfwt/ChannelSession;.m_timerQueue:Lorg/jsl/collider/TimerQueue; // field@0219 │ │ +017d7a: 3d0a 1b00 |0011: if-lez v10, 002c // +001b │ │ +017d7e: 1303 0800 |0013: const/16 v3, #int 8 // #8 │ │ +017d82: 2333 5a01 |0015: new-array v3, v3, [J // type@015a │ │ +017d86: 5b23 1102 |0017: iput-object v3, v2, Lorg/jsl/wfwt/ChannelSession;.m_pingSendTime:[J // field@0211 │ │ +017d8a: 2203 1f01 |0019: new-instance v3, Lorg/jsl/wfwt/ChannelSession$TimerHandler; // type@011f │ │ +017d8e: 6204 0800 |001b: sget-object v4, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@0008 │ │ +017d92: 81a0 |001d: int-to-long v0, v10 │ │ +017d94: 6e30 8901 0401 |001e: invoke-virtual {v4, v0, v1}, Ljava/util/concurrent/TimeUnit;.toMillis:(J)J // method@0189 │ │ +017d9a: 0b04 |0021: move-result-wide v4 │ │ +017d9c: 7040 9904 2354 |0022: invoke-direct {v3, v2, v4, v5}, Lorg/jsl/wfwt/ChannelSession$TimerHandler;.:(Lorg/jsl/wfwt/ChannelSession;J)V // method@0499 │ │ +017da2: 5b23 1802 |0025: iput-object v3, v2, Lorg/jsl/wfwt/ChannelSession;.m_timerHandler:Lorg/jsl/wfwt/ChannelSession$TimerHandler; // field@0218 │ │ +017da6: 6204 0800 |0027: sget-object v4, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@0008 │ │ +017daa: 6e54 2204 3910 |0029: invoke-virtual {v9, v3, v0, v1, v4}, Lorg/jsl/collider/TimerQueue;.schedule:(Lorg/jsl/collider/TimerQueue$Task;JLjava/util/concurrent/TimeUnit;)I // method@0422 │ │ +017db0: 6e20 4005 2700 |002c: invoke-virtual {v7, v2}, Lorg/jsl/wfwt/SessionManager;.addSession:(Lorg/jsl/wfwt/ChannelSession;)V // method@0540 │ │ +017db6: 6e10 f703 0600 |002f: invoke-virtual {v6}, Lorg/jsl/collider/StreamDefragger;.getNext:()Lorg/jsl/collider/RetainableByteBuffer; // method@03f7 │ │ +017dbc: 0c03 |0032: move-result-object v3 │ │ +017dbe: 7020 a804 3200 |0033: invoke-direct {v2, v3}, Lorg/jsl/wfwt/ChannelSession;.onDataReceivedEx:(Lorg/jsl/collider/RetainableByteBuffer;)V // method@04a8 │ │ +017dc4: 0e00 |0036: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=199 │ │ 0x0003 line=200 │ │ 0x0005 line=201 │ │ 0x0007 line=202 │ │ 0x0009 line=203 │ │ @@ -36225,17 +36225,17 @@ │ │ type : '(Lorg/jsl/wfwt/ChannelSession;)V' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -017dc4: |[017dc4] org.jsl.wfwt.ChannelSession.access$000:(Lorg/jsl/wfwt/ChannelSession;)V │ │ -017dd4: 7010 a304 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/ChannelSession;.handlePingTimeout:()V // method@04a3 │ │ -017dda: 0e00 |0003: return-void │ │ +017dc8: |[017dc8] org.jsl.wfwt.ChannelSession.access$000:(Lorg/jsl/wfwt/ChannelSession;)V │ │ +017dd8: 7010 a304 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/ChannelSession;.handlePingTimeout:()V // method@04a3 │ │ +017dde: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=33 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 (null) Lorg/jsl/wfwt/ChannelSession; │ │ │ │ #3 : (in Lorg/jsl/wfwt/ChannelSession;) │ │ @@ -36243,51 +36243,51 @@ │ │ type : '()Lorg/jsl/collider/StreamDefragger;' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 2 │ │ ins : 0 │ │ outs : 2 │ │ insns size : 7 16-bit code units │ │ -017cfc: |[017cfc] org.jsl.wfwt.ChannelSession.createStreamDefragger:()Lorg/jsl/collider/StreamDefragger; │ │ -017d0c: 2200 1e01 |0000: new-instance v0, Lorg/jsl/wfwt/ChannelSession$1; // type@011e │ │ -017d10: 1241 |0002: const/4 v1, #int 4 // #4 │ │ -017d12: 7020 9704 1000 |0003: invoke-direct {v0, v1}, Lorg/jsl/wfwt/ChannelSession$1;.:(I)V // method@0497 │ │ -017d18: 1100 |0006: return-object v0 │ │ +017d00: |[017d00] org.jsl.wfwt.ChannelSession.createStreamDefragger:()Lorg/jsl/collider/StreamDefragger; │ │ +017d10: 2200 1e01 |0000: new-instance v0, Lorg/jsl/wfwt/ChannelSession$1; // type@011e │ │ +017d14: 1241 |0002: const/4 v1, #int 4 // #4 │ │ +017d16: 7020 9704 1000 |0003: invoke-direct {v0, v1}, Lorg/jsl/wfwt/ChannelSession$1;.:(I)V // method@0497 │ │ +017d1c: 1100 |0006: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=176 │ │ locals : │ │ │ │ #4 : (in Lorg/jsl/wfwt/ChannelSession;) │ │ name : 'getLogPrefix' │ │ type : '()Ljava/lang/String;' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 38 16-bit code units │ │ -017c80: |[017c80] org.jsl.wfwt.ChannelSession.getLogPrefix:()Ljava/lang/String; │ │ -017c90: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -017c94: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -017c9a: 5421 0d02 |0005: iget-object v1, v2, Lorg/jsl/wfwt/ChannelSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@020d │ │ -017c9e: 6e10 8904 0100 |0007: invoke-virtual {v1}, Lorg/jsl/wfwt/Channel;.getName:()Ljava/lang/String; // method@0489 │ │ -017ca4: 0c01 |000a: move-result-object v1 │ │ -017ca6: 6e20 cb00 1000 |000b: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -017cac: 1a01 0100 |000e: const-string v1, " " // string@0001 │ │ -017cb0: 6e20 cb00 1000 |0010: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -017cb6: 5421 1502 |0013: iget-object v1, v2, Lorg/jsl/wfwt/ChannelSession;.m_session:Lorg/jsl/collider/Session; // field@0215 │ │ -017cba: 7210 5003 0100 |0015: invoke-interface {v1}, Lorg/jsl/collider/Session;.getRemoteAddress:()Ljava/net/SocketAddress; // method@0350 │ │ -017cc0: 0c01 |0018: move-result-object v1 │ │ -017cc2: 6e20 ca00 1000 |0019: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ -017cc8: 1a01 5100 |001c: const-string v1, ": " // string@0051 │ │ -017ccc: 6e20 cb00 1000 |001e: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -017cd2: 6e10 ce00 0000 |0021: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -017cd8: 0c00 |0024: move-result-object v0 │ │ -017cda: 1100 |0025: return-object v0 │ │ +017c84: |[017c84] org.jsl.wfwt.ChannelSession.getLogPrefix:()Ljava/lang/String; │ │ +017c94: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +017c98: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +017c9e: 5421 0d02 |0005: iget-object v1, v2, Lorg/jsl/wfwt/ChannelSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@020d │ │ +017ca2: 6e10 8904 0100 |0007: invoke-virtual {v1}, Lorg/jsl/wfwt/Channel;.getName:()Ljava/lang/String; // method@0489 │ │ +017ca8: 0c01 |000a: move-result-object v1 │ │ +017caa: 6e20 cb00 1000 |000b: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +017cb0: 1a01 0100 |000e: const-string v1, " " // string@0001 │ │ +017cb4: 6e20 cb00 1000 |0010: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +017cba: 5421 1502 |0013: iget-object v1, v2, Lorg/jsl/wfwt/ChannelSession;.m_session:Lorg/jsl/collider/Session; // field@0215 │ │ +017cbe: 7210 5003 0100 |0015: invoke-interface {v1}, Lorg/jsl/collider/Session;.getRemoteAddress:()Ljava/net/SocketAddress; // method@0350 │ │ +017cc4: 0c01 |0018: move-result-object v1 │ │ +017cc6: 6e20 ca00 1000 |0019: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ +017ccc: 1a01 5100 |001c: const-string v1, ": " // string@0051 │ │ +017cd0: 6e20 cb00 1000 |001e: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +017cd6: 6e10 ce00 0000 |0021: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +017cdc: 0c00 |0024: move-result-object v0 │ │ +017cde: 1100 |0025: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=63 │ │ locals : │ │ 0x0000 - 0x0026 reg=2 this Lorg/jsl/wfwt/ChannelSession; │ │ │ │ #5 : (in Lorg/jsl/wfwt/ChannelSession;) │ │ @@ -36295,56 +36295,56 @@ │ │ type : '(Lorg/jsl/collider/RetainableByteBuffer;)V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 4 │ │ ins : 2 │ │ outs : 3 │ │ insns size : 83 16-bit code units │ │ -017ddc: |[017ddc] org.jsl.wfwt.ChannelSession.handleMessage:(Lorg/jsl/collider/RetainableByteBuffer;)V │ │ -017dec: 7110 2605 0300 |0000: invoke-static {v3}, Lorg/jsl/wfwt/Protocol$Message;.getMessageId:(Lorg/jsl/collider/RetainableByteBuffer;)S // method@0526 │ │ -017df2: 0a00 |0003: move-result v0 │ │ -017df4: 1241 |0004: const/4 v1, #int 4 // #4 │ │ -017df6: 3210 3500 |0005: if-eq v0, v1, 003a // +0035 │ │ -017dfa: 1251 |0007: const/4 v1, #int 5 // #5 │ │ -017dfc: 3210 2e00 |0008: if-eq v0, v1, 0036 // +002e │ │ -017e00: 1261 |000a: const/4 v1, #int 6 // #6 │ │ -017e02: 3210 2700 |000b: if-eq v0, v1, 0032 // +0027 │ │ -017e06: 1271 |000d: const/4 v1, #int 7 // #7 │ │ -017e08: 3210 2000 |000e: if-eq v0, v1, 002e // +0020 │ │ -017e0c: 2203 6700 |0010: new-instance v3, Ljava/lang/StringBuilder; // type@0067 │ │ -017e10: 7010 c500 0300 |0012: invoke-direct {v3}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -017e16: 7010 9f04 0200 |0015: invoke-direct {v2}, Lorg/jsl/wfwt/ChannelSession;.getLogPrefix:()Ljava/lang/String; // method@049f │ │ -017e1c: 0c01 |0018: move-result-object v1 │ │ -017e1e: 6e20 cb00 1300 |0019: invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -017e24: 1a01 0707 |001c: const-string v1, "unexpected message " // string@0707 │ │ -017e28: 6e20 cb00 1300 |001e: invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -017e2e: 6e20 c800 0300 |0021: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ -017e34: 6e10 ce00 0300 |0024: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -017e3a: 0c03 |0027: move-result-object v3 │ │ -017e3c: 1a00 b100 |0028: const-string v0, "ChannelSession" // string@00b1 │ │ -017e40: 7120 6600 3000 |002a: invoke-static {v0, v3}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ -017e46: 2825 |002d: goto 0052 // +0025 │ │ -017e48: 7020 a504 3200 |002e: invoke-direct {v2, v3}, Lorg/jsl/wfwt/ChannelSession;.handleStationName:(Lorg/jsl/collider/RetainableByteBuffer;)V // method@04a5 │ │ -017e4e: 2821 |0031: goto 0052 // +0021 │ │ -017e50: 7020 a404 3200 |0032: invoke-direct {v2, v3}, Lorg/jsl/wfwt/ChannelSession;.handlePong:(Lorg/jsl/collider/RetainableByteBuffer;)V // method@04a4 │ │ -017e56: 281d |0035: goto 0052 // +001d │ │ -017e58: 7020 a204 3200 |0036: invoke-direct {v2, v3}, Lorg/jsl/wfwt/ChannelSession;.handlePing:(Lorg/jsl/collider/RetainableByteBuffer;)V // method@04a2 │ │ -017e5e: 2819 |0039: goto 0052 // +0019 │ │ -017e60: 7110 1005 0300 |003a: invoke-static {v3}, Lorg/jsl/wfwt/Protocol$AudioFrame;.getBatchStart:(Lorg/jsl/collider/RetainableByteBuffer;)Z // method@0510 │ │ -017e66: 0a00 |003d: move-result v0 │ │ -017e68: 7110 0f05 0300 |003e: invoke-static {v3}, Lorg/jsl/wfwt/Protocol$AudioFrame;.getAudioData:(Lorg/jsl/collider/RetainableByteBuffer;)Lorg/jsl/collider/RetainableByteBuffer; // method@050f │ │ -017e6e: 0c03 |0041: move-result-object v3 │ │ -017e70: 3903 0800 |0042: if-nez v3, 004a // +0008 │ │ -017e74: 5423 0c02 |0044: iget-object v3, v2, Lorg/jsl/wfwt/ChannelSession;.m_audioPlayer:Lorg/jsl/wfwt/AudioPlayer; // field@020c │ │ -017e78: 6e10 3e04 0300 |0046: invoke-virtual {v3}, Lorg/jsl/wfwt/AudioPlayer;.batchEnd:()V // method@043e │ │ -017e7e: 2809 |0049: goto 0052 // +0009 │ │ -017e80: 5421 0c02 |004a: iget-object v1, v2, Lorg/jsl/wfwt/ChannelSession;.m_audioPlayer:Lorg/jsl/wfwt/AudioPlayer; // field@020c │ │ -017e84: 6e30 4004 0103 |004c: invoke-virtual {v1, v0, v3}, Lorg/jsl/wfwt/AudioPlayer;.play:(ZLorg/jsl/collider/RetainableByteBuffer;)V // method@0440 │ │ -017e8a: 6e10 e602 0300 |004f: invoke-virtual {v3}, Lorg/jsl/collider/RetainableByteBuffer;.release:()V // method@02e6 │ │ -017e90: 0e00 |0052: return-void │ │ +017de0: |[017de0] org.jsl.wfwt.ChannelSession.handleMessage:(Lorg/jsl/collider/RetainableByteBuffer;)V │ │ +017df0: 7110 2605 0300 |0000: invoke-static {v3}, Lorg/jsl/wfwt/Protocol$Message;.getMessageId:(Lorg/jsl/collider/RetainableByteBuffer;)S // method@0526 │ │ +017df6: 0a00 |0003: move-result v0 │ │ +017df8: 1241 |0004: const/4 v1, #int 4 // #4 │ │ +017dfa: 3210 3500 |0005: if-eq v0, v1, 003a // +0035 │ │ +017dfe: 1251 |0007: const/4 v1, #int 5 // #5 │ │ +017e00: 3210 2e00 |0008: if-eq v0, v1, 0036 // +002e │ │ +017e04: 1261 |000a: const/4 v1, #int 6 // #6 │ │ +017e06: 3210 2700 |000b: if-eq v0, v1, 0032 // +0027 │ │ +017e0a: 1271 |000d: const/4 v1, #int 7 // #7 │ │ +017e0c: 3210 2000 |000e: if-eq v0, v1, 002e // +0020 │ │ +017e10: 2203 6700 |0010: new-instance v3, Ljava/lang/StringBuilder; // type@0067 │ │ +017e14: 7010 c500 0300 |0012: invoke-direct {v3}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +017e1a: 7010 9f04 0200 |0015: invoke-direct {v2}, Lorg/jsl/wfwt/ChannelSession;.getLogPrefix:()Ljava/lang/String; // method@049f │ │ +017e20: 0c01 |0018: move-result-object v1 │ │ +017e22: 6e20 cb00 1300 |0019: invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +017e28: 1a01 0707 |001c: const-string v1, "unexpected message " // string@0707 │ │ +017e2c: 6e20 cb00 1300 |001e: invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +017e32: 6e20 c800 0300 |0021: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ +017e38: 6e10 ce00 0300 |0024: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +017e3e: 0c03 |0027: move-result-object v3 │ │ +017e40: 1a00 b100 |0028: const-string v0, "ChannelSession" // string@00b1 │ │ +017e44: 7120 6600 3000 |002a: invoke-static {v0, v3}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ +017e4a: 2825 |002d: goto 0052 // +0025 │ │ +017e4c: 7020 a504 3200 |002e: invoke-direct {v2, v3}, Lorg/jsl/wfwt/ChannelSession;.handleStationName:(Lorg/jsl/collider/RetainableByteBuffer;)V // method@04a5 │ │ +017e52: 2821 |0031: goto 0052 // +0021 │ │ +017e54: 7020 a404 3200 |0032: invoke-direct {v2, v3}, Lorg/jsl/wfwt/ChannelSession;.handlePong:(Lorg/jsl/collider/RetainableByteBuffer;)V // method@04a4 │ │ +017e5a: 281d |0035: goto 0052 // +001d │ │ +017e5c: 7020 a204 3200 |0036: invoke-direct {v2, v3}, Lorg/jsl/wfwt/ChannelSession;.handlePing:(Lorg/jsl/collider/RetainableByteBuffer;)V // method@04a2 │ │ +017e62: 2819 |0039: goto 0052 // +0019 │ │ +017e64: 7110 1005 0300 |003a: invoke-static {v3}, Lorg/jsl/wfwt/Protocol$AudioFrame;.getBatchStart:(Lorg/jsl/collider/RetainableByteBuffer;)Z // method@0510 │ │ +017e6a: 0a00 |003d: move-result v0 │ │ +017e6c: 7110 0f05 0300 |003e: invoke-static {v3}, Lorg/jsl/wfwt/Protocol$AudioFrame;.getAudioData:(Lorg/jsl/collider/RetainableByteBuffer;)Lorg/jsl/collider/RetainableByteBuffer; // method@050f │ │ +017e72: 0c03 |0041: move-result-object v3 │ │ +017e74: 3903 0800 |0042: if-nez v3, 004a // +0008 │ │ +017e78: 5423 0c02 |0044: iget-object v3, v2, Lorg/jsl/wfwt/ChannelSession;.m_audioPlayer:Lorg/jsl/wfwt/AudioPlayer; // field@020c │ │ +017e7c: 6e10 3e04 0300 |0046: invoke-virtual {v3}, Lorg/jsl/wfwt/AudioPlayer;.batchEnd:()V // method@043e │ │ +017e82: 2809 |0049: goto 0052 // +0009 │ │ +017e84: 5421 0c02 |004a: iget-object v1, v2, Lorg/jsl/wfwt/ChannelSession;.m_audioPlayer:Lorg/jsl/wfwt/AudioPlayer; // field@020c │ │ +017e88: 6e30 4004 0103 |004c: invoke-virtual {v1, v0, v3}, Lorg/jsl/wfwt/AudioPlayer;.play:(ZLorg/jsl/collider/RetainableByteBuffer;)V // method@0440 │ │ +017e8e: 6e10 e602 0300 |004f: invoke-virtual {v3}, Lorg/jsl/collider/RetainableByteBuffer;.release:()V // method@02e6 │ │ +017e94: 0e00 |0052: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=141 │ │ 0x0010 line=169 │ │ 0x002e line=165 │ │ 0x0032 line=161 │ │ 0x0036 line=157 │ │ @@ -36362,22 +36362,22 @@ │ │ type : '(Lorg/jsl/collider/RetainableByteBuffer;)V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 3 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 14 16-bit code units │ │ -017e94: |[017e94] org.jsl.wfwt.ChannelSession.handlePing:(Lorg/jsl/collider/RetainableByteBuffer;)V │ │ -017ea4: 7110 2b05 0200 |0000: invoke-static {v2}, Lorg/jsl/wfwt/Protocol$Ping;.getId:(Lorg/jsl/collider/RetainableByteBuffer;)I // method@052b │ │ -017eaa: 0a02 |0003: move-result v2 │ │ -017eac: 7110 2d05 0200 |0004: invoke-static {v2}, Lorg/jsl/wfwt/Protocol$Pong;.create:(I)Ljava/nio/ByteBuffer; // method@052d │ │ -017eb2: 0c02 |0007: move-result-object v2 │ │ -017eb4: 5410 1502 |0008: iget-object v0, v1, Lorg/jsl/wfwt/ChannelSession;.m_session:Lorg/jsl/collider/Session; // field@0215 │ │ -017eb8: 7220 5203 2000 |000a: invoke-interface {v0, v2}, Lorg/jsl/collider/Session;.sendData:(Ljava/nio/ByteBuffer;)I // method@0352 │ │ -017ebe: 0e00 |000d: return-void │ │ +017e98: |[017e98] org.jsl.wfwt.ChannelSession.handlePing:(Lorg/jsl/collider/RetainableByteBuffer;)V │ │ +017ea8: 7110 2b05 0200 |0000: invoke-static {v2}, Lorg/jsl/wfwt/Protocol$Ping;.getId:(Lorg/jsl/collider/RetainableByteBuffer;)I // method@052b │ │ +017eae: 0a02 |0003: move-result v2 │ │ +017eb0: 7110 2d05 0200 |0004: invoke-static {v2}, Lorg/jsl/wfwt/Protocol$Pong;.create:(I)Ljava/nio/ByteBuffer; // method@052d │ │ +017eb6: 0c02 |0007: move-result-object v2 │ │ +017eb8: 5410 1502 |0008: iget-object v0, v1, Lorg/jsl/wfwt/ChannelSession;.m_session:Lorg/jsl/collider/Session; // field@0215 │ │ +017ebc: 7220 5203 2000 |000a: invoke-interface {v0, v2}, Lorg/jsl/collider/Session;.sendData:(Ljava/nio/ByteBuffer;)I // method@0352 │ │ +017ec2: 0e00 |000d: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=107 │ │ 0x0004 line=108 │ │ 0x0008 line=109 │ │ locals : │ │ 0x0000 - 0x000e reg=1 this Lorg/jsl/wfwt/ChannelSession; │ │ @@ -36388,58 +36388,58 @@ │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 6 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 88 16-bit code units │ │ -017ec0: |[017ec0] org.jsl.wfwt.ChannelSession.handlePingTimeout:()V │ │ -017ed0: 5250 0e02 |0000: iget v0, v5, Lorg/jsl/wfwt/ChannelSession;.m_lastBytesReceived:I // field@020e │ │ -017ed4: 5251 1a02 |0002: iget v1, v5, Lorg/jsl/wfwt/ChannelSession;.m_totalBytesReceived:I // field@021a │ │ -017ed8: 3310 2c00 |0004: if-ne v0, v1, 0030 // +002c │ │ -017edc: 5250 1202 |0006: iget v0, v5, Lorg/jsl/wfwt/ChannelSession;.m_pingTimeouts:I // field@0212 │ │ -017ee0: d800 0001 |0008: add-int/lit8 v0, v0, #int 1 // #01 │ │ -017ee4: 5950 1202 |000a: iput v0, v5, Lorg/jsl/wfwt/ChannelSession;.m_pingTimeouts:I // field@0212 │ │ -017ee8: 1301 0a00 |000c: const/16 v1, #int 10 // #a │ │ -017eec: 3310 2900 |000e: if-ne v0, v1, 0037 // +0029 │ │ -017ef0: 2200 6700 |0010: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -017ef4: 7010 c500 0000 |0012: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -017efa: 7010 9f04 0500 |0015: invoke-direct {v5}, Lorg/jsl/wfwt/ChannelSession;.getLogPrefix:()Ljava/lang/String; // method@049f │ │ -017f00: 0c01 |0018: move-result-object v1 │ │ -017f02: 6e20 cb00 1000 |0019: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -017f08: 1a01 2b06 |001c: const-string v1, "ping timeout, close connection." // string@062b │ │ -017f0c: 6e20 cb00 1000 |001e: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -017f12: 6e10 ce00 0000 |0021: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -017f18: 0c00 |0024: move-result-object v0 │ │ -017f1a: 1a01 b100 |0025: const-string v1, "ChannelSession" // string@00b1 │ │ -017f1e: 7120 6400 0100 |0027: invoke-static {v1, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -017f24: 5450 1502 |002a: iget-object v0, v5, Lorg/jsl/wfwt/ChannelSession;.m_session:Lorg/jsl/collider/Session; // field@0215 │ │ -017f28: 7210 4d03 0000 |002c: invoke-interface {v0}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ -017f2e: 2808 |002f: goto 0037 // +0008 │ │ -017f30: 5250 1a02 |0030: iget v0, v5, Lorg/jsl/wfwt/ChannelSession;.m_totalBytesReceived:I // field@021a │ │ -017f34: 5950 0e02 |0032: iput v0, v5, Lorg/jsl/wfwt/ChannelSession;.m_lastBytesReceived:I // field@020e │ │ -017f38: 1200 |0034: const/4 v0, #int 0 // #0 │ │ -017f3a: 5950 1202 |0035: iput v0, v5, Lorg/jsl/wfwt/ChannelSession;.m_pingTimeouts:I // field@0212 │ │ -017f3e: 5250 1002 |0037: iget v0, v5, Lorg/jsl/wfwt/ChannelSession;.m_pingId:I // field@0210 │ │ -017f42: d800 0001 |0039: add-int/lit8 v0, v0, #int 1 // #01 │ │ -017f46: 1401 ffff ff7f |003b: const v1, #float nan // #7fffffff │ │ -017f4c: b510 |003e: and-int/2addr v0, v1 │ │ -017f4e: 5950 1002 |003f: iput v0, v5, Lorg/jsl/wfwt/ChannelSession;.m_pingId:I // field@0210 │ │ -017f52: 5451 1102 |0041: iget-object v1, v5, Lorg/jsl/wfwt/ChannelSession;.m_pingSendTime:[J // field@0211 │ │ -017f56: 2111 |0043: array-length v1, v1 │ │ -017f58: 9401 0001 |0044: rem-int v1, v0, v1 │ │ -017f5c: 7110 2905 0000 |0046: invoke-static {v0}, Lorg/jsl/wfwt/Protocol$Ping;.create:(I)Ljava/nio/ByteBuffer; // method@0529 │ │ -017f62: 0c00 |0049: move-result-object v0 │ │ -017f64: 5452 1102 |004a: iget-object v2, v5, Lorg/jsl/wfwt/ChannelSession;.m_pingSendTime:[J // field@0211 │ │ -017f68: 7100 d000 0000 |004c: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@00d0 │ │ -017f6e: 0b03 |004f: move-result-wide v3 │ │ -017f70: 4c03 0201 |0050: aput-wide v3, v2, v1 │ │ -017f74: 5451 1502 |0052: iget-object v1, v5, Lorg/jsl/wfwt/ChannelSession;.m_session:Lorg/jsl/collider/Session; // field@0215 │ │ -017f78: 7220 5203 0100 |0054: invoke-interface {v1, v0}, Lorg/jsl/collider/Session;.sendData:(Ljava/nio/ByteBuffer;)I // method@0352 │ │ -017f7e: 0e00 |0057: return-void │ │ +017ec4: |[017ec4] org.jsl.wfwt.ChannelSession.handlePingTimeout:()V │ │ +017ed4: 5250 0e02 |0000: iget v0, v5, Lorg/jsl/wfwt/ChannelSession;.m_lastBytesReceived:I // field@020e │ │ +017ed8: 5251 1a02 |0002: iget v1, v5, Lorg/jsl/wfwt/ChannelSession;.m_totalBytesReceived:I // field@021a │ │ +017edc: 3310 2c00 |0004: if-ne v0, v1, 0030 // +002c │ │ +017ee0: 5250 1202 |0006: iget v0, v5, Lorg/jsl/wfwt/ChannelSession;.m_pingTimeouts:I // field@0212 │ │ +017ee4: d800 0001 |0008: add-int/lit8 v0, v0, #int 1 // #01 │ │ +017ee8: 5950 1202 |000a: iput v0, v5, Lorg/jsl/wfwt/ChannelSession;.m_pingTimeouts:I // field@0212 │ │ +017eec: 1301 0a00 |000c: const/16 v1, #int 10 // #a │ │ +017ef0: 3310 2900 |000e: if-ne v0, v1, 0037 // +0029 │ │ +017ef4: 2200 6700 |0010: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +017ef8: 7010 c500 0000 |0012: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +017efe: 7010 9f04 0500 |0015: invoke-direct {v5}, Lorg/jsl/wfwt/ChannelSession;.getLogPrefix:()Ljava/lang/String; // method@049f │ │ +017f04: 0c01 |0018: move-result-object v1 │ │ +017f06: 6e20 cb00 1000 |0019: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +017f0c: 1a01 2b06 |001c: const-string v1, "ping timeout, close connection." // string@062b │ │ +017f10: 6e20 cb00 1000 |001e: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +017f16: 6e10 ce00 0000 |0021: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +017f1c: 0c00 |0024: move-result-object v0 │ │ +017f1e: 1a01 b100 |0025: const-string v1, "ChannelSession" // string@00b1 │ │ +017f22: 7120 6400 0100 |0027: invoke-static {v1, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +017f28: 5450 1502 |002a: iget-object v0, v5, Lorg/jsl/wfwt/ChannelSession;.m_session:Lorg/jsl/collider/Session; // field@0215 │ │ +017f2c: 7210 4d03 0000 |002c: invoke-interface {v0}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ +017f32: 2808 |002f: goto 0037 // +0008 │ │ +017f34: 5250 1a02 |0030: iget v0, v5, Lorg/jsl/wfwt/ChannelSession;.m_totalBytesReceived:I // field@021a │ │ +017f38: 5950 0e02 |0032: iput v0, v5, Lorg/jsl/wfwt/ChannelSession;.m_lastBytesReceived:I // field@020e │ │ +017f3c: 1200 |0034: const/4 v0, #int 0 // #0 │ │ +017f3e: 5950 1202 |0035: iput v0, v5, Lorg/jsl/wfwt/ChannelSession;.m_pingTimeouts:I // field@0212 │ │ +017f42: 5250 1002 |0037: iget v0, v5, Lorg/jsl/wfwt/ChannelSession;.m_pingId:I // field@0210 │ │ +017f46: d800 0001 |0039: add-int/lit8 v0, v0, #int 1 // #01 │ │ +017f4a: 1401 ffff ff7f |003b: const v1, #float nan // #7fffffff │ │ +017f50: b510 |003e: and-int/2addr v0, v1 │ │ +017f52: 5950 1002 |003f: iput v0, v5, Lorg/jsl/wfwt/ChannelSession;.m_pingId:I // field@0210 │ │ +017f56: 5451 1102 |0041: iget-object v1, v5, Lorg/jsl/wfwt/ChannelSession;.m_pingSendTime:[J // field@0211 │ │ +017f5a: 2111 |0043: array-length v1, v1 │ │ +017f5c: 9401 0001 |0044: rem-int v1, v0, v1 │ │ +017f60: 7110 2905 0000 |0046: invoke-static {v0}, Lorg/jsl/wfwt/Protocol$Ping;.create:(I)Ljava/nio/ByteBuffer; // method@0529 │ │ +017f66: 0c00 |0049: move-result-object v0 │ │ +017f68: 5452 1102 |004a: iget-object v2, v5, Lorg/jsl/wfwt/ChannelSession;.m_pingSendTime:[J // field@0211 │ │ +017f6c: 7100 d000 0000 |004c: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@00d0 │ │ +017f72: 0b03 |004f: move-result-wide v3 │ │ +017f74: 4c03 0201 |0050: aput-wide v3, v2, v1 │ │ +017f78: 5451 1502 |0052: iget-object v1, v5, Lorg/jsl/wfwt/ChannelSession;.m_session:Lorg/jsl/collider/Session; // field@0215 │ │ +017f7c: 7220 5203 0100 |0054: invoke-interface {v1, v0}, Lorg/jsl/collider/Session;.sendData:(Ljava/nio/ByteBuffer;)I // method@0352 │ │ +017f82: 0e00 |0057: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=84 │ │ 0x0006 line=86 │ │ 0x0010 line=88 │ │ 0x002a line=89 │ │ 0x0030 line=94 │ │ @@ -36457,40 +36457,40 @@ │ │ type : '(Lorg/jsl/collider/RetainableByteBuffer;)V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 8 │ │ ins : 2 │ │ outs : 5 │ │ insns size : 46 16-bit code units │ │ -017f80: |[017f80] org.jsl.wfwt.ChannelSession.handlePong:(Lorg/jsl/collider/RetainableByteBuffer;)V │ │ -017f90: 7110 2f05 0700 |0000: invoke-static {v7}, Lorg/jsl/wfwt/Protocol$Pong;.getId:(Lorg/jsl/collider/RetainableByteBuffer;)I // method@052f │ │ -017f96: 0a07 |0003: move-result v7 │ │ -017f98: 5460 1102 |0004: iget-object v0, v6, Lorg/jsl/wfwt/ChannelSession;.m_pingSendTime:[J // field@0211 │ │ -017f9c: 2100 |0006: array-length v0, v0 │ │ -017f9e: b407 |0007: rem-int/2addr v7, v0 │ │ -017fa0: 7100 d000 0000 |0008: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@00d0 │ │ -017fa6: 0b00 |000b: move-result-wide v0 │ │ -017fa8: 5462 1102 |000c: iget-object v2, v6, Lorg/jsl/wfwt/ChannelSession;.m_pingSendTime:[J // field@0211 │ │ -017fac: 4503 0207 |000e: aget-wide v3, v2, v7 │ │ -017fb0: bc30 |0010: sub-long/2addr v0, v3 │ │ -017fb2: 1602 0200 |0011: const-wide/16 v2, #int 2 // #2 │ │ -017fb6: be20 |0013: div-long/2addr v0, v2 │ │ -017fb8: 5362 0f02 |0014: iget-wide v2, v6, Lorg/jsl/wfwt/ChannelSession;.m_ping:J // field@020f │ │ -017fbc: 9c02 0002 |0016: sub-long v2, v0, v2 │ │ -017fc0: 7120 b000 3200 |0018: invoke-static {v2, v3}, Ljava/lang/Math;.abs:(J)J // method@00b0 │ │ -017fc6: 0b02 |001b: move-result-wide v2 │ │ -017fc8: 1604 0a00 |001c: const-wide/16 v4, #int 10 // #a │ │ -017fcc: 3107 0204 |001e: cmp-long v7, v2, v4 │ │ -017fd0: 3d07 0d00 |0020: if-lez v7, 002d // +000d │ │ -017fd4: 5a60 0f02 |0022: iput-wide v0, v6, Lorg/jsl/wfwt/ChannelSession;.m_ping:J // field@020f │ │ -017fd8: 5467 0d02 |0024: iget-object v7, v6, Lorg/jsl/wfwt/ChannelSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@020d │ │ -017fdc: 5462 1402 |0026: iget-object v2, v6, Lorg/jsl/wfwt/ChannelSession;.m_serviceName:Ljava/lang/String; // field@0214 │ │ -017fe0: 5463 1502 |0028: iget-object v3, v6, Lorg/jsl/wfwt/ChannelSession;.m_session:Lorg/jsl/collider/Session; // field@0215 │ │ -017fe4: 6e51 8f04 2703 |002a: invoke-virtual {v7, v2, v3, v0, v1}, Lorg/jsl/wfwt/Channel;.setPing:(Ljava/lang/String;Lorg/jsl/collider/Session;J)V // method@048f │ │ -017fea: 0e00 |002d: return-void │ │ +017f84: |[017f84] org.jsl.wfwt.ChannelSession.handlePong:(Lorg/jsl/collider/RetainableByteBuffer;)V │ │ +017f94: 7110 2f05 0700 |0000: invoke-static {v7}, Lorg/jsl/wfwt/Protocol$Pong;.getId:(Lorg/jsl/collider/RetainableByteBuffer;)I // method@052f │ │ +017f9a: 0a07 |0003: move-result v7 │ │ +017f9c: 5460 1102 |0004: iget-object v0, v6, Lorg/jsl/wfwt/ChannelSession;.m_pingSendTime:[J // field@0211 │ │ +017fa0: 2100 |0006: array-length v0, v0 │ │ +017fa2: b407 |0007: rem-int/2addr v7, v0 │ │ +017fa4: 7100 d000 0000 |0008: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@00d0 │ │ +017faa: 0b00 |000b: move-result-wide v0 │ │ +017fac: 5462 1102 |000c: iget-object v2, v6, Lorg/jsl/wfwt/ChannelSession;.m_pingSendTime:[J // field@0211 │ │ +017fb0: 4503 0207 |000e: aget-wide v3, v2, v7 │ │ +017fb4: bc30 |0010: sub-long/2addr v0, v3 │ │ +017fb6: 1602 0200 |0011: const-wide/16 v2, #int 2 // #2 │ │ +017fba: be20 |0013: div-long/2addr v0, v2 │ │ +017fbc: 5362 0f02 |0014: iget-wide v2, v6, Lorg/jsl/wfwt/ChannelSession;.m_ping:J // field@020f │ │ +017fc0: 9c02 0002 |0016: sub-long v2, v0, v2 │ │ +017fc4: 7120 b000 3200 |0018: invoke-static {v2, v3}, Ljava/lang/Math;.abs:(J)J // method@00b0 │ │ +017fca: 0b02 |001b: move-result-wide v2 │ │ +017fcc: 1604 0a00 |001c: const-wide/16 v4, #int 10 // #a │ │ +017fd0: 3107 0204 |001e: cmp-long v7, v2, v4 │ │ +017fd4: 3d07 0d00 |0020: if-lez v7, 002d // +000d │ │ +017fd8: 5a60 0f02 |0022: iput-wide v0, v6, Lorg/jsl/wfwt/ChannelSession;.m_ping:J // field@020f │ │ +017fdc: 5467 0d02 |0024: iget-object v7, v6, Lorg/jsl/wfwt/ChannelSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@020d │ │ +017fe0: 5462 1402 |0026: iget-object v2, v6, Lorg/jsl/wfwt/ChannelSession;.m_serviceName:Ljava/lang/String; // field@0214 │ │ +017fe4: 5463 1502 |0028: iget-object v3, v6, Lorg/jsl/wfwt/ChannelSession;.m_session:Lorg/jsl/collider/Session; // field@0215 │ │ +017fe8: 6e51 8f04 2703 |002a: invoke-virtual {v7, v2, v3, v0, v1}, Lorg/jsl/wfwt/Channel;.setPing:(Ljava/lang/String;Lorg/jsl/collider/Session;J)V // method@048f │ │ +017fee: 0e00 |002d: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=114 │ │ 0x0004 line=115 │ │ 0x0008 line=116 │ │ 0x0014 line=118 │ │ 0x0022 line=120 │ │ @@ -36504,31 +36504,31 @@ │ │ type : '(Lorg/jsl/collider/RetainableByteBuffer;)V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 5 │ │ ins : 2 │ │ outs : 4 │ │ insns size : 31 16-bit code units │ │ -017fec: |[017fec] org.jsl.wfwt.ChannelSession.handleStationName:(Lorg/jsl/collider/RetainableByteBuffer;)V │ │ -017ffc: 7110 3305 0400 |0000: invoke-static {v4}, Lorg/jsl/wfwt/Protocol$StationName;.getStationName:(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String; // method@0533 │ │ -018002: 0c04 |0003: move-result-object v4 │ │ -018004: 6e10 c100 0400 |0004: invoke-virtual {v4}, Ljava/lang/String;.length:()I // method@00c1 │ │ -01800a: 0a00 |0007: move-result v0 │ │ -01800c: 3d00 1600 |0008: if-lez v0, 001e // +0016 │ │ -018010: 5430 0d02 |000a: iget-object v0, v3, Lorg/jsl/wfwt/ChannelSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@020d │ │ -018014: 5431 1402 |000c: iget-object v1, v3, Lorg/jsl/wfwt/ChannelSession;.m_serviceName:Ljava/lang/String; // field@0214 │ │ -018018: 5432 1502 |000e: iget-object v2, v3, Lorg/jsl/wfwt/ChannelSession;.m_session:Lorg/jsl/collider/Session; // field@0215 │ │ -01801c: 6e40 9404 1042 |0010: invoke-virtual {v0, v1, v2, v4}, Lorg/jsl/wfwt/Channel;.setStationName:(Ljava/lang/String;Lorg/jsl/collider/Session;Ljava/lang/String;)V // method@0494 │ │ -018022: 280b |0013: goto 001e // +000b │ │ -018024: 0d04 |0014: move-exception v4 │ │ -018026: 1a00 b100 |0015: const-string v0, "ChannelSession" // string@00b1 │ │ -01802a: 6e10 5301 0400 |0017: invoke-virtual {v4}, Ljava/nio/charset/CharacterCodingException;.toString:()Ljava/lang/String; // method@0153 │ │ -018030: 0c01 |001a: move-result-object v1 │ │ -018032: 7130 6700 1004 |001b: invoke-static {v0, v1, v4}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I // method@0067 │ │ -018038: 0e00 |001e: return-void │ │ +017ff0: |[017ff0] org.jsl.wfwt.ChannelSession.handleStationName:(Lorg/jsl/collider/RetainableByteBuffer;)V │ │ +018000: 7110 3305 0400 |0000: invoke-static {v4}, Lorg/jsl/wfwt/Protocol$StationName;.getStationName:(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String; // method@0533 │ │ +018006: 0c04 |0003: move-result-object v4 │ │ +018008: 6e10 c100 0400 |0004: invoke-virtual {v4}, Ljava/lang/String;.length:()I // method@00c1 │ │ +01800e: 0a00 |0007: move-result v0 │ │ +018010: 3d00 1600 |0008: if-lez v0, 001e // +0016 │ │ +018014: 5430 0d02 |000a: iget-object v0, v3, Lorg/jsl/wfwt/ChannelSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@020d │ │ +018018: 5431 1402 |000c: iget-object v1, v3, Lorg/jsl/wfwt/ChannelSession;.m_serviceName:Ljava/lang/String; // field@0214 │ │ +01801c: 5432 1502 |000e: iget-object v2, v3, Lorg/jsl/wfwt/ChannelSession;.m_session:Lorg/jsl/collider/Session; // field@0215 │ │ +018020: 6e40 9404 1042 |0010: invoke-virtual {v0, v1, v2, v4}, Lorg/jsl/wfwt/Channel;.setStationName:(Ljava/lang/String;Lorg/jsl/collider/Session;Ljava/lang/String;)V // method@0494 │ │ +018026: 280b |0013: goto 001e // +000b │ │ +018028: 0d04 |0014: move-exception v4 │ │ +01802a: 1a00 b100 |0015: const-string v0, "ChannelSession" // string@00b1 │ │ +01802e: 6e10 5301 0400 |0017: invoke-virtual {v4}, Ljava/nio/charset/CharacterCodingException;.toString:()Ljava/lang/String; // method@0153 │ │ +018034: 0c01 |001a: move-result-object v1 │ │ +018036: 7130 6700 1004 |001b: invoke-static {v0, v1, v4}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I // method@0067 │ │ +01803c: 0e00 |001e: return-void │ │ catches : 1 │ │ 0x0000 - 0x0013 │ │ Ljava/nio/charset/CharacterCodingException; -> 0x0014 │ │ positions : │ │ 0x0000 line=129 │ │ 0x0004 line=130 │ │ 0x000a line=131 │ │ @@ -36542,38 +36542,38 @@ │ │ type : '(Lorg/jsl/collider/RetainableByteBuffer;)V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 3 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 49 16-bit code units │ │ -018148: |[018148] org.jsl.wfwt.ChannelSession.onDataReceivedEx:(Lorg/jsl/collider/RetainableByteBuffer;)V │ │ -018158: 3802 3000 |0000: if-eqz v2, 0030 // +0030 │ │ -01815c: 6200 7d01 |0002: sget-object v0, Lorg/jsl/collider/StreamDefragger;.INVALID_HEADER:Lorg/jsl/collider/RetainableByteBuffer; // field@017d │ │ -018160: 3302 2200 |0004: if-ne v2, v0, 0026 // +0022 │ │ -018164: 2202 6700 |0006: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ -018168: 7010 c500 0200 |0008: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -01816e: 7010 9f04 0100 |000b: invoke-direct {v1}, Lorg/jsl/wfwt/ChannelSession;.getLogPrefix:()Ljava/lang/String; // method@049f │ │ -018174: 0c00 |000e: move-result-object v0 │ │ -018176: 6e20 cb00 0200 |000f: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01817c: 1a00 f004 |0012: const-string v0, "invalid message received, close connection." // string@04f0 │ │ -018180: 6e20 cb00 0200 |0014: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -018186: 6e10 ce00 0200 |0017: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01818c: 0c02 |001a: move-result-object v2 │ │ -01818e: 1a00 b100 |001b: const-string v0, "ChannelSession" // string@00b1 │ │ -018192: 7120 6400 2000 |001d: invoke-static {v0, v2}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -018198: 5412 1502 |0020: iget-object v2, v1, Lorg/jsl/wfwt/ChannelSession;.m_session:Lorg/jsl/collider/Session; // field@0215 │ │ -01819c: 7210 4d03 0200 |0022: invoke-interface {v2}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ -0181a2: 280b |0025: goto 0030 // +000b │ │ -0181a4: 7020 a104 2100 |0026: invoke-direct {v1, v2}, Lorg/jsl/wfwt/ChannelSession;.handleMessage:(Lorg/jsl/collider/RetainableByteBuffer;)V // method@04a1 │ │ -0181aa: 5412 1702 |0029: iget-object v2, v1, Lorg/jsl/wfwt/ChannelSession;.m_streamDefragger:Lorg/jsl/collider/StreamDefragger; // field@0217 │ │ -0181ae: 6e10 f703 0200 |002b: invoke-virtual {v2}, Lorg/jsl/collider/StreamDefragger;.getNext:()Lorg/jsl/collider/RetainableByteBuffer; // method@03f7 │ │ -0181b4: 0c02 |002e: move-result-object v2 │ │ -0181b6: 28d1 |002f: goto 0000 // -002f │ │ -0181b8: 0e00 |0030: return-void │ │ +01814c: |[01814c] org.jsl.wfwt.ChannelSession.onDataReceivedEx:(Lorg/jsl/collider/RetainableByteBuffer;)V │ │ +01815c: 3802 3000 |0000: if-eqz v2, 0030 // +0030 │ │ +018160: 6200 7d01 |0002: sget-object v0, Lorg/jsl/collider/StreamDefragger;.INVALID_HEADER:Lorg/jsl/collider/RetainableByteBuffer; // field@017d │ │ +018164: 3302 2200 |0004: if-ne v2, v0, 0026 // +0022 │ │ +018168: 2202 6700 |0006: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ +01816c: 7010 c500 0200 |0008: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +018172: 7010 9f04 0100 |000b: invoke-direct {v1}, Lorg/jsl/wfwt/ChannelSession;.getLogPrefix:()Ljava/lang/String; // method@049f │ │ +018178: 0c00 |000e: move-result-object v0 │ │ +01817a: 6e20 cb00 0200 |000f: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +018180: 1a00 f004 |0012: const-string v0, "invalid message received, close connection." // string@04f0 │ │ +018184: 6e20 cb00 0200 |0014: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01818a: 6e10 ce00 0200 |0017: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +018190: 0c02 |001a: move-result-object v2 │ │ +018192: 1a00 b100 |001b: const-string v0, "ChannelSession" // string@00b1 │ │ +018196: 7120 6400 2000 |001d: invoke-static {v0, v2}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +01819c: 5412 1502 |0020: iget-object v2, v1, Lorg/jsl/wfwt/ChannelSession;.m_session:Lorg/jsl/collider/Session; // field@0215 │ │ +0181a0: 7210 4d03 0200 |0022: invoke-interface {v2}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ +0181a6: 280b |0025: goto 0030 // +000b │ │ +0181a8: 7020 a104 2100 |0026: invoke-direct {v1, v2}, Lorg/jsl/wfwt/ChannelSession;.handleMessage:(Lorg/jsl/collider/RetainableByteBuffer;)V // method@04a1 │ │ +0181ae: 5412 1702 |0029: iget-object v2, v1, Lorg/jsl/wfwt/ChannelSession;.m_streamDefragger:Lorg/jsl/collider/StreamDefragger; // field@0217 │ │ +0181b2: 6e10 f703 0200 |002b: invoke-virtual {v2}, Lorg/jsl/collider/StreamDefragger;.getNext:()Lorg/jsl/collider/RetainableByteBuffer; // method@03f7 │ │ +0181b8: 0c02 |002e: move-result-object v2 │ │ +0181ba: 28d1 |002f: goto 0000 // -002f │ │ +0181bc: 0e00 |0030: return-void │ │ catches : (none) │ │ positions : │ │ 0x0002 line=225 │ │ 0x0006 line=227 │ │ 0x0020 line=229 │ │ 0x0026 line=234 │ │ 0x0029 line=235 │ │ @@ -36587,19 +36587,19 @@ │ │ type : '()Ljava/net/SocketAddress;' │ │ access : 0x0000 () │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 7 16-bit code units │ │ -017cdc: |[017cdc] org.jsl.wfwt.ChannelSession.getRemoteAddress:()Ljava/net/SocketAddress; │ │ -017cec: 5410 1502 |0000: iget-object v0, v1, Lorg/jsl/wfwt/ChannelSession;.m_session:Lorg/jsl/collider/Session; // field@0215 │ │ -017cf0: 7210 5003 0000 |0002: invoke-interface {v0}, Lorg/jsl/collider/Session;.getRemoteAddress:()Ljava/net/SocketAddress; // method@0350 │ │ -017cf6: 0c00 |0005: move-result-object v0 │ │ -017cf8: 1100 |0006: return-object v0 │ │ +017ce0: |[017ce0] org.jsl.wfwt.ChannelSession.getRemoteAddress:()Ljava/net/SocketAddress; │ │ +017cf0: 5410 1502 |0000: iget-object v0, v1, Lorg/jsl/wfwt/ChannelSession;.m_session:Lorg/jsl/collider/Session; // field@0215 │ │ +017cf4: 7210 5003 0000 |0002: invoke-interface {v0}, Lorg/jsl/collider/Session;.getRemoteAddress:()Ljava/net/SocketAddress; // method@0350 │ │ +017cfa: 0c00 |0005: move-result-object v0 │ │ +017cfc: 1100 |0006: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=294 │ │ locals : │ │ 0x0000 - 0x0007 reg=1 this Lorg/jsl/wfwt/ChannelSession; │ │ │ │ #1 : (in Lorg/jsl/wfwt/ChannelSession;) │ │ @@ -36607,55 +36607,55 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 5 │ │ ins : 1 │ │ outs : 3 │ │ insns size : 84 16-bit code units │ │ -01804c: |[01804c] org.jsl.wfwt.ChannelSession.onConnectionClosed:()V │ │ -01805c: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -018060: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -018066: 7010 9f04 0400 |0005: invoke-direct {v4}, Lorg/jsl/wfwt/ChannelSession;.getLogPrefix:()Ljava/lang/String; // method@049f │ │ -01806c: 0c01 |0008: move-result-object v1 │ │ -01806e: 6e20 cb00 1000 |0009: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -018074: 1a01 2704 |000c: const-string v1, "connection closed" // string@0427 │ │ -018078: 6e20 cb00 1000 |000e: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01807e: 6e10 ce00 0000 |0011: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -018084: 0c00 |0014: move-result-object v0 │ │ -018086: 1a01 b100 |0015: const-string v1, "ChannelSession" // string@00b1 │ │ -01808a: 7120 6400 0100 |0017: invoke-static {v1, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -018090: 5440 1802 |001a: iget-object v0, v4, Lorg/jsl/wfwt/ChannelSession;.m_timerHandler:Lorg/jsl/wfwt/ChannelSession$TimerHandler; // field@0218 │ │ -018094: 1202 |001c: const/4 v2, #int 0 // #0 │ │ -018096: 3800 1500 |001d: if-eqz v0, 0032 // +0015 │ │ -01809a: 5443 1902 |001f: iget-object v3, v4, Lorg/jsl/wfwt/ChannelSession;.m_timerQueue:Lorg/jsl/collider/TimerQueue; // field@0219 │ │ -01809e: 6e20 1d04 0300 |0021: invoke-virtual {v3, v0}, Lorg/jsl/collider/TimerQueue;.cancel:(Lorg/jsl/collider/TimerQueue$Task;)I // method@041d │ │ -0180a4: 280b |0024: goto 002f // +000b │ │ -0180a6: 0d00 |0025: move-exception v0 │ │ -0180a8: 6e10 ac00 0000 |0026: invoke-virtual {v0}, Ljava/lang/InterruptedException;.toString:()Ljava/lang/String; // method@00ac │ │ -0180ae: 0c02 |0029: move-result-object v2 │ │ -0180b0: 7130 6700 2100 |002a: invoke-static {v1, v2, v0}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I // method@0067 │ │ -0180b6: 1210 |002d: const/4 v0, #int 1 // #1 │ │ -0180b8: 1212 |002e: const/4 v2, #int 1 // #1 │ │ -0180ba: 1200 |002f: const/4 v0, #int 0 // #0 │ │ -0180bc: 5b40 1802 |0030: iput-object v0, v4, Lorg/jsl/wfwt/ChannelSession;.m_timerHandler:Lorg/jsl/wfwt/ChannelSession$TimerHandler; // field@0218 │ │ -0180c0: 5440 0d02 |0032: iget-object v0, v4, Lorg/jsl/wfwt/ChannelSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@020d │ │ -0180c4: 5441 1402 |0034: iget-object v1, v4, Lorg/jsl/wfwt/ChannelSession;.m_serviceName:Ljava/lang/String; // field@0214 │ │ -0180c8: 5443 1502 |0036: iget-object v3, v4, Lorg/jsl/wfwt/ChannelSession;.m_session:Lorg/jsl/collider/Session; // field@0215 │ │ -0180cc: 6e30 8d04 1003 |0038: invoke-virtual {v0, v1, v3}, Lorg/jsl/wfwt/Channel;.removeSession:(Ljava/lang/String;Lorg/jsl/collider/Session;)V // method@048d │ │ -0180d2: 5440 1602 |003b: iget-object v0, v4, Lorg/jsl/wfwt/ChannelSession;.m_sessionManager:Lorg/jsl/wfwt/SessionManager; // field@0216 │ │ -0180d6: 6e20 4105 4000 |003d: invoke-virtual {v0, v4}, Lorg/jsl/wfwt/SessionManager;.removeSession:(Lorg/jsl/wfwt/ChannelSession;)V // method@0541 │ │ -0180dc: 5440 0c02 |0040: iget-object v0, v4, Lorg/jsl/wfwt/ChannelSession;.m_audioPlayer:Lorg/jsl/wfwt/AudioPlayer; // field@020c │ │ -0180e0: 6e10 4104 0000 |0042: invoke-virtual {v0}, Lorg/jsl/wfwt/AudioPlayer;.stopAndWait:()V // method@0441 │ │ -0180e6: 5440 1702 |0045: iget-object v0, v4, Lorg/jsl/wfwt/ChannelSession;.m_streamDefragger:Lorg/jsl/collider/StreamDefragger; // field@0217 │ │ -0180ea: 6e10 f503 0000 |0047: invoke-virtual {v0}, Lorg/jsl/collider/StreamDefragger;.close:()V // method@03f5 │ │ -0180f0: 3802 0900 |004a: if-eqz v2, 0053 // +0009 │ │ -0180f4: 7100 d600 0000 |004c: invoke-static {}, Ljava/lang/Thread;.currentThread:()Ljava/lang/Thread; // method@00d6 │ │ -0180fa: 0c00 |004f: move-result-object v0 │ │ -0180fc: 6e10 d900 0000 |0050: invoke-virtual {v0}, Ljava/lang/Thread;.interrupt:()V // method@00d9 │ │ -018102: 0e00 |0053: return-void │ │ +018050: |[018050] org.jsl.wfwt.ChannelSession.onConnectionClosed:()V │ │ +018060: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +018064: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +01806a: 7010 9f04 0400 |0005: invoke-direct {v4}, Lorg/jsl/wfwt/ChannelSession;.getLogPrefix:()Ljava/lang/String; // method@049f │ │ +018070: 0c01 |0008: move-result-object v1 │ │ +018072: 6e20 cb00 1000 |0009: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +018078: 1a01 2704 |000c: const-string v1, "connection closed" // string@0427 │ │ +01807c: 6e20 cb00 1000 |000e: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +018082: 6e10 ce00 0000 |0011: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +018088: 0c00 |0014: move-result-object v0 │ │ +01808a: 1a01 b100 |0015: const-string v1, "ChannelSession" // string@00b1 │ │ +01808e: 7120 6400 0100 |0017: invoke-static {v1, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +018094: 5440 1802 |001a: iget-object v0, v4, Lorg/jsl/wfwt/ChannelSession;.m_timerHandler:Lorg/jsl/wfwt/ChannelSession$TimerHandler; // field@0218 │ │ +018098: 1202 |001c: const/4 v2, #int 0 // #0 │ │ +01809a: 3800 1500 |001d: if-eqz v0, 0032 // +0015 │ │ +01809e: 5443 1902 |001f: iget-object v3, v4, Lorg/jsl/wfwt/ChannelSession;.m_timerQueue:Lorg/jsl/collider/TimerQueue; // field@0219 │ │ +0180a2: 6e20 1d04 0300 |0021: invoke-virtual {v3, v0}, Lorg/jsl/collider/TimerQueue;.cancel:(Lorg/jsl/collider/TimerQueue$Task;)I // method@041d │ │ +0180a8: 280b |0024: goto 002f // +000b │ │ +0180aa: 0d00 |0025: move-exception v0 │ │ +0180ac: 6e10 ac00 0000 |0026: invoke-virtual {v0}, Ljava/lang/InterruptedException;.toString:()Ljava/lang/String; // method@00ac │ │ +0180b2: 0c02 |0029: move-result-object v2 │ │ +0180b4: 7130 6700 2100 |002a: invoke-static {v1, v2, v0}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I // method@0067 │ │ +0180ba: 1210 |002d: const/4 v0, #int 1 // #1 │ │ +0180bc: 1212 |002e: const/4 v2, #int 1 // #1 │ │ +0180be: 1200 |002f: const/4 v0, #int 0 // #0 │ │ +0180c0: 5b40 1802 |0030: iput-object v0, v4, Lorg/jsl/wfwt/ChannelSession;.m_timerHandler:Lorg/jsl/wfwt/ChannelSession$TimerHandler; // field@0218 │ │ +0180c4: 5440 0d02 |0032: iget-object v0, v4, Lorg/jsl/wfwt/ChannelSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@020d │ │ +0180c8: 5441 1402 |0034: iget-object v1, v4, Lorg/jsl/wfwt/ChannelSession;.m_serviceName:Ljava/lang/String; // field@0214 │ │ +0180cc: 5443 1502 |0036: iget-object v3, v4, Lorg/jsl/wfwt/ChannelSession;.m_session:Lorg/jsl/collider/Session; // field@0215 │ │ +0180d0: 6e30 8d04 1003 |0038: invoke-virtual {v0, v1, v3}, Lorg/jsl/wfwt/Channel;.removeSession:(Ljava/lang/String;Lorg/jsl/collider/Session;)V // method@048d │ │ +0180d6: 5440 1602 |003b: iget-object v0, v4, Lorg/jsl/wfwt/ChannelSession;.m_sessionManager:Lorg/jsl/wfwt/SessionManager; // field@0216 │ │ +0180da: 6e20 4105 4000 |003d: invoke-virtual {v0, v4}, Lorg/jsl/wfwt/SessionManager;.removeSession:(Lorg/jsl/wfwt/ChannelSession;)V // method@0541 │ │ +0180e0: 5440 0c02 |0040: iget-object v0, v4, Lorg/jsl/wfwt/ChannelSession;.m_audioPlayer:Lorg/jsl/wfwt/AudioPlayer; // field@020c │ │ +0180e4: 6e10 4104 0000 |0042: invoke-virtual {v0}, Lorg/jsl/wfwt/AudioPlayer;.stopAndWait:()V // method@0441 │ │ +0180ea: 5440 1702 |0045: iget-object v0, v4, Lorg/jsl/wfwt/ChannelSession;.m_streamDefragger:Lorg/jsl/collider/StreamDefragger; // field@0217 │ │ +0180ee: 6e10 f503 0000 |0047: invoke-virtual {v0}, Lorg/jsl/collider/StreamDefragger;.close:()V // method@03f5 │ │ +0180f4: 3802 0900 |004a: if-eqz v2, 0053 // +0009 │ │ +0180f8: 7100 d600 0000 |004c: invoke-static {}, Ljava/lang/Thread;.currentThread:()Ljava/lang/Thread; // method@00d6 │ │ +0180fe: 0c00 |004f: move-result-object v0 │ │ +018100: 6e10 d900 0000 |0050: invoke-virtual {v0}, Ljava/lang/Thread;.interrupt:()V // method@00d9 │ │ +018106: 0e00 |0053: return-void │ │ catches : 1 │ │ 0x001f - 0x0024 │ │ Ljava/lang/InterruptedException; -> 0x0025 │ │ positions : │ │ 0x0000 line=249 │ │ 0x001a line=252 │ │ 0x001f line=256 │ │ @@ -36674,24 +36674,24 @@ │ │ type : '(Lorg/jsl/collider/RetainableByteBuffer;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 2 │ │ outs : 3 │ │ insns size : 19 16-bit code units │ │ -018110: |[018110] org.jsl.wfwt.ChannelSession.onDataReceived:(Lorg/jsl/collider/RetainableByteBuffer;)V │ │ -018120: 6e10 e802 0300 |0000: invoke-virtual {v3}, Lorg/jsl/collider/RetainableByteBuffer;.remaining:()I // method@02e8 │ │ -018126: 0a00 |0003: move-result v0 │ │ -018128: 5421 1702 |0004: iget-object v1, v2, Lorg/jsl/wfwt/ChannelSession;.m_streamDefragger:Lorg/jsl/collider/StreamDefragger; // field@0217 │ │ -01812c: 6e20 f803 3100 |0006: invoke-virtual {v1, v3}, Lorg/jsl/collider/StreamDefragger;.getNext:(Lorg/jsl/collider/RetainableByteBuffer;)Lorg/jsl/collider/RetainableByteBuffer; // method@03f8 │ │ -018132: 0c03 |0009: move-result-object v3 │ │ -018134: 7020 a804 3200 |000a: invoke-direct {v2, v3}, Lorg/jsl/wfwt/ChannelSession;.onDataReceivedEx:(Lorg/jsl/collider/RetainableByteBuffer;)V // method@04a8 │ │ -01813a: 6203 1b02 |000d: sget-object v3, Lorg/jsl/wfwt/ChannelSession;.s_totalBytesReceivedUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater; // field@021b │ │ -01813e: 6e30 8e01 2300 |000f: invoke-virtual {v3, v2, v0}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;.addAndGet:(Ljava/lang/Object;I)I // method@018e │ │ -018144: 0e00 |0012: return-void │ │ +018114: |[018114] org.jsl.wfwt.ChannelSession.onDataReceived:(Lorg/jsl/collider/RetainableByteBuffer;)V │ │ +018124: 6e10 e802 0300 |0000: invoke-virtual {v3}, Lorg/jsl/collider/RetainableByteBuffer;.remaining:()I // method@02e8 │ │ +01812a: 0a00 |0003: move-result v0 │ │ +01812c: 5421 1702 |0004: iget-object v1, v2, Lorg/jsl/wfwt/ChannelSession;.m_streamDefragger:Lorg/jsl/collider/StreamDefragger; // field@0217 │ │ +018130: 6e20 f803 3100 |0006: invoke-virtual {v1, v3}, Lorg/jsl/collider/StreamDefragger;.getNext:(Lorg/jsl/collider/RetainableByteBuffer;)Lorg/jsl/collider/RetainableByteBuffer; // method@03f8 │ │ +018136: 0c03 |0009: move-result-object v3 │ │ +018138: 7020 a804 3200 |000a: invoke-direct {v2, v3}, Lorg/jsl/wfwt/ChannelSession;.onDataReceivedEx:(Lorg/jsl/collider/RetainableByteBuffer;)V // method@04a8 │ │ +01813e: 6203 1b02 |000d: sget-object v3, Lorg/jsl/wfwt/ChannelSession;.s_totalBytesReceivedUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater; // field@021b │ │ +018142: 6e30 8e01 2300 |000f: invoke-virtual {v3, v2, v0}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;.addAndGet:(Ljava/lang/Object;I)I // method@018e │ │ +018148: 0e00 |0012: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=242 │ │ 0x0004 line=243 │ │ 0x000d line=244 │ │ locals : │ │ 0x0000 - 0x0013 reg=2 this Lorg/jsl/wfwt/ChannelSession; │ │ @@ -36702,21 +36702,21 @@ │ │ type : '(Ljava/nio/ByteBuffer;Z)V' │ │ access : 0x0000 () │ │ code - │ │ registers : 3 │ │ ins : 3 │ │ outs : 2 │ │ insns size : 12 16-bit code units │ │ -0181bc: |[0181bc] org.jsl.wfwt.ChannelSession.sendAudioFrame:(Ljava/nio/ByteBuffer;Z)V │ │ -0181cc: 3902 0600 |0000: if-nez v2, 0006 // +0006 │ │ -0181d0: 5502 1302 |0002: iget-boolean v2, v0, Lorg/jsl/wfwt/ChannelSession;.m_sendAudio:Z // field@0213 │ │ -0181d4: 3802 0700 |0004: if-eqz v2, 000b // +0007 │ │ -0181d8: 5402 1502 |0006: iget-object v2, v0, Lorg/jsl/wfwt/ChannelSession;.m_session:Lorg/jsl/collider/Session; // field@0215 │ │ -0181dc: 7220 5203 1200 |0008: invoke-interface {v2, v1}, Lorg/jsl/collider/Session;.sendData:(Ljava/nio/ByteBuffer;)I // method@0352 │ │ -0181e2: 0e00 |000b: return-void │ │ +0181c0: |[0181c0] org.jsl.wfwt.ChannelSession.sendAudioFrame:(Ljava/nio/ByteBuffer;Z)V │ │ +0181d0: 3902 0600 |0000: if-nez v2, 0006 // +0006 │ │ +0181d4: 5502 1302 |0002: iget-boolean v2, v0, Lorg/jsl/wfwt/ChannelSession;.m_sendAudio:Z // field@0213 │ │ +0181d8: 3802 0700 |0004: if-eqz v2, 000b // +0007 │ │ +0181dc: 5402 1502 |0006: iget-object v2, v0, Lorg/jsl/wfwt/ChannelSession;.m_session:Lorg/jsl/collider/Session; // field@0215 │ │ +0181e0: 7220 5203 1200 |0008: invoke-interface {v2, v1}, Lorg/jsl/collider/Session;.sendData:(Ljava/nio/ByteBuffer;)I // method@0352 │ │ +0181e6: 0e00 |000b: return-void │ │ catches : (none) │ │ positions : │ │ 0x0002 line=283 │ │ 0x0006 line=284 │ │ locals : │ │ 0x0000 - 0x000c reg=0 this Lorg/jsl/wfwt/ChannelSession; │ │ 0x0000 - 0x000c reg=1 (null) Ljava/nio/ByteBuffer; │ │ @@ -36727,21 +36727,21 @@ │ │ type : '(Lorg/jsl/collider/RetainableByteBuffer;Z)V' │ │ access : 0x0000 () │ │ code - │ │ registers : 3 │ │ ins : 3 │ │ outs : 2 │ │ insns size : 12 16-bit code units │ │ -0181e4: |[0181e4] org.jsl.wfwt.ChannelSession.sendAudioFrame:(Lorg/jsl/collider/RetainableByteBuffer;Z)V │ │ -0181f4: 3902 0600 |0000: if-nez v2, 0006 // +0006 │ │ -0181f8: 5502 1302 |0002: iget-boolean v2, v0, Lorg/jsl/wfwt/ChannelSession;.m_sendAudio:Z // field@0213 │ │ -0181fc: 3802 0700 |0004: if-eqz v2, 000b // +0007 │ │ -018200: 5402 1502 |0006: iget-object v2, v0, Lorg/jsl/wfwt/ChannelSession;.m_session:Lorg/jsl/collider/Session; // field@0215 │ │ -018204: 7220 5303 1200 |0008: invoke-interface {v2, v1}, Lorg/jsl/collider/Session;.sendData:(Lorg/jsl/collider/RetainableByteBuffer;)I // method@0353 │ │ -01820a: 0e00 |000b: return-void │ │ +0181e8: |[0181e8] org.jsl.wfwt.ChannelSession.sendAudioFrame:(Lorg/jsl/collider/RetainableByteBuffer;Z)V │ │ +0181f8: 3902 0600 |0000: if-nez v2, 0006 // +0006 │ │ +0181fc: 5502 1302 |0002: iget-boolean v2, v0, Lorg/jsl/wfwt/ChannelSession;.m_sendAudio:Z // field@0213 │ │ +018200: 3802 0700 |0004: if-eqz v2, 000b // +0007 │ │ +018204: 5402 1502 |0006: iget-object v2, v0, Lorg/jsl/wfwt/ChannelSession;.m_session:Lorg/jsl/collider/Session; // field@0215 │ │ +018208: 7220 5303 1200 |0008: invoke-interface {v2, v1}, Lorg/jsl/collider/Session;.sendData:(Lorg/jsl/collider/RetainableByteBuffer;)I // method@0353 │ │ +01820e: 0e00 |000b: return-void │ │ catches : (none) │ │ positions : │ │ 0x0002 line=277 │ │ 0x0006 line=278 │ │ locals : │ │ 0x0000 - 0x000c reg=0 this Lorg/jsl/wfwt/ChannelSession; │ │ 0x0000 - 0x000c reg=1 (null) Lorg/jsl/collider/RetainableByteBuffer; │ │ @@ -36752,17 +36752,17 @@ │ │ type : '(Z)V' │ │ access : 0x0000 () │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01820c: |[01820c] org.jsl.wfwt.ChannelSession.setSendAudio:(Z)V │ │ -01821c: 5c01 1302 |0000: iput-boolean v1, v0, Lorg/jsl/wfwt/ChannelSession;.m_sendAudio:Z // field@0213 │ │ -018220: 0e00 |0002: return-void │ │ +018210: |[018210] org.jsl.wfwt.ChannelSession.setSendAudio:(Z)V │ │ +018220: 5c01 1302 |0000: iput-boolean v1, v0, Lorg/jsl/wfwt/ChannelSession;.m_sendAudio:Z // field@0213 │ │ +018224: 0e00 |0002: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=289 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 this Lorg/jsl/wfwt/ChannelSession; │ │ 0x0000 - 0x0003 reg=1 (null) Z │ │ │ │ @@ -36801,18 +36801,18 @@ │ │ type : '(Lorg/jsl/wfwt/HandshakeClientSession;)V' │ │ access : 0x10002 (PRIVATE CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -0194b8: |[0194b8] org.jsl.wfwt.HandshakeClientSession$TimerHandler.:(Lorg/jsl/wfwt/HandshakeClientSession;)V │ │ -0194c8: 5b01 1d02 |0000: iput-object v1, v0, Lorg/jsl/wfwt/HandshakeClientSession$TimerHandler;.this$0:Lorg/jsl/wfwt/HandshakeClientSession; // field@021d │ │ -0194cc: 7010 b300 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -0194d2: 0e00 |0005: return-void │ │ +0194bc: |[0194bc] org.jsl.wfwt.HandshakeClientSession$TimerHandler.:(Lorg/jsl/wfwt/HandshakeClientSession;)V │ │ +0194cc: 5b01 1d02 |0000: iput-object v1, v0, Lorg/jsl/wfwt/HandshakeClientSession$TimerHandler;.this$0:Lorg/jsl/wfwt/HandshakeClientSession; // field@021d │ │ +0194d0: 7010 b300 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +0194d6: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=44 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/jsl/wfwt/HandshakeClientSession$TimerHandler; │ │ 0x0000 - 0x0006 reg=1 (null) Lorg/jsl/wfwt/HandshakeClientSession; │ │ │ │ @@ -36821,17 +36821,17 @@ │ │ type : '(Lorg/jsl/wfwt/HandshakeClientSession;Lorg/jsl/wfwt/HandshakeClientSession$1;)V' │ │ access : 0x11000 (SYNTHETIC CONSTRUCTOR) │ │ code - │ │ registers : 3 │ │ ins : 3 │ │ outs : 2 │ │ insns size : 4 16-bit code units │ │ -0194d4: |[0194d4] org.jsl.wfwt.HandshakeClientSession$TimerHandler.:(Lorg/jsl/wfwt/HandshakeClientSession;Lorg/jsl/wfwt/HandshakeClientSession$1;)V │ │ -0194e4: 7020 ae04 1000 |0000: invoke-direct {v0, v1}, Lorg/jsl/wfwt/HandshakeClientSession$TimerHandler;.:(Lorg/jsl/wfwt/HandshakeClientSession;)V // method@04ae │ │ -0194ea: 0e00 |0003: return-void │ │ +0194d8: |[0194d8] org.jsl.wfwt.HandshakeClientSession$TimerHandler.:(Lorg/jsl/wfwt/HandshakeClientSession;Lorg/jsl/wfwt/HandshakeClientSession$1;)V │ │ +0194e8: 7020 ae04 1000 |0000: invoke-direct {v0, v1}, Lorg/jsl/wfwt/HandshakeClientSession$TimerHandler;.:(Lorg/jsl/wfwt/HandshakeClientSession;)V // method@04ae │ │ +0194ee: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=44 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/jsl/wfwt/HandshakeClientSession$TimerHandler; │ │ 0x0000 - 0x0004 reg=1 (null) Lorg/jsl/wfwt/HandshakeClientSession; │ │ 0x0000 - 0x0004 reg=2 (null) Lorg/jsl/wfwt/HandshakeClientSession$1; │ │ @@ -36842,34 +36842,34 @@ │ │ type : '()J' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 42 16-bit code units │ │ -019454: |[019454] org.jsl.wfwt.HandshakeClientSession$TimerHandler.run:()J │ │ -019464: 7100 b304 0000 |0000: invoke-static {}, Lorg/jsl/wfwt/HandshakeClientSession;.access$000:()Ljava/lang/String; // method@04b3 │ │ -01946a: 0c00 |0003: move-result-object v0 │ │ -01946c: 2201 6700 |0004: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ -019470: 7010 c500 0100 |0006: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -019476: 5432 1d02 |0009: iget-object v2, v3, Lorg/jsl/wfwt/HandshakeClientSession$TimerHandler;.this$0:Lorg/jsl/wfwt/HandshakeClientSession; // field@021d │ │ -01947a: 7110 b404 0200 |000b: invoke-static {v2}, Lorg/jsl/wfwt/HandshakeClientSession;.access$100:(Lorg/jsl/wfwt/HandshakeClientSession;)Ljava/lang/String; // method@04b4 │ │ -019480: 0c02 |000e: move-result-object v2 │ │ -019482: 6e20 cb00 2100 |000f: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019488: 1a02 9306 |0012: const-string v2, "session timeout, close connection." // string@0693 │ │ -01948c: 6e20 cb00 2100 |0014: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019492: 6e10 ce00 0100 |0017: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -019498: 0c01 |001a: move-result-object v1 │ │ -01949a: 7120 6400 1000 |001b: invoke-static {v0, v1}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -0194a0: 5430 1d02 |001e: iget-object v0, v3, Lorg/jsl/wfwt/HandshakeClientSession$TimerHandler;.this$0:Lorg/jsl/wfwt/HandshakeClientSession; // field@021d │ │ -0194a4: 7110 b504 0000 |0020: invoke-static {v0}, Lorg/jsl/wfwt/HandshakeClientSession;.access$200:(Lorg/jsl/wfwt/HandshakeClientSession;)Lorg/jsl/collider/Session; // method@04b5 │ │ -0194aa: 0c00 |0023: move-result-object v0 │ │ -0194ac: 7210 4d03 0000 |0024: invoke-interface {v0}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ -0194b2: 1600 0000 |0027: const-wide/16 v0, #int 0 // #0 │ │ -0194b6: 1000 |0029: return-wide v0 │ │ +019458: |[019458] org.jsl.wfwt.HandshakeClientSession$TimerHandler.run:()J │ │ +019468: 7100 b304 0000 |0000: invoke-static {}, Lorg/jsl/wfwt/HandshakeClientSession;.access$000:()Ljava/lang/String; // method@04b3 │ │ +01946e: 0c00 |0003: move-result-object v0 │ │ +019470: 2201 6700 |0004: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ +019474: 7010 c500 0100 |0006: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +01947a: 5432 1d02 |0009: iget-object v2, v3, Lorg/jsl/wfwt/HandshakeClientSession$TimerHandler;.this$0:Lorg/jsl/wfwt/HandshakeClientSession; // field@021d │ │ +01947e: 7110 b404 0200 |000b: invoke-static {v2}, Lorg/jsl/wfwt/HandshakeClientSession;.access$100:(Lorg/jsl/wfwt/HandshakeClientSession;)Ljava/lang/String; // method@04b4 │ │ +019484: 0c02 |000e: move-result-object v2 │ │ +019486: 6e20 cb00 2100 |000f: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01948c: 1a02 9306 |0012: const-string v2, "session timeout, close connection." // string@0693 │ │ +019490: 6e20 cb00 2100 |0014: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019496: 6e10 ce00 0100 |0017: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01949c: 0c01 |001a: move-result-object v1 │ │ +01949e: 7120 6400 1000 |001b: invoke-static {v0, v1}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +0194a4: 5430 1d02 |001e: iget-object v0, v3, Lorg/jsl/wfwt/HandshakeClientSession$TimerHandler;.this$0:Lorg/jsl/wfwt/HandshakeClientSession; // field@021d │ │ +0194a8: 7110 b504 0000 |0020: invoke-static {v0}, Lorg/jsl/wfwt/HandshakeClientSession;.access$200:(Lorg/jsl/wfwt/HandshakeClientSession;)Lorg/jsl/collider/Session; // method@04b5 │ │ +0194ae: 0c00 |0023: move-result-object v0 │ │ +0194b0: 7210 4d03 0000 |0024: invoke-interface {v0}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ +0194b6: 1600 0000 |0027: const-wide/16 v0, #int 0 // #0 │ │ +0194ba: 1000 |0029: return-wide v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=48 │ │ 0x001e line=49 │ │ locals : │ │ 0x0000 - 0x002a reg=3 this Lorg/jsl/wfwt/HandshakeClientSession$TimerHandler; │ │ │ │ @@ -36940,67 +36940,67 @@ │ │ type : '()V' │ │ access : 0x10008 (STATIC CONSTRUCTOR) │ │ code - │ │ registers : 0 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 1 16-bit code units │ │ -0195a8: |[0195a8] org.jsl.wfwt.HandshakeClientSession.:()V │ │ -0195b8: 0e00 |0000: return-void │ │ +0195ac: |[0195ac] org.jsl.wfwt.HandshakeClientSession.:()V │ │ +0195bc: 0e00 |0000: return-void │ │ catches : (none) │ │ positions : │ │ locals : │ │ │ │ #1 : (in Lorg/jsl/wfwt/HandshakeClientSession;) │ │ name : '' │ │ type : '(Lorg/jsl/wfwt/Channel;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/jsl/collider/Session;Lorg/jsl/wfwt/SessionManager;Lorg/jsl/collider/TimerQueue;I)V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 11 │ │ ins : 9 │ │ outs : 5 │ │ insns size : 78 16-bit code units │ │ -0195bc: |[0195bc] org.jsl.wfwt.HandshakeClientSession.:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/jsl/collider/Session;Lorg/jsl/wfwt/SessionManager;Lorg/jsl/collider/TimerQueue;I)V │ │ -0195cc: 7010 b300 0200 |0000: invoke-direct {v2}, Ljava/lang/Object;.:()V // method@00b3 │ │ -0195d2: 5b23 1f02 |0003: iput-object v3, v2, Lorg/jsl/wfwt/HandshakeClientSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@021f │ │ -0195d6: 5b26 2102 |0005: iput-object v6, v2, Lorg/jsl/wfwt/HandshakeClientSession;.m_serviceName:Ljava/lang/String; // field@0221 │ │ -0195da: 5b27 2202 |0007: iput-object v7, v2, Lorg/jsl/wfwt/HandshakeClientSession;.m_session:Lorg/jsl/collider/Session; // field@0222 │ │ -0195de: 7100 9e04 0000 |0009: invoke-static {}, Lorg/jsl/wfwt/ChannelSession;.createStreamDefragger:()Lorg/jsl/collider/StreamDefragger; // method@049e │ │ -0195e4: 0c03 |000c: move-result-object v3 │ │ -0195e6: 5b23 2402 |000d: iput-object v3, v2, Lorg/jsl/wfwt/HandshakeClientSession;.m_streamDefragger:Lorg/jsl/collider/StreamDefragger; // field@0224 │ │ -0195ea: 5b28 2302 |000f: iput-object v8, v2, Lorg/jsl/wfwt/HandshakeClientSession;.m_sessionManager:Lorg/jsl/wfwt/SessionManager; // field@0223 │ │ -0195ee: 5b29 2602 |0011: iput-object v9, v2, Lorg/jsl/wfwt/HandshakeClientSession;.m_timerQueue:Lorg/jsl/collider/TimerQueue; // field@0226 │ │ -0195f2: 592a 2002 |0013: iput v10, v2, Lorg/jsl/wfwt/HandshakeClientSession;.m_pingInterval:I // field@0220 │ │ -0195f6: 3d0a 1000 |0015: if-lez v10, 0025 // +0010 │ │ -0195fa: 2203 2301 |0017: new-instance v3, Lorg/jsl/wfwt/HandshakeClientSession$TimerHandler; // type@0123 │ │ -0195fe: 1206 |0019: const/4 v6, #int 0 // #0 │ │ -019600: 7030 af04 2306 |001a: invoke-direct {v3, v2, v6}, Lorg/jsl/wfwt/HandshakeClientSession$TimerHandler;.:(Lorg/jsl/wfwt/HandshakeClientSession;Lorg/jsl/wfwt/HandshakeClientSession$1;)V // method@04af │ │ -019606: 5b23 2502 |001d: iput-object v3, v2, Lorg/jsl/wfwt/HandshakeClientSession;.m_timerHandler:Lorg/jsl/wfwt/HandshakeClientSession$TimerHandler; // field@0225 │ │ -01960a: 81a0 |001f: int-to-long v0, v10 │ │ -01960c: 6206 0800 |0020: sget-object v6, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@0008 │ │ -019610: 6e56 2204 3910 |0022: invoke-virtual {v9, v3, v0, v1, v6}, Lorg/jsl/collider/TimerQueue;.schedule:(Lorg/jsl/collider/TimerQueue$Task;JLjava/util/concurrent/TimeUnit;)I // method@0422 │ │ -019616: 7120 1d05 5400 |0025: invoke-static {v4, v5}, Lorg/jsl/wfwt/Protocol$HandshakeRequest;.create:(Ljava/lang/String;Ljava/lang/String;)Ljava/nio/ByteBuffer; // method@051d │ │ -01961c: 0c03 |0028: move-result-object v3 │ │ -01961e: 7220 5203 3700 |0029: invoke-interface {v7, v3}, Lorg/jsl/collider/Session;.sendData:(Ljava/nio/ByteBuffer;)I // method@0352 │ │ -019624: 2821 |002c: goto 004d // +0021 │ │ -019626: 0d03 |002d: move-exception v3 │ │ -019628: 6204 1e02 |002e: sget-object v4, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ -01962c: 2205 6700 |0030: new-instance v5, Ljava/lang/StringBuilder; // type@0067 │ │ -019630: 7010 c500 0500 |0032: invoke-direct {v5}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -019636: 7010 b604 0200 |0035: invoke-direct {v2}, Lorg/jsl/wfwt/HandshakeClientSession;.getLogPrefix:()Ljava/lang/String; // method@04b6 │ │ -01963c: 0c06 |0038: move-result-object v6 │ │ -01963e: 6e20 cb00 6500 |0039: invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019644: 6e10 5301 0300 |003c: invoke-virtual {v3}, Ljava/nio/charset/CharacterCodingException;.toString:()Ljava/lang/String; // method@0153 │ │ -01964a: 0c03 |003f: move-result-object v3 │ │ -01964c: 6e20 cb00 3500 |0040: invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019652: 6e10 ce00 0500 |0043: invoke-virtual {v5}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -019658: 0c03 |0046: move-result-object v3 │ │ -01965a: 7120 6200 3400 |0047: invoke-static {v4, v3}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ -019660: 7210 4d03 0700 |004a: invoke-interface {v7}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ -019666: 0e00 |004d: return-void │ │ +0195c0: |[0195c0] org.jsl.wfwt.HandshakeClientSession.:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/jsl/collider/Session;Lorg/jsl/wfwt/SessionManager;Lorg/jsl/collider/TimerQueue;I)V │ │ +0195d0: 7010 b300 0200 |0000: invoke-direct {v2}, Ljava/lang/Object;.:()V // method@00b3 │ │ +0195d6: 5b23 1f02 |0003: iput-object v3, v2, Lorg/jsl/wfwt/HandshakeClientSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@021f │ │ +0195da: 5b26 2102 |0005: iput-object v6, v2, Lorg/jsl/wfwt/HandshakeClientSession;.m_serviceName:Ljava/lang/String; // field@0221 │ │ +0195de: 5b27 2202 |0007: iput-object v7, v2, Lorg/jsl/wfwt/HandshakeClientSession;.m_session:Lorg/jsl/collider/Session; // field@0222 │ │ +0195e2: 7100 9e04 0000 |0009: invoke-static {}, Lorg/jsl/wfwt/ChannelSession;.createStreamDefragger:()Lorg/jsl/collider/StreamDefragger; // method@049e │ │ +0195e8: 0c03 |000c: move-result-object v3 │ │ +0195ea: 5b23 2402 |000d: iput-object v3, v2, Lorg/jsl/wfwt/HandshakeClientSession;.m_streamDefragger:Lorg/jsl/collider/StreamDefragger; // field@0224 │ │ +0195ee: 5b28 2302 |000f: iput-object v8, v2, Lorg/jsl/wfwt/HandshakeClientSession;.m_sessionManager:Lorg/jsl/wfwt/SessionManager; // field@0223 │ │ +0195f2: 5b29 2602 |0011: iput-object v9, v2, Lorg/jsl/wfwt/HandshakeClientSession;.m_timerQueue:Lorg/jsl/collider/TimerQueue; // field@0226 │ │ +0195f6: 592a 2002 |0013: iput v10, v2, Lorg/jsl/wfwt/HandshakeClientSession;.m_pingInterval:I // field@0220 │ │ +0195fa: 3d0a 1000 |0015: if-lez v10, 0025 // +0010 │ │ +0195fe: 2203 2301 |0017: new-instance v3, Lorg/jsl/wfwt/HandshakeClientSession$TimerHandler; // type@0123 │ │ +019602: 1206 |0019: const/4 v6, #int 0 // #0 │ │ +019604: 7030 af04 2306 |001a: invoke-direct {v3, v2, v6}, Lorg/jsl/wfwt/HandshakeClientSession$TimerHandler;.:(Lorg/jsl/wfwt/HandshakeClientSession;Lorg/jsl/wfwt/HandshakeClientSession$1;)V // method@04af │ │ +01960a: 5b23 2502 |001d: iput-object v3, v2, Lorg/jsl/wfwt/HandshakeClientSession;.m_timerHandler:Lorg/jsl/wfwt/HandshakeClientSession$TimerHandler; // field@0225 │ │ +01960e: 81a0 |001f: int-to-long v0, v10 │ │ +019610: 6206 0800 |0020: sget-object v6, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@0008 │ │ +019614: 6e56 2204 3910 |0022: invoke-virtual {v9, v3, v0, v1, v6}, Lorg/jsl/collider/TimerQueue;.schedule:(Lorg/jsl/collider/TimerQueue$Task;JLjava/util/concurrent/TimeUnit;)I // method@0422 │ │ +01961a: 7120 1d05 5400 |0025: invoke-static {v4, v5}, Lorg/jsl/wfwt/Protocol$HandshakeRequest;.create:(Ljava/lang/String;Ljava/lang/String;)Ljava/nio/ByteBuffer; // method@051d │ │ +019620: 0c03 |0028: move-result-object v3 │ │ +019622: 7220 5203 3700 |0029: invoke-interface {v7, v3}, Lorg/jsl/collider/Session;.sendData:(Ljava/nio/ByteBuffer;)I // method@0352 │ │ +019628: 2821 |002c: goto 004d // +0021 │ │ +01962a: 0d03 |002d: move-exception v3 │ │ +01962c: 6204 1e02 |002e: sget-object v4, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ +019630: 2205 6700 |0030: new-instance v5, Ljava/lang/StringBuilder; // type@0067 │ │ +019634: 7010 c500 0500 |0032: invoke-direct {v5}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +01963a: 7010 b604 0200 |0035: invoke-direct {v2}, Lorg/jsl/wfwt/HandshakeClientSession;.getLogPrefix:()Ljava/lang/String; // method@04b6 │ │ +019640: 0c06 |0038: move-result-object v6 │ │ +019642: 6e20 cb00 6500 |0039: invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019648: 6e10 5301 0300 |003c: invoke-virtual {v3}, Ljava/nio/charset/CharacterCodingException;.toString:()Ljava/lang/String; // method@0153 │ │ +01964e: 0c03 |003f: move-result-object v3 │ │ +019650: 6e20 cb00 3500 |0040: invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019656: 6e10 ce00 0500 |0043: invoke-virtual {v5}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01965c: 0c03 |0046: move-result-object v3 │ │ +01965e: 7120 6200 3400 |0047: invoke-static {v4, v3}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ +019664: 7210 4d03 0700 |004a: invoke-interface {v7}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ +01966a: 0e00 |004d: return-void │ │ catches : 1 │ │ 0x0025 - 0x002c │ │ Ljava/nio/charset/CharacterCodingException; -> 0x002d │ │ positions : │ │ 0x0000 line=68 │ │ 0x0003 line=69 │ │ 0x0005 line=70 │ │ @@ -37031,35 +37031,35 @@ │ │ type : '()Ljava/lang/String;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -0194ec: |[0194ec] org.jsl.wfwt.HandshakeClientSession.access$000:()Ljava/lang/String; │ │ -0194fc: 6200 1e02 |0000: sget-object v0, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ -019500: 1100 |0002: return-object v0 │ │ +0194f0: |[0194f0] org.jsl.wfwt.HandshakeClientSession.access$000:()Ljava/lang/String; │ │ +019500: 6200 1e02 |0000: sget-object v0, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ +019504: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=31 │ │ locals : │ │ │ │ #3 : (in Lorg/jsl/wfwt/HandshakeClientSession;) │ │ name : 'access$100' │ │ type : '(Lorg/jsl/wfwt/HandshakeClientSession;)Ljava/lang/String;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 5 16-bit code units │ │ -019504: |[019504] org.jsl.wfwt.HandshakeClientSession.access$100:(Lorg/jsl/wfwt/HandshakeClientSession;)Ljava/lang/String; │ │ -019514: 7010 b604 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/HandshakeClientSession;.getLogPrefix:()Ljava/lang/String; // method@04b6 │ │ -01951a: 0c00 |0003: move-result-object v0 │ │ -01951c: 1100 |0004: return-object v0 │ │ +019508: |[019508] org.jsl.wfwt.HandshakeClientSession.access$100:(Lorg/jsl/wfwt/HandshakeClientSession;)Ljava/lang/String; │ │ +019518: 7010 b604 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/HandshakeClientSession;.getLogPrefix:()Ljava/lang/String; // method@04b6 │ │ +01951e: 0c00 |0003: move-result-object v0 │ │ +019520: 1100 |0004: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=31 │ │ locals : │ │ 0x0000 - 0x0005 reg=0 (null) Lorg/jsl/wfwt/HandshakeClientSession; │ │ │ │ #4 : (in Lorg/jsl/wfwt/HandshakeClientSession;) │ │ @@ -37067,17 +37067,17 @@ │ │ type : '(Lorg/jsl/wfwt/HandshakeClientSession;)Lorg/jsl/collider/Session;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -019590: |[019590] org.jsl.wfwt.HandshakeClientSession.access$200:(Lorg/jsl/wfwt/HandshakeClientSession;)Lorg/jsl/collider/Session; │ │ -0195a0: 5400 2202 |0000: iget-object v0, v0, Lorg/jsl/wfwt/HandshakeClientSession;.m_session:Lorg/jsl/collider/Session; // field@0222 │ │ -0195a4: 1100 |0002: return-object v0 │ │ +019594: |[019594] org.jsl.wfwt.HandshakeClientSession.access$200:(Lorg/jsl/wfwt/HandshakeClientSession;)Lorg/jsl/collider/Session; │ │ +0195a4: 5400 2202 |0000: iget-object v0, v0, Lorg/jsl/wfwt/HandshakeClientSession;.m_session:Lorg/jsl/collider/Session; // field@0222 │ │ +0195a8: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=31 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/HandshakeClientSession; │ │ │ │ #5 : (in Lorg/jsl/wfwt/HandshakeClientSession;) │ │ @@ -37085,36 +37085,36 @@ │ │ type : '()Ljava/lang/String;' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 48 16-bit code units │ │ -019520: |[019520] org.jsl.wfwt.HandshakeClientSession.getLogPrefix:()Ljava/lang/String; │ │ -019530: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -019534: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -01953a: 5421 1f02 |0005: iget-object v1, v2, Lorg/jsl/wfwt/HandshakeClientSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@021f │ │ -01953e: 6e10 8904 0100 |0007: invoke-virtual {v1}, Lorg/jsl/wfwt/Channel;.getName:()Ljava/lang/String; // method@0489 │ │ -019544: 0c01 |000a: move-result-object v1 │ │ -019546: 6e20 cb00 1000 |000b: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01954c: 1a01 0500 |000e: const-string v1, " (" // string@0005 │ │ -019550: 6e20 cb00 1000 |0010: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019556: 5421 2102 |0013: iget-object v1, v2, Lorg/jsl/wfwt/HandshakeClientSession;.m_serviceName:Ljava/lang/String; // field@0221 │ │ -01955a: 6e20 cb00 1000 |0015: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019560: 1a01 3d00 |0018: const-string v1, ", " // string@003d │ │ -019564: 6e20 cb00 1000 |001a: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01956a: 5421 2202 |001d: iget-object v1, v2, Lorg/jsl/wfwt/HandshakeClientSession;.m_session:Lorg/jsl/collider/Session; // field@0222 │ │ -01956e: 7210 5003 0100 |001f: invoke-interface {v1}, Lorg/jsl/collider/Session;.getRemoteAddress:()Ljava/net/SocketAddress; // method@0350 │ │ -019574: 0c01 |0022: move-result-object v1 │ │ -019576: 6e20 ca00 1000 |0023: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ -01957c: 1a01 3b00 |0026: const-string v1, "): " // string@003b │ │ -019580: 6e20 cb00 1000 |0028: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019586: 6e10 ce00 0000 |002b: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01958c: 0c00 |002e: move-result-object v0 │ │ -01958e: 1100 |002f: return-object v0 │ │ +019524: |[019524] org.jsl.wfwt.HandshakeClientSession.getLogPrefix:()Ljava/lang/String; │ │ +019534: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +019538: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +01953e: 5421 1f02 |0005: iget-object v1, v2, Lorg/jsl/wfwt/HandshakeClientSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@021f │ │ +019542: 6e10 8904 0100 |0007: invoke-virtual {v1}, Lorg/jsl/wfwt/Channel;.getName:()Ljava/lang/String; // method@0489 │ │ +019548: 0c01 |000a: move-result-object v1 │ │ +01954a: 6e20 cb00 1000 |000b: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019550: 1a01 0500 |000e: const-string v1, " (" // string@0005 │ │ +019554: 6e20 cb00 1000 |0010: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01955a: 5421 2102 |0013: iget-object v1, v2, Lorg/jsl/wfwt/HandshakeClientSession;.m_serviceName:Ljava/lang/String; // field@0221 │ │ +01955e: 6e20 cb00 1000 |0015: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019564: 1a01 3d00 |0018: const-string v1, ", " // string@003d │ │ +019568: 6e20 cb00 1000 |001a: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01956e: 5421 2202 |001d: iget-object v1, v2, Lorg/jsl/wfwt/HandshakeClientSession;.m_session:Lorg/jsl/collider/Session; // field@0222 │ │ +019572: 7210 5003 0100 |001f: invoke-interface {v1}, Lorg/jsl/collider/Session;.getRemoteAddress:()Ljava/net/SocketAddress; // method@0350 │ │ +019578: 0c01 |0022: move-result-object v1 │ │ +01957a: 6e20 ca00 1000 |0023: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ +019580: 1a01 3b00 |0026: const-string v1, "): " // string@003b │ │ +019584: 6e20 cb00 1000 |0028: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01958a: 6e10 ce00 0000 |002b: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +019590: 0c00 |002e: move-result-object v0 │ │ +019592: 1100 |002f: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=56 │ │ locals : │ │ 0x0000 - 0x0030 reg=2 this Lorg/jsl/wfwt/HandshakeClientSession; │ │ │ │ Virtual methods - │ │ @@ -37123,46 +37123,46 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 1 │ │ outs : 3 │ │ insns size : 64 16-bit code units │ │ -019678: |[019678] org.jsl.wfwt.HandshakeClientSession.onConnectionClosed:()V │ │ -019688: 6200 1e02 |0000: sget-object v0, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ -01968c: 2201 6700 |0002: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ -019690: 7010 c500 0100 |0004: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -019696: 7010 b604 0300 |0007: invoke-direct {v3}, Lorg/jsl/wfwt/HandshakeClientSession;.getLogPrefix:()Ljava/lang/String; // method@04b6 │ │ -01969c: 0c02 |000a: move-result-object v2 │ │ -01969e: 6e20 cb00 2100 |000b: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0196a4: 1a02 5800 |000e: const-string v2, ": connection closed" // string@0058 │ │ -0196a8: 6e20 cb00 2100 |0010: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0196ae: 6e10 ce00 0100 |0013: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -0196b4: 0c01 |0016: move-result-object v1 │ │ -0196b6: 7120 6400 1000 |0017: invoke-static {v0, v1}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -0196bc: 5430 2502 |001a: iget-object v0, v3, Lorg/jsl/wfwt/HandshakeClientSession;.m_timerHandler:Lorg/jsl/wfwt/HandshakeClientSession$TimerHandler; // field@0225 │ │ -0196c0: 3800 1400 |001c: if-eqz v0, 0030 // +0014 │ │ -0196c4: 5431 2602 |001e: iget-object v1, v3, Lorg/jsl/wfwt/HandshakeClientSession;.m_timerQueue:Lorg/jsl/collider/TimerQueue; // field@0226 │ │ -0196c8: 6e20 1d04 0100 |0020: invoke-virtual {v1, v0}, Lorg/jsl/collider/TimerQueue;.cancel:(Lorg/jsl/collider/TimerQueue$Task;)I // method@041d │ │ -0196ce: 280d |0023: goto 0030 // +000d │ │ -0196d0: 0d00 |0024: move-exception v0 │ │ -0196d2: 6201 1e02 |0025: sget-object v1, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ -0196d6: 6e10 ac00 0000 |0027: invoke-virtual {v0}, Ljava/lang/InterruptedException;.toString:()Ljava/lang/String; // method@00ac │ │ -0196dc: 0c02 |002a: move-result-object v2 │ │ -0196de: 7130 6700 2100 |002b: invoke-static {v1, v2, v0}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I // method@0067 │ │ -0196e4: 1210 |002e: const/4 v0, #int 1 // #1 │ │ -0196e6: 2802 |002f: goto 0031 // +0002 │ │ -0196e8: 1200 |0030: const/4 v0, #int 0 // #0 │ │ -0196ea: 5431 2402 |0031: iget-object v1, v3, Lorg/jsl/wfwt/HandshakeClientSession;.m_streamDefragger:Lorg/jsl/collider/StreamDefragger; // field@0224 │ │ -0196ee: 6e10 f503 0100 |0033: invoke-virtual {v1}, Lorg/jsl/collider/StreamDefragger;.close:()V // method@03f5 │ │ -0196f4: 3800 0900 |0036: if-eqz v0, 003f // +0009 │ │ -0196f8: 7100 d600 0000 |0038: invoke-static {}, Ljava/lang/Thread;.currentThread:()Ljava/lang/Thread; // method@00d6 │ │ -0196fe: 0c00 |003b: move-result-object v0 │ │ -019700: 6e10 d900 0000 |003c: invoke-virtual {v0}, Ljava/lang/Thread;.interrupt:()V // method@00d9 │ │ -019706: 0e00 |003f: return-void │ │ +01967c: |[01967c] org.jsl.wfwt.HandshakeClientSession.onConnectionClosed:()V │ │ +01968c: 6200 1e02 |0000: sget-object v0, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ +019690: 2201 6700 |0002: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ +019694: 7010 c500 0100 |0004: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +01969a: 7010 b604 0300 |0007: invoke-direct {v3}, Lorg/jsl/wfwt/HandshakeClientSession;.getLogPrefix:()Ljava/lang/String; // method@04b6 │ │ +0196a0: 0c02 |000a: move-result-object v2 │ │ +0196a2: 6e20 cb00 2100 |000b: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0196a8: 1a02 5800 |000e: const-string v2, ": connection closed" // string@0058 │ │ +0196ac: 6e20 cb00 2100 |0010: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0196b2: 6e10 ce00 0100 |0013: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +0196b8: 0c01 |0016: move-result-object v1 │ │ +0196ba: 7120 6400 1000 |0017: invoke-static {v0, v1}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +0196c0: 5430 2502 |001a: iget-object v0, v3, Lorg/jsl/wfwt/HandshakeClientSession;.m_timerHandler:Lorg/jsl/wfwt/HandshakeClientSession$TimerHandler; // field@0225 │ │ +0196c4: 3800 1400 |001c: if-eqz v0, 0030 // +0014 │ │ +0196c8: 5431 2602 |001e: iget-object v1, v3, Lorg/jsl/wfwt/HandshakeClientSession;.m_timerQueue:Lorg/jsl/collider/TimerQueue; // field@0226 │ │ +0196cc: 6e20 1d04 0100 |0020: invoke-virtual {v1, v0}, Lorg/jsl/collider/TimerQueue;.cancel:(Lorg/jsl/collider/TimerQueue$Task;)I // method@041d │ │ +0196d2: 280d |0023: goto 0030 // +000d │ │ +0196d4: 0d00 |0024: move-exception v0 │ │ +0196d6: 6201 1e02 |0025: sget-object v1, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ +0196da: 6e10 ac00 0000 |0027: invoke-virtual {v0}, Ljava/lang/InterruptedException;.toString:()Ljava/lang/String; // method@00ac │ │ +0196e0: 0c02 |002a: move-result-object v2 │ │ +0196e2: 7130 6700 2100 |002b: invoke-static {v1, v2, v0}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I // method@0067 │ │ +0196e8: 1210 |002e: const/4 v0, #int 1 // #1 │ │ +0196ea: 2802 |002f: goto 0031 // +0002 │ │ +0196ec: 1200 |0030: const/4 v0, #int 0 // #0 │ │ +0196ee: 5431 2402 |0031: iget-object v1, v3, Lorg/jsl/wfwt/HandshakeClientSession;.m_streamDefragger:Lorg/jsl/collider/StreamDefragger; // field@0224 │ │ +0196f2: 6e10 f503 0100 |0033: invoke-virtual {v1}, Lorg/jsl/collider/StreamDefragger;.close:()V // method@03f5 │ │ +0196f8: 3800 0900 |0036: if-eqz v0, 003f // +0009 │ │ +0196fc: 7100 d600 0000 |0038: invoke-static {}, Ljava/lang/Thread;.currentThread:()Ljava/lang/Thread; // method@00d6 │ │ +019702: 0c00 |003b: move-result-object v0 │ │ +019704: 6e10 d900 0000 |003c: invoke-virtual {v0}, Ljava/lang/Thread;.interrupt:()V // method@00d9 │ │ +01970a: 0e00 |003f: return-void │ │ catches : 1 │ │ 0x001e - 0x0023 │ │ Ljava/lang/InterruptedException; -> 0x0024 │ │ positions : │ │ 0x0000 line=191 │ │ 0x001a line=194 │ │ 0x001e line=198 │ │ @@ -37177,206 +37177,206 @@ │ │ type : '(Lorg/jsl/collider/RetainableByteBuffer;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 16 │ │ ins : 2 │ │ outs : 9 │ │ insns size : 427 16-bit code units │ │ -019714: |[019714] org.jsl.wfwt.HandshakeClientSession.onDataReceived:(Lorg/jsl/collider/RetainableByteBuffer;)V │ │ -019724: 54e0 2502 |0000: iget-object v0, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_timerHandler:Lorg/jsl/wfwt/HandshakeClientSession$TimerHandler; // field@0225 │ │ -019728: 3800 1c00 |0002: if-eqz v0, 001e // +001c │ │ -01972c: 54e1 2602 |0004: iget-object v1, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_timerQueue:Lorg/jsl/collider/TimerQueue; // field@0226 │ │ -019730: 6e20 1d04 0100 |0006: invoke-virtual {v1, v0}, Lorg/jsl/collider/TimerQueue;.cancel:(Lorg/jsl/collider/TimerQueue$Task;)I // method@041d │ │ -019736: 0a00 |0009: move-result v0 │ │ -019738: 3800 1400 |000a: if-eqz v0, 001e // +0014 │ │ -01973c: 0e00 |000c: return-void │ │ -01973e: 0d00 |000d: move-exception v0 │ │ -019740: 6201 1e02 |000e: sget-object v1, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ -019744: 6e10 ac00 0000 |0010: invoke-virtual {v0}, Ljava/lang/InterruptedException;.toString:()Ljava/lang/String; // method@00ac │ │ -01974a: 0c00 |0013: move-result-object v0 │ │ -01974c: 7120 6600 0100 |0014: invoke-static {v1, v0}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ -019752: 7100 d600 0000 |0017: invoke-static {}, Ljava/lang/Thread;.currentThread:()Ljava/lang/Thread; // method@00d6 │ │ -019758: 0c00 |001a: move-result-object v0 │ │ -01975a: 6e10 d900 0000 |001b: invoke-virtual {v0}, Ljava/lang/Thread;.interrupt:()V // method@00d9 │ │ -019760: 54e0 2402 |001e: iget-object v0, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_streamDefragger:Lorg/jsl/collider/StreamDefragger; // field@0224 │ │ -019764: 6e20 f803 f000 |0020: invoke-virtual {v0, v15}, Lorg/jsl/collider/StreamDefragger;.getNext:(Lorg/jsl/collider/RetainableByteBuffer;)Lorg/jsl/collider/RetainableByteBuffer; // method@03f8 │ │ -01976a: 0c0f |0023: move-result-object v15 │ │ -01976c: 390f 1e00 |0024: if-nez v15, 0042 // +001e │ │ -019770: 620f 1e02 |0026: sget-object v15, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ -019774: 2200 6700 |0028: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -019778: 7010 c500 0000 |002a: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -01977e: 7010 b604 0e00 |002d: invoke-direct {v14}, Lorg/jsl/wfwt/HandshakeClientSession;.getLogPrefix:()Ljava/lang/String; // method@04b6 │ │ -019784: 0c01 |0030: move-result-object v1 │ │ -019786: 6e20 cb00 1000 |0031: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01978c: 1a01 6a04 |0034: const-string v1, "fragmented ." // string@046a │ │ -019790: 6e20 cb00 1000 |0036: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019796: 6e10 ce00 0000 |0039: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01979c: 0c00 |003c: move-result-object v0 │ │ -01979e: 7120 6400 0f00 |003d: invoke-static {v15, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -0197a4: 2900 6a01 |0040: goto/16 01aa // +016a │ │ -0197a8: 6200 7d01 |0042: sget-object v0, Lorg/jsl/collider/StreamDefragger;.INVALID_HEADER:Lorg/jsl/collider/RetainableByteBuffer; // field@017d │ │ -0197ac: 330f 2300 |0044: if-ne v15, v0, 0067 // +0023 │ │ -0197b0: 620f 1e02 |0046: sget-object v15, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ -0197b4: 2200 6700 |0048: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -0197b8: 7010 c500 0000 |004a: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -0197be: 7010 b604 0e00 |004d: invoke-direct {v14}, Lorg/jsl/wfwt/HandshakeClientSession;.getLogPrefix:()Ljava/lang/String; // method@04b6 │ │ -0197c4: 0c01 |0050: move-result-object v1 │ │ -0197c6: 6e20 cb00 1000 |0051: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0197cc: 1a01 ee04 |0054: const-string v1, "invalid received, close connection." // string@04ee │ │ -0197d0: 6e20 cb00 1000 |0056: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0197d6: 6e10 ce00 0000 |0059: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -0197dc: 0c00 |005c: move-result-object v0 │ │ -0197de: 7120 6400 0f00 |005d: invoke-static {v15, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -0197e4: 54ef 2202 |0060: iget-object v15, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_session:Lorg/jsl/collider/Session; // field@0222 │ │ -0197e8: 7210 4d03 0f00 |0062: invoke-interface {v15}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ -0197ee: 2900 4501 |0065: goto/16 01aa // +0145 │ │ -0197f2: 7110 2605 0f00 |0067: invoke-static {v15}, Lorg/jsl/wfwt/Protocol$Message;.getMessageId:(Lorg/jsl/collider/RetainableByteBuffer;)S // method@0526 │ │ -0197f8: 0a00 |006a: move-result v0 │ │ -0197fa: 1221 |006b: const/4 v1, #int 2 // #2 │ │ -0197fc: 3310 bd00 |006c: if-ne v0, v1, 0129 // +00bd │ │ -019800: 7110 1a05 0f00 |006e: invoke-static {v15}, Lorg/jsl/wfwt/Protocol$HandshakeReplyOk;.getAudioFormat:(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String; // method@051a │ │ -019806: 0c00 |0071: move-result-object v0 │ │ -019808: 7110 1b05 0f00 |0072: invoke-static {v15}, Lorg/jsl/wfwt/Protocol$HandshakeReplyOk;.getStationName:(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String; // method@051b │ │ -01980e: 0c0f |0075: move-result-object v15 │ │ -019810: 7010 b604 0e00 |0076: invoke-direct {v14}, Lorg/jsl/wfwt/HandshakeClientSession;.getLogPrefix:()Ljava/lang/String; // method@04b6 │ │ -019816: 0c01 |0079: move-result-object v1 │ │ -019818: 54e2 1f02 |007a: iget-object v2, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@021f │ │ -01981c: 54e3 2102 |007c: iget-object v3, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_serviceName:Ljava/lang/String; // field@0221 │ │ -019820: 54e4 2202 |007e: iget-object v4, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_session:Lorg/jsl/collider/Session; // field@0222 │ │ -019824: 7154 3f04 0132 |0080: invoke-static {v1, v0, v2, v3, v4}, Lorg/jsl/wfwt/AudioPlayer;.create:(Ljava/lang/String;Ljava/lang/String;Lorg/jsl/wfwt/Channel;Ljava/lang/String;Lorg/jsl/collider/Session;)Lorg/jsl/wfwt/AudioPlayer; // method@043f │ │ -01982a: 0c0b |0083: move-result-object v11 │ │ -01982c: 390b 2b00 |0084: if-nez v11, 00af // +002b │ │ -019830: 620f 1e02 |0086: sget-object v15, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ -019834: 2201 6700 |0088: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ -019838: 7010 c500 0100 |008a: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -01983e: 7010 b604 0e00 |008d: invoke-direct {v14}, Lorg/jsl/wfwt/HandshakeClientSession;.getLogPrefix:()Ljava/lang/String; // method@04b6 │ │ -019844: 0c02 |0090: move-result-object v2 │ │ -019846: 6e20 cb00 2100 |0091: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01984c: 1a02 0d07 |0094: const-string v2, "unsupported audio format [" // string@070d │ │ -019850: 6e20 cb00 2100 |0096: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019856: 6e20 cb00 0100 |0099: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01985c: 1a00 a703 |009c: const-string v0, "], closing connection" // string@03a7 │ │ -019860: 6e20 cb00 0100 |009e: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019866: 6e10 ce00 0100 |00a1: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01986c: 0c00 |00a4: move-result-object v0 │ │ -01986e: 7120 6600 0f00 |00a5: invoke-static {v15, v0}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ -019874: 54ef 2202 |00a8: iget-object v15, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_session:Lorg/jsl/collider/Session; // field@0222 │ │ -019878: 7210 4d03 0f00 |00aa: invoke-interface {v15}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ -01987e: 2900 fd00 |00ad: goto/16 01aa // +00fd │ │ -019882: 6201 1e02 |00af: sget-object v1, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ -019886: 2202 6700 |00b1: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ -01988a: 7010 c500 0200 |00b3: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -019890: 7010 b604 0e00 |00b6: invoke-direct {v14}, Lorg/jsl/wfwt/HandshakeClientSession;.getLogPrefix:()Ljava/lang/String; // method@04b6 │ │ -019896: 0c03 |00b9: move-result-object v3 │ │ -019898: 6e20 cb00 3200 |00ba: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01989e: 1a03 eb00 |00bd: const-string v3, "HandshakeReplyOk: audioFormat[" // string@00eb │ │ -0198a2: 6e20 cb00 3200 |00bf: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0198a8: 6e20 cb00 0200 |00c2: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0198ae: 1a00 a603 |00c5: const-string v0, "] stationName[" // string@03a6 │ │ -0198b2: 6e20 cb00 0200 |00c7: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0198b8: 6e20 cb00 f200 |00ca: invoke-virtual {v2, v15}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0198be: 1a00 9c03 |00cd: const-string v0, "]" // string@039c │ │ -0198c2: 6e20 cb00 0200 |00cf: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0198c8: 6e10 ce00 0200 |00d2: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -0198ce: 0c00 |00d5: move-result-object v0 │ │ -0198d0: 7120 6400 0100 |00d6: invoke-static {v1, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -0198d6: 2200 2001 |00d9: new-instance v0, Lorg/jsl/wfwt/ChannelSession; // type@0120 │ │ -0198da: 54e6 1f02 |00db: iget-object v6, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@021f │ │ -0198de: 54e7 2102 |00dd: iget-object v7, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_serviceName:Ljava/lang/String; // field@0221 │ │ -0198e2: 54e8 2202 |00df: iget-object v8, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_session:Lorg/jsl/collider/Session; // field@0222 │ │ -0198e6: 54e9 2402 |00e1: iget-object v9, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_streamDefragger:Lorg/jsl/collider/StreamDefragger; // field@0224 │ │ -0198ea: 54ea 2302 |00e3: iget-object v10, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_sessionManager:Lorg/jsl/wfwt/SessionManager; // field@0223 │ │ -0198ee: 54ec 2602 |00e5: iget-object v12, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_timerQueue:Lorg/jsl/collider/TimerQueue; // field@0226 │ │ -0198f2: 52ed 2002 |00e7: iget v13, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_pingInterval:I // field@0220 │ │ -0198f6: 0705 |00e9: move-object v5, v0 │ │ -0198f8: 7609 9c04 0500 |00ea: invoke-direct/range {v5, v6, v7, v8, v9, v10, v11, v12, v13}, Lorg/jsl/wfwt/ChannelSession;.:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;Lorg/jsl/collider/Session;Lorg/jsl/collider/StreamDefragger;Lorg/jsl/wfwt/SessionManager;Lorg/jsl/wfwt/AudioPlayer;Lorg/jsl/collider/TimerQueue;I)V // method@049c │ │ -0198fe: 54e1 1f02 |00ed: iget-object v1, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@021f │ │ -019902: 54e2 2102 |00ef: iget-object v2, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_serviceName:Ljava/lang/String; // field@0221 │ │ -019906: 6e40 9204 21f0 |00f1: invoke-virtual {v1, v2, v0, v15}, Lorg/jsl/wfwt/Channel;.setStationInfo:(Ljava/lang/String;Lorg/jsl/wfwt/ChannelSession;Ljava/lang/String;)V // method@0492 │ │ -01990c: 54ef 2202 |00f4: iget-object v15, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_session:Lorg/jsl/collider/Session; // field@0222 │ │ -019910: 7220 5103 0f00 |00f6: invoke-interface {v15, v0}, Lorg/jsl/collider/Session;.replaceListener:(Lorg/jsl/collider/Session$Listener;)Lorg/jsl/collider/Session$Listener; // method@0351 │ │ -019916: 2900 b100 |00f9: goto/16 01aa // +00b1 │ │ -01991a: 0d0f |00fb: move-exception v15 │ │ -01991c: 6200 1e02 |00fc: sget-object v0, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ -019920: 2201 6700 |00fe: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ -019924: 7010 c500 0100 |0100: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -01992a: 7010 b604 0e00 |0103: invoke-direct {v14}, Lorg/jsl/wfwt/HandshakeClientSession;.getLogPrefix:()Ljava/lang/String; // method@04b6 │ │ -019930: 0c02 |0106: move-result-object v2 │ │ -019932: 6e20 cb00 2100 |0107: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019938: 1a02 5100 |010a: const-string v2, ": " // string@0051 │ │ -01993c: 6e20 cb00 2100 |010c: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019942: 6e10 5301 0f00 |010f: invoke-virtual {v15}, Ljava/nio/charset/CharacterCodingException;.toString:()Ljava/lang/String; // method@0153 │ │ -019948: 0c0f |0112: move-result-object v15 │ │ -01994a: 6e20 cb00 f100 |0113: invoke-virtual {v1, v15}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019950: 1a0f 3e00 |0116: const-string v15, ", close connection" // string@003e │ │ -019954: 6e20 cb00 f100 |0118: invoke-virtual {v1, v15}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01995a: 6e10 ce00 0100 |011b: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -019960: 0c0f |011e: move-result-object v15 │ │ -019962: 7120 6600 f000 |011f: invoke-static {v0, v15}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ -019968: 54ef 2202 |0122: iget-object v15, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_session:Lorg/jsl/collider/Session; // field@0222 │ │ -01996c: 7210 4d03 0f00 |0124: invoke-interface {v15}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ -019972: 2900 8300 |0127: goto/16 01aa // +0083 │ │ -019976: 1231 |0129: const/4 v1, #int 3 // #3 │ │ -019978: 1a02 3f00 |012a: const-string v2, ", close connection." // string@003f │ │ -01997c: 3310 4b00 |012c: if-ne v0, v1, 0177 // +004b │ │ -019980: 7110 1605 0f00 |012e: invoke-static {v15}, Lorg/jsl/wfwt/Protocol$HandshakeReplyFail;.getStatusText:(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String; // method@0516 │ │ -019986: 0c0f |0131: move-result-object v15 │ │ -019988: 281f |0132: goto 0151 // +001f │ │ -01998a: 0d0f |0133: move-exception v15 │ │ -01998c: 6200 1e02 |0134: sget-object v0, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ -019990: 2201 6700 |0136: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ -019994: 7010 c500 0100 |0138: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -01999a: 7010 b604 0e00 |013b: invoke-direct {v14}, Lorg/jsl/wfwt/HandshakeClientSession;.getLogPrefix:()Ljava/lang/String; // method@04b6 │ │ -0199a0: 0c03 |013e: move-result-object v3 │ │ -0199a2: 6e20 cb00 3100 |013f: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0199a8: 6e10 5301 0f00 |0142: invoke-virtual {v15}, Ljava/nio/charset/CharacterCodingException;.toString:()Ljava/lang/String; // method@0153 │ │ -0199ae: 0c0f |0145: move-result-object v15 │ │ -0199b0: 6e20 cb00 f100 |0146: invoke-virtual {v1, v15}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0199b6: 6e10 ce00 0100 |0149: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -0199bc: 0c0f |014c: move-result-object v15 │ │ -0199be: 7120 6600 f000 |014d: invoke-static {v0, v15}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ -0199c4: 120f |0150: const/4 v15, #int 0 // #0 │ │ -0199c6: 6200 1e02 |0151: sget-object v0, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ -0199ca: 2201 6700 |0153: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ -0199ce: 7010 c500 0100 |0155: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -0199d4: 7010 b604 0e00 |0158: invoke-direct {v14}, Lorg/jsl/wfwt/HandshakeClientSession;.getLogPrefix:()Ljava/lang/String; // method@04b6 │ │ -0199da: 0c03 |015b: move-result-object v3 │ │ -0199dc: 6e20 cb00 3100 |015c: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0199e2: 1a03 ed00 |015f: const-string v3, "HandshakeRequest rejected: " // string@00ed │ │ -0199e6: 6e20 cb00 3100 |0161: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0199ec: 6e20 cb00 f100 |0164: invoke-virtual {v1, v15}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0199f2: 6e20 cb00 2100 |0167: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0199f8: 6e10 ce00 0100 |016a: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -0199fe: 0c0f |016d: move-result-object v15 │ │ -019a00: 7120 6400 f000 |016e: invoke-static {v0, v15}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -019a06: 54ef 2202 |0171: iget-object v15, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_session:Lorg/jsl/collider/Session; // field@0222 │ │ -019a0a: 7210 4d03 0f00 |0173: invoke-interface {v15}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ -019a10: 2834 |0176: goto 01aa // +0034 │ │ -019a12: 620f 1e02 |0177: sget-object v15, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ -019a16: 2201 6700 |0179: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ -019a1a: 7010 c500 0100 |017b: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -019a20: 7010 b604 0e00 |017e: invoke-direct {v14}, Lorg/jsl/wfwt/HandshakeClientSession;.getLogPrefix:()Ljava/lang/String; // method@04b6 │ │ -019a26: 0c03 |0181: move-result-object v3 │ │ -019a28: 6e20 cb00 3100 |0182: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019a2e: 1a03 0707 |0185: const-string v3, "unexpected message " // string@0707 │ │ -019a32: 6e20 cb00 3100 |0187: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019a38: 6e20 c800 0100 |018a: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ -019a3e: 1a00 2000 |018d: const-string v0, " received from " // string@0020 │ │ -019a42: 6e20 cb00 0100 |018f: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019a48: 54e0 2202 |0192: iget-object v0, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_session:Lorg/jsl/collider/Session; // field@0222 │ │ -019a4c: 7210 5003 0000 |0194: invoke-interface {v0}, Lorg/jsl/collider/Session;.getRemoteAddress:()Ljava/net/SocketAddress; // method@0350 │ │ -019a52: 0c00 |0197: move-result-object v0 │ │ -019a54: 6e20 ca00 0100 |0198: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ -019a5a: 6e20 cb00 2100 |019b: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019a60: 6e10 ce00 0100 |019e: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -019a66: 0c00 |01a1: move-result-object v0 │ │ -019a68: 7120 6400 0f00 |01a2: invoke-static {v15, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -019a6e: 54ef 2202 |01a5: iget-object v15, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_session:Lorg/jsl/collider/Session; // field@0222 │ │ -019a72: 7210 4d03 0f00 |01a7: invoke-interface {v15}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ -019a78: 0e00 |01aa: return-void │ │ +019718: |[019718] org.jsl.wfwt.HandshakeClientSession.onDataReceived:(Lorg/jsl/collider/RetainableByteBuffer;)V │ │ +019728: 54e0 2502 |0000: iget-object v0, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_timerHandler:Lorg/jsl/wfwt/HandshakeClientSession$TimerHandler; // field@0225 │ │ +01972c: 3800 1c00 |0002: if-eqz v0, 001e // +001c │ │ +019730: 54e1 2602 |0004: iget-object v1, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_timerQueue:Lorg/jsl/collider/TimerQueue; // field@0226 │ │ +019734: 6e20 1d04 0100 |0006: invoke-virtual {v1, v0}, Lorg/jsl/collider/TimerQueue;.cancel:(Lorg/jsl/collider/TimerQueue$Task;)I // method@041d │ │ +01973a: 0a00 |0009: move-result v0 │ │ +01973c: 3800 1400 |000a: if-eqz v0, 001e // +0014 │ │ +019740: 0e00 |000c: return-void │ │ +019742: 0d00 |000d: move-exception v0 │ │ +019744: 6201 1e02 |000e: sget-object v1, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ +019748: 6e10 ac00 0000 |0010: invoke-virtual {v0}, Ljava/lang/InterruptedException;.toString:()Ljava/lang/String; // method@00ac │ │ +01974e: 0c00 |0013: move-result-object v0 │ │ +019750: 7120 6600 0100 |0014: invoke-static {v1, v0}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ +019756: 7100 d600 0000 |0017: invoke-static {}, Ljava/lang/Thread;.currentThread:()Ljava/lang/Thread; // method@00d6 │ │ +01975c: 0c00 |001a: move-result-object v0 │ │ +01975e: 6e10 d900 0000 |001b: invoke-virtual {v0}, Ljava/lang/Thread;.interrupt:()V // method@00d9 │ │ +019764: 54e0 2402 |001e: iget-object v0, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_streamDefragger:Lorg/jsl/collider/StreamDefragger; // field@0224 │ │ +019768: 6e20 f803 f000 |0020: invoke-virtual {v0, v15}, Lorg/jsl/collider/StreamDefragger;.getNext:(Lorg/jsl/collider/RetainableByteBuffer;)Lorg/jsl/collider/RetainableByteBuffer; // method@03f8 │ │ +01976e: 0c0f |0023: move-result-object v15 │ │ +019770: 390f 1e00 |0024: if-nez v15, 0042 // +001e │ │ +019774: 620f 1e02 |0026: sget-object v15, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ +019778: 2200 6700 |0028: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +01977c: 7010 c500 0000 |002a: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +019782: 7010 b604 0e00 |002d: invoke-direct {v14}, Lorg/jsl/wfwt/HandshakeClientSession;.getLogPrefix:()Ljava/lang/String; // method@04b6 │ │ +019788: 0c01 |0030: move-result-object v1 │ │ +01978a: 6e20 cb00 1000 |0031: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019790: 1a01 6a04 |0034: const-string v1, "fragmented ." // string@046a │ │ +019794: 6e20 cb00 1000 |0036: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01979a: 6e10 ce00 0000 |0039: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +0197a0: 0c00 |003c: move-result-object v0 │ │ +0197a2: 7120 6400 0f00 |003d: invoke-static {v15, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +0197a8: 2900 6a01 |0040: goto/16 01aa // +016a │ │ +0197ac: 6200 7d01 |0042: sget-object v0, Lorg/jsl/collider/StreamDefragger;.INVALID_HEADER:Lorg/jsl/collider/RetainableByteBuffer; // field@017d │ │ +0197b0: 330f 2300 |0044: if-ne v15, v0, 0067 // +0023 │ │ +0197b4: 620f 1e02 |0046: sget-object v15, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ +0197b8: 2200 6700 |0048: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +0197bc: 7010 c500 0000 |004a: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +0197c2: 7010 b604 0e00 |004d: invoke-direct {v14}, Lorg/jsl/wfwt/HandshakeClientSession;.getLogPrefix:()Ljava/lang/String; // method@04b6 │ │ +0197c8: 0c01 |0050: move-result-object v1 │ │ +0197ca: 6e20 cb00 1000 |0051: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0197d0: 1a01 ee04 |0054: const-string v1, "invalid received, close connection." // string@04ee │ │ +0197d4: 6e20 cb00 1000 |0056: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0197da: 6e10 ce00 0000 |0059: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +0197e0: 0c00 |005c: move-result-object v0 │ │ +0197e2: 7120 6400 0f00 |005d: invoke-static {v15, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +0197e8: 54ef 2202 |0060: iget-object v15, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_session:Lorg/jsl/collider/Session; // field@0222 │ │ +0197ec: 7210 4d03 0f00 |0062: invoke-interface {v15}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ +0197f2: 2900 4501 |0065: goto/16 01aa // +0145 │ │ +0197f6: 7110 2605 0f00 |0067: invoke-static {v15}, Lorg/jsl/wfwt/Protocol$Message;.getMessageId:(Lorg/jsl/collider/RetainableByteBuffer;)S // method@0526 │ │ +0197fc: 0a00 |006a: move-result v0 │ │ +0197fe: 1221 |006b: const/4 v1, #int 2 // #2 │ │ +019800: 3310 bd00 |006c: if-ne v0, v1, 0129 // +00bd │ │ +019804: 7110 1a05 0f00 |006e: invoke-static {v15}, Lorg/jsl/wfwt/Protocol$HandshakeReplyOk;.getAudioFormat:(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String; // method@051a │ │ +01980a: 0c00 |0071: move-result-object v0 │ │ +01980c: 7110 1b05 0f00 |0072: invoke-static {v15}, Lorg/jsl/wfwt/Protocol$HandshakeReplyOk;.getStationName:(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String; // method@051b │ │ +019812: 0c0f |0075: move-result-object v15 │ │ +019814: 7010 b604 0e00 |0076: invoke-direct {v14}, Lorg/jsl/wfwt/HandshakeClientSession;.getLogPrefix:()Ljava/lang/String; // method@04b6 │ │ +01981a: 0c01 |0079: move-result-object v1 │ │ +01981c: 54e2 1f02 |007a: iget-object v2, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@021f │ │ +019820: 54e3 2102 |007c: iget-object v3, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_serviceName:Ljava/lang/String; // field@0221 │ │ +019824: 54e4 2202 |007e: iget-object v4, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_session:Lorg/jsl/collider/Session; // field@0222 │ │ +019828: 7154 3f04 0132 |0080: invoke-static {v1, v0, v2, v3, v4}, Lorg/jsl/wfwt/AudioPlayer;.create:(Ljava/lang/String;Ljava/lang/String;Lorg/jsl/wfwt/Channel;Ljava/lang/String;Lorg/jsl/collider/Session;)Lorg/jsl/wfwt/AudioPlayer; // method@043f │ │ +01982e: 0c0b |0083: move-result-object v11 │ │ +019830: 390b 2b00 |0084: if-nez v11, 00af // +002b │ │ +019834: 620f 1e02 |0086: sget-object v15, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ +019838: 2201 6700 |0088: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ +01983c: 7010 c500 0100 |008a: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +019842: 7010 b604 0e00 |008d: invoke-direct {v14}, Lorg/jsl/wfwt/HandshakeClientSession;.getLogPrefix:()Ljava/lang/String; // method@04b6 │ │ +019848: 0c02 |0090: move-result-object v2 │ │ +01984a: 6e20 cb00 2100 |0091: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019850: 1a02 0d07 |0094: const-string v2, "unsupported audio format [" // string@070d │ │ +019854: 6e20 cb00 2100 |0096: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01985a: 6e20 cb00 0100 |0099: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019860: 1a00 a703 |009c: const-string v0, "], closing connection" // string@03a7 │ │ +019864: 6e20 cb00 0100 |009e: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01986a: 6e10 ce00 0100 |00a1: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +019870: 0c00 |00a4: move-result-object v0 │ │ +019872: 7120 6600 0f00 |00a5: invoke-static {v15, v0}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ +019878: 54ef 2202 |00a8: iget-object v15, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_session:Lorg/jsl/collider/Session; // field@0222 │ │ +01987c: 7210 4d03 0f00 |00aa: invoke-interface {v15}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ +019882: 2900 fd00 |00ad: goto/16 01aa // +00fd │ │ +019886: 6201 1e02 |00af: sget-object v1, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ +01988a: 2202 6700 |00b1: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ +01988e: 7010 c500 0200 |00b3: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +019894: 7010 b604 0e00 |00b6: invoke-direct {v14}, Lorg/jsl/wfwt/HandshakeClientSession;.getLogPrefix:()Ljava/lang/String; // method@04b6 │ │ +01989a: 0c03 |00b9: move-result-object v3 │ │ +01989c: 6e20 cb00 3200 |00ba: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0198a2: 1a03 eb00 |00bd: const-string v3, "HandshakeReplyOk: audioFormat[" // string@00eb │ │ +0198a6: 6e20 cb00 3200 |00bf: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0198ac: 6e20 cb00 0200 |00c2: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0198b2: 1a00 a603 |00c5: const-string v0, "] stationName[" // string@03a6 │ │ +0198b6: 6e20 cb00 0200 |00c7: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0198bc: 6e20 cb00 f200 |00ca: invoke-virtual {v2, v15}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0198c2: 1a00 9c03 |00cd: const-string v0, "]" // string@039c │ │ +0198c6: 6e20 cb00 0200 |00cf: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0198cc: 6e10 ce00 0200 |00d2: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +0198d2: 0c00 |00d5: move-result-object v0 │ │ +0198d4: 7120 6400 0100 |00d6: invoke-static {v1, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +0198da: 2200 2001 |00d9: new-instance v0, Lorg/jsl/wfwt/ChannelSession; // type@0120 │ │ +0198de: 54e6 1f02 |00db: iget-object v6, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@021f │ │ +0198e2: 54e7 2102 |00dd: iget-object v7, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_serviceName:Ljava/lang/String; // field@0221 │ │ +0198e6: 54e8 2202 |00df: iget-object v8, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_session:Lorg/jsl/collider/Session; // field@0222 │ │ +0198ea: 54e9 2402 |00e1: iget-object v9, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_streamDefragger:Lorg/jsl/collider/StreamDefragger; // field@0224 │ │ +0198ee: 54ea 2302 |00e3: iget-object v10, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_sessionManager:Lorg/jsl/wfwt/SessionManager; // field@0223 │ │ +0198f2: 54ec 2602 |00e5: iget-object v12, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_timerQueue:Lorg/jsl/collider/TimerQueue; // field@0226 │ │ +0198f6: 52ed 2002 |00e7: iget v13, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_pingInterval:I // field@0220 │ │ +0198fa: 0705 |00e9: move-object v5, v0 │ │ +0198fc: 7609 9c04 0500 |00ea: invoke-direct/range {v5, v6, v7, v8, v9, v10, v11, v12, v13}, Lorg/jsl/wfwt/ChannelSession;.:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;Lorg/jsl/collider/Session;Lorg/jsl/collider/StreamDefragger;Lorg/jsl/wfwt/SessionManager;Lorg/jsl/wfwt/AudioPlayer;Lorg/jsl/collider/TimerQueue;I)V // method@049c │ │ +019902: 54e1 1f02 |00ed: iget-object v1, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@021f │ │ +019906: 54e2 2102 |00ef: iget-object v2, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_serviceName:Ljava/lang/String; // field@0221 │ │ +01990a: 6e40 9204 21f0 |00f1: invoke-virtual {v1, v2, v0, v15}, Lorg/jsl/wfwt/Channel;.setStationInfo:(Ljava/lang/String;Lorg/jsl/wfwt/ChannelSession;Ljava/lang/String;)V // method@0492 │ │ +019910: 54ef 2202 |00f4: iget-object v15, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_session:Lorg/jsl/collider/Session; // field@0222 │ │ +019914: 7220 5103 0f00 |00f6: invoke-interface {v15, v0}, Lorg/jsl/collider/Session;.replaceListener:(Lorg/jsl/collider/Session$Listener;)Lorg/jsl/collider/Session$Listener; // method@0351 │ │ +01991a: 2900 b100 |00f9: goto/16 01aa // +00b1 │ │ +01991e: 0d0f |00fb: move-exception v15 │ │ +019920: 6200 1e02 |00fc: sget-object v0, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ +019924: 2201 6700 |00fe: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ +019928: 7010 c500 0100 |0100: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +01992e: 7010 b604 0e00 |0103: invoke-direct {v14}, Lorg/jsl/wfwt/HandshakeClientSession;.getLogPrefix:()Ljava/lang/String; // method@04b6 │ │ +019934: 0c02 |0106: move-result-object v2 │ │ +019936: 6e20 cb00 2100 |0107: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01993c: 1a02 5100 |010a: const-string v2, ": " // string@0051 │ │ +019940: 6e20 cb00 2100 |010c: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019946: 6e10 5301 0f00 |010f: invoke-virtual {v15}, Ljava/nio/charset/CharacterCodingException;.toString:()Ljava/lang/String; // method@0153 │ │ +01994c: 0c0f |0112: move-result-object v15 │ │ +01994e: 6e20 cb00 f100 |0113: invoke-virtual {v1, v15}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019954: 1a0f 3e00 |0116: const-string v15, ", close connection" // string@003e │ │ +019958: 6e20 cb00 f100 |0118: invoke-virtual {v1, v15}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01995e: 6e10 ce00 0100 |011b: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +019964: 0c0f |011e: move-result-object v15 │ │ +019966: 7120 6600 f000 |011f: invoke-static {v0, v15}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ +01996c: 54ef 2202 |0122: iget-object v15, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_session:Lorg/jsl/collider/Session; // field@0222 │ │ +019970: 7210 4d03 0f00 |0124: invoke-interface {v15}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ +019976: 2900 8300 |0127: goto/16 01aa // +0083 │ │ +01997a: 1231 |0129: const/4 v1, #int 3 // #3 │ │ +01997c: 1a02 3f00 |012a: const-string v2, ", close connection." // string@003f │ │ +019980: 3310 4b00 |012c: if-ne v0, v1, 0177 // +004b │ │ +019984: 7110 1605 0f00 |012e: invoke-static {v15}, Lorg/jsl/wfwt/Protocol$HandshakeReplyFail;.getStatusText:(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String; // method@0516 │ │ +01998a: 0c0f |0131: move-result-object v15 │ │ +01998c: 281f |0132: goto 0151 // +001f │ │ +01998e: 0d0f |0133: move-exception v15 │ │ +019990: 6200 1e02 |0134: sget-object v0, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ +019994: 2201 6700 |0136: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ +019998: 7010 c500 0100 |0138: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +01999e: 7010 b604 0e00 |013b: invoke-direct {v14}, Lorg/jsl/wfwt/HandshakeClientSession;.getLogPrefix:()Ljava/lang/String; // method@04b6 │ │ +0199a4: 0c03 |013e: move-result-object v3 │ │ +0199a6: 6e20 cb00 3100 |013f: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0199ac: 6e10 5301 0f00 |0142: invoke-virtual {v15}, Ljava/nio/charset/CharacterCodingException;.toString:()Ljava/lang/String; // method@0153 │ │ +0199b2: 0c0f |0145: move-result-object v15 │ │ +0199b4: 6e20 cb00 f100 |0146: invoke-virtual {v1, v15}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0199ba: 6e10 ce00 0100 |0149: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +0199c0: 0c0f |014c: move-result-object v15 │ │ +0199c2: 7120 6600 f000 |014d: invoke-static {v0, v15}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;)I // method@0066 │ │ +0199c8: 120f |0150: const/4 v15, #int 0 // #0 │ │ +0199ca: 6200 1e02 |0151: sget-object v0, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ +0199ce: 2201 6700 |0153: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ +0199d2: 7010 c500 0100 |0155: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +0199d8: 7010 b604 0e00 |0158: invoke-direct {v14}, Lorg/jsl/wfwt/HandshakeClientSession;.getLogPrefix:()Ljava/lang/String; // method@04b6 │ │ +0199de: 0c03 |015b: move-result-object v3 │ │ +0199e0: 6e20 cb00 3100 |015c: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0199e6: 1a03 ed00 |015f: const-string v3, "HandshakeRequest rejected: " // string@00ed │ │ +0199ea: 6e20 cb00 3100 |0161: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0199f0: 6e20 cb00 f100 |0164: invoke-virtual {v1, v15}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0199f6: 6e20 cb00 2100 |0167: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +0199fc: 6e10 ce00 0100 |016a: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +019a02: 0c0f |016d: move-result-object v15 │ │ +019a04: 7120 6400 f000 |016e: invoke-static {v0, v15}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +019a0a: 54ef 2202 |0171: iget-object v15, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_session:Lorg/jsl/collider/Session; // field@0222 │ │ +019a0e: 7210 4d03 0f00 |0173: invoke-interface {v15}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ +019a14: 2834 |0176: goto 01aa // +0034 │ │ +019a16: 620f 1e02 |0177: sget-object v15, Lorg/jsl/wfwt/HandshakeClientSession;.LOG_TAG:Ljava/lang/String; // field@021e │ │ +019a1a: 2201 6700 |0179: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ +019a1e: 7010 c500 0100 |017b: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +019a24: 7010 b604 0e00 |017e: invoke-direct {v14}, Lorg/jsl/wfwt/HandshakeClientSession;.getLogPrefix:()Ljava/lang/String; // method@04b6 │ │ +019a2a: 0c03 |0181: move-result-object v3 │ │ +019a2c: 6e20 cb00 3100 |0182: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019a32: 1a03 0707 |0185: const-string v3, "unexpected message " // string@0707 │ │ +019a36: 6e20 cb00 3100 |0187: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019a3c: 6e20 c800 0100 |018a: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ +019a42: 1a00 2000 |018d: const-string v0, " received from " // string@0020 │ │ +019a46: 6e20 cb00 0100 |018f: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019a4c: 54e0 2202 |0192: iget-object v0, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_session:Lorg/jsl/collider/Session; // field@0222 │ │ +019a50: 7210 5003 0000 |0194: invoke-interface {v0}, Lorg/jsl/collider/Session;.getRemoteAddress:()Ljava/net/SocketAddress; // method@0350 │ │ +019a56: 0c00 |0197: move-result-object v0 │ │ +019a58: 6e20 ca00 0100 |0198: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ +019a5e: 6e20 cb00 2100 |019b: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019a64: 6e10 ce00 0100 |019e: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +019a6a: 0c00 |01a1: move-result-object v0 │ │ +019a6c: 7120 6400 0f00 |01a2: invoke-static {v15, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +019a72: 54ef 2202 |01a5: iget-object v15, v14, Lorg/jsl/wfwt/HandshakeClientSession;.m_session:Lorg/jsl/collider/Session; // field@0222 │ │ +019a76: 7210 4d03 0f00 |01a7: invoke-interface {v15}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ +019a7c: 0e00 |01aa: return-void │ │ catches : 3 │ │ 0x0004 - 0x000a │ │ Ljava/lang/InterruptedException; -> 0x000d │ │ 0x006e - 0x00f9 │ │ Ljava/nio/charset/CharacterCodingException; -> 0x00fb │ │ 0x012e - 0x0132 │ │ Ljava/nio/charset/CharacterCodingException; -> 0x0133 │ │ @@ -37450,18 +37450,18 @@ │ │ type : '(Lorg/jsl/wfwt/HandshakeServerSession;)V' │ │ access : 0x10002 (PRIVATE CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -019b04: |[019b04] org.jsl.wfwt.HandshakeServerSession$TimerHandler.:(Lorg/jsl/wfwt/HandshakeServerSession;)V │ │ -019b14: 5b01 2702 |0000: iput-object v1, v0, Lorg/jsl/wfwt/HandshakeServerSession$TimerHandler;.this$0:Lorg/jsl/wfwt/HandshakeServerSession; // field@0227 │ │ -019b18: 7010 b300 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -019b1e: 0e00 |0005: return-void │ │ +019b08: |[019b08] org.jsl.wfwt.HandshakeServerSession$TimerHandler.:(Lorg/jsl/wfwt/HandshakeServerSession;)V │ │ +019b18: 5b01 2702 |0000: iput-object v1, v0, Lorg/jsl/wfwt/HandshakeServerSession$TimerHandler;.this$0:Lorg/jsl/wfwt/HandshakeServerSession; // field@0227 │ │ +019b1c: 7010 b300 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +019b22: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=42 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/jsl/wfwt/HandshakeServerSession$TimerHandler; │ │ 0x0000 - 0x0006 reg=1 (null) Lorg/jsl/wfwt/HandshakeServerSession; │ │ │ │ @@ -37470,17 +37470,17 @@ │ │ type : '(Lorg/jsl/wfwt/HandshakeServerSession;Lorg/jsl/wfwt/HandshakeServerSession$1;)V' │ │ access : 0x11000 (SYNTHETIC CONSTRUCTOR) │ │ code - │ │ registers : 3 │ │ ins : 3 │ │ outs : 2 │ │ insns size : 4 16-bit code units │ │ -019b20: |[019b20] org.jsl.wfwt.HandshakeServerSession$TimerHandler.:(Lorg/jsl/wfwt/HandshakeServerSession;Lorg/jsl/wfwt/HandshakeServerSession$1;)V │ │ -019b30: 7020 b904 1000 |0000: invoke-direct {v0, v1}, Lorg/jsl/wfwt/HandshakeServerSession$TimerHandler;.:(Lorg/jsl/wfwt/HandshakeServerSession;)V // method@04b9 │ │ -019b36: 0e00 |0003: return-void │ │ +019b24: |[019b24] org.jsl.wfwt.HandshakeServerSession$TimerHandler.:(Lorg/jsl/wfwt/HandshakeServerSession;Lorg/jsl/wfwt/HandshakeServerSession$1;)V │ │ +019b34: 7020 b904 1000 |0000: invoke-direct {v0, v1}, Lorg/jsl/wfwt/HandshakeServerSession$TimerHandler;.:(Lorg/jsl/wfwt/HandshakeServerSession;)V // method@04b9 │ │ +019b3a: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=42 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/jsl/wfwt/HandshakeServerSession$TimerHandler; │ │ 0x0000 - 0x0004 reg=1 (null) Lorg/jsl/wfwt/HandshakeServerSession; │ │ 0x0000 - 0x0004 reg=2 (null) Lorg/jsl/wfwt/HandshakeServerSession$1; │ │ @@ -37491,33 +37491,33 @@ │ │ type : '()J' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 40 16-bit code units │ │ -019aa4: |[019aa4] org.jsl.wfwt.HandshakeServerSession$TimerHandler.run:()J │ │ -019ab4: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -019ab8: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -019abe: 5421 2702 |0005: iget-object v1, v2, Lorg/jsl/wfwt/HandshakeServerSession$TimerHandler;.this$0:Lorg/jsl/wfwt/HandshakeServerSession; // field@0227 │ │ -019ac2: 7110 bd04 0100 |0007: invoke-static {v1}, Lorg/jsl/wfwt/HandshakeServerSession;.access$000:(Lorg/jsl/wfwt/HandshakeServerSession;)Ljava/lang/String; // method@04bd │ │ -019ac8: 0c01 |000a: move-result-object v1 │ │ -019aca: 6e20 cb00 1000 |000b: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019ad0: 1a01 9306 |000e: const-string v1, "session timeout, close connection." // string@0693 │ │ -019ad4: 6e20 cb00 1000 |0010: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019ada: 6e10 ce00 0000 |0013: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -019ae0: 0c00 |0016: move-result-object v0 │ │ -019ae2: 1a01 ee00 |0017: const-string v1, "HandshakeServerSession" // string@00ee │ │ -019ae6: 7120 6400 0100 |0019: invoke-static {v1, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -019aec: 5420 2702 |001c: iget-object v0, v2, Lorg/jsl/wfwt/HandshakeServerSession$TimerHandler;.this$0:Lorg/jsl/wfwt/HandshakeServerSession; // field@0227 │ │ -019af0: 7110 be04 0000 |001e: invoke-static {v0}, Lorg/jsl/wfwt/HandshakeServerSession;.access$100:(Lorg/jsl/wfwt/HandshakeServerSession;)Lorg/jsl/collider/Session; // method@04be │ │ -019af6: 0c00 |0021: move-result-object v0 │ │ -019af8: 7210 4d03 0000 |0022: invoke-interface {v0}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ -019afe: 1600 0000 |0025: const-wide/16 v0, #int 0 // #0 │ │ -019b02: 1000 |0027: return-wide v0 │ │ +019aa8: |[019aa8] org.jsl.wfwt.HandshakeServerSession$TimerHandler.run:()J │ │ +019ab8: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +019abc: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +019ac2: 5421 2702 |0005: iget-object v1, v2, Lorg/jsl/wfwt/HandshakeServerSession$TimerHandler;.this$0:Lorg/jsl/wfwt/HandshakeServerSession; // field@0227 │ │ +019ac6: 7110 bd04 0100 |0007: invoke-static {v1}, Lorg/jsl/wfwt/HandshakeServerSession;.access$000:(Lorg/jsl/wfwt/HandshakeServerSession;)Ljava/lang/String; // method@04bd │ │ +019acc: 0c01 |000a: move-result-object v1 │ │ +019ace: 6e20 cb00 1000 |000b: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019ad4: 1a01 9306 |000e: const-string v1, "session timeout, close connection." // string@0693 │ │ +019ad8: 6e20 cb00 1000 |0010: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019ade: 6e10 ce00 0000 |0013: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +019ae4: 0c00 |0016: move-result-object v0 │ │ +019ae6: 1a01 ee00 |0017: const-string v1, "HandshakeServerSession" // string@00ee │ │ +019aea: 7120 6400 0100 |0019: invoke-static {v1, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +019af0: 5420 2702 |001c: iget-object v0, v2, Lorg/jsl/wfwt/HandshakeServerSession$TimerHandler;.this$0:Lorg/jsl/wfwt/HandshakeServerSession; // field@0227 │ │ +019af4: 7110 be04 0000 |001e: invoke-static {v0}, Lorg/jsl/wfwt/HandshakeServerSession;.access$100:(Lorg/jsl/wfwt/HandshakeServerSession;)Lorg/jsl/collider/Session; // method@04be │ │ +019afa: 0c00 |0021: move-result-object v0 │ │ +019afc: 7210 4d03 0000 |0022: invoke-interface {v0}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ +019b02: 1600 0000 |0025: const-wide/16 v0, #int 0 // #0 │ │ +019b06: 1000 |0027: return-wide v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=46 │ │ 0x001c line=47 │ │ locals : │ │ 0x0000 - 0x0028 reg=2 this Lorg/jsl/wfwt/HandshakeServerSession$TimerHandler; │ │ │ │ @@ -37592,46 +37592,46 @@ │ │ type : '(Ljava/lang/String;Ljava/lang/String;Lorg/jsl/wfwt/Channel;Lorg/jsl/collider/Session;Lorg/jsl/wfwt/SessionManager;Lorg/jsl/collider/TimerQueue;I)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 8 │ │ ins : 8 │ │ outs : 5 │ │ insns size : 66 16-bit code units │ │ -019bc8: |[019bc8] org.jsl.wfwt.HandshakeServerSession.:(Ljava/lang/String;Ljava/lang/String;Lorg/jsl/wfwt/Channel;Lorg/jsl/collider/Session;Lorg/jsl/wfwt/SessionManager;Lorg/jsl/collider/TimerQueue;I)V │ │ -019bd8: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -019bde: 5b01 2902 |0003: iput-object v1, v0, Lorg/jsl/wfwt/HandshakeServerSession;.m_audioFormat:Ljava/lang/String; // field@0229 │ │ -019be2: 5b02 2e02 |0005: iput-object v2, v0, Lorg/jsl/wfwt/HandshakeServerSession;.m_stationName:Ljava/lang/String; // field@022e │ │ -019be6: 5b03 2a02 |0007: iput-object v3, v0, Lorg/jsl/wfwt/HandshakeServerSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@022a │ │ -019bea: 5b04 2c02 |0009: iput-object v4, v0, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ -019bee: 7100 9e04 0000 |000b: invoke-static {}, Lorg/jsl/wfwt/ChannelSession;.createStreamDefragger:()Lorg/jsl/collider/StreamDefragger; // method@049e │ │ -019bf4: 0c01 |000e: move-result-object v1 │ │ -019bf6: 5b01 2f02 |000f: iput-object v1, v0, Lorg/jsl/wfwt/HandshakeServerSession;.m_streamDefragger:Lorg/jsl/collider/StreamDefragger; // field@022f │ │ -019bfa: 5b05 2d02 |0011: iput-object v5, v0, Lorg/jsl/wfwt/HandshakeServerSession;.m_sessionManager:Lorg/jsl/wfwt/SessionManager; // field@022d │ │ -019bfe: 5b06 3102 |0013: iput-object v6, v0, Lorg/jsl/wfwt/HandshakeServerSession;.m_timerQueue:Lorg/jsl/collider/TimerQueue; // field@0231 │ │ -019c02: 5907 2b02 |0015: iput v7, v0, Lorg/jsl/wfwt/HandshakeServerSession;.m_pingInterval:I // field@022b │ │ -019c06: 3d07 1000 |0017: if-lez v7, 0027 // +0010 │ │ -019c0a: 2201 2601 |0019: new-instance v1, Lorg/jsl/wfwt/HandshakeServerSession$TimerHandler; // type@0126 │ │ -019c0e: 1202 |001b: const/4 v2, #int 0 // #0 │ │ -019c10: 7030 ba04 0102 |001c: invoke-direct {v1, v0, v2}, Lorg/jsl/wfwt/HandshakeServerSession$TimerHandler;.:(Lorg/jsl/wfwt/HandshakeServerSession;Lorg/jsl/wfwt/HandshakeServerSession$1;)V // method@04ba │ │ -019c16: 5b01 3002 |001f: iput-object v1, v0, Lorg/jsl/wfwt/HandshakeServerSession;.m_timerHandler:Lorg/jsl/wfwt/HandshakeServerSession$TimerHandler; // field@0230 │ │ -019c1a: 8172 |0021: int-to-long v2, v7 │ │ -019c1c: 6204 0800 |0022: sget-object v4, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@0008 │ │ -019c20: 6e54 2204 1632 |0024: invoke-virtual {v6, v1, v2, v3, v4}, Lorg/jsl/collider/TimerQueue;.schedule:(Lorg/jsl/collider/TimerQueue$Task;JLjava/util/concurrent/TimeUnit;)I // method@0422 │ │ -019c26: 2201 6700 |0027: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ -019c2a: 7010 c500 0100 |0029: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -019c30: 7010 bf04 0000 |002c: invoke-direct {v0}, Lorg/jsl/wfwt/HandshakeServerSession;.getLogPrefix:()Ljava/lang/String; // method@04bf │ │ -019c36: 0c02 |002f: move-result-object v2 │ │ -019c38: 6e20 cb00 2100 |0030: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019c3e: 1a02 2604 |0033: const-string v2, "connection accepted" // string@0426 │ │ -019c42: 6e20 cb00 2100 |0035: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019c48: 6e10 ce00 0100 |0038: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -019c4e: 0c01 |003b: move-result-object v1 │ │ -019c50: 1a02 ee00 |003c: const-string v2, "HandshakeServerSession" // string@00ee │ │ -019c54: 7120 6400 1200 |003e: invoke-static {v2, v1}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -019c5a: 0e00 |0041: return-void │ │ +019bcc: |[019bcc] org.jsl.wfwt.HandshakeServerSession.:(Ljava/lang/String;Ljava/lang/String;Lorg/jsl/wfwt/Channel;Lorg/jsl/collider/Session;Lorg/jsl/wfwt/SessionManager;Lorg/jsl/collider/TimerQueue;I)V │ │ +019bdc: 7010 b300 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +019be2: 5b01 2902 |0003: iput-object v1, v0, Lorg/jsl/wfwt/HandshakeServerSession;.m_audioFormat:Ljava/lang/String; // field@0229 │ │ +019be6: 5b02 2e02 |0005: iput-object v2, v0, Lorg/jsl/wfwt/HandshakeServerSession;.m_stationName:Ljava/lang/String; // field@022e │ │ +019bea: 5b03 2a02 |0007: iput-object v3, v0, Lorg/jsl/wfwt/HandshakeServerSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@022a │ │ +019bee: 5b04 2c02 |0009: iput-object v4, v0, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ +019bf2: 7100 9e04 0000 |000b: invoke-static {}, Lorg/jsl/wfwt/ChannelSession;.createStreamDefragger:()Lorg/jsl/collider/StreamDefragger; // method@049e │ │ +019bf8: 0c01 |000e: move-result-object v1 │ │ +019bfa: 5b01 2f02 |000f: iput-object v1, v0, Lorg/jsl/wfwt/HandshakeServerSession;.m_streamDefragger:Lorg/jsl/collider/StreamDefragger; // field@022f │ │ +019bfe: 5b05 2d02 |0011: iput-object v5, v0, Lorg/jsl/wfwt/HandshakeServerSession;.m_sessionManager:Lorg/jsl/wfwt/SessionManager; // field@022d │ │ +019c02: 5b06 3102 |0013: iput-object v6, v0, Lorg/jsl/wfwt/HandshakeServerSession;.m_timerQueue:Lorg/jsl/collider/TimerQueue; // field@0231 │ │ +019c06: 5907 2b02 |0015: iput v7, v0, Lorg/jsl/wfwt/HandshakeServerSession;.m_pingInterval:I // field@022b │ │ +019c0a: 3d07 1000 |0017: if-lez v7, 0027 // +0010 │ │ +019c0e: 2201 2601 |0019: new-instance v1, Lorg/jsl/wfwt/HandshakeServerSession$TimerHandler; // type@0126 │ │ +019c12: 1202 |001b: const/4 v2, #int 0 // #0 │ │ +019c14: 7030 ba04 0102 |001c: invoke-direct {v1, v0, v2}, Lorg/jsl/wfwt/HandshakeServerSession$TimerHandler;.:(Lorg/jsl/wfwt/HandshakeServerSession;Lorg/jsl/wfwt/HandshakeServerSession$1;)V // method@04ba │ │ +019c1a: 5b01 3002 |001f: iput-object v1, v0, Lorg/jsl/wfwt/HandshakeServerSession;.m_timerHandler:Lorg/jsl/wfwt/HandshakeServerSession$TimerHandler; // field@0230 │ │ +019c1e: 8172 |0021: int-to-long v2, v7 │ │ +019c20: 6204 0800 |0022: sget-object v4, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@0008 │ │ +019c24: 6e54 2204 1632 |0024: invoke-virtual {v6, v1, v2, v3, v4}, Lorg/jsl/collider/TimerQueue;.schedule:(Lorg/jsl/collider/TimerQueue$Task;JLjava/util/concurrent/TimeUnit;)I // method@0422 │ │ +019c2a: 2201 6700 |0027: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ +019c2e: 7010 c500 0100 |0029: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +019c34: 7010 bf04 0000 |002c: invoke-direct {v0}, Lorg/jsl/wfwt/HandshakeServerSession;.getLogPrefix:()Ljava/lang/String; // method@04bf │ │ +019c3a: 0c02 |002f: move-result-object v2 │ │ +019c3c: 6e20 cb00 2100 |0030: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019c42: 1a02 2604 |0033: const-string v2, "connection accepted" // string@0426 │ │ +019c46: 6e20 cb00 2100 |0035: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019c4c: 6e10 ce00 0100 |0038: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +019c52: 0c01 |003b: move-result-object v1 │ │ +019c54: 1a02 ee00 |003c: const-string v2, "HandshakeServerSession" // string@00ee │ │ +019c58: 7120 6400 1200 |003e: invoke-static {v2, v1}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +019c5e: 0e00 |0041: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=65 │ │ 0x0003 line=66 │ │ 0x0005 line=67 │ │ 0x0007 line=68 │ │ 0x0009 line=69 │ │ @@ -37657,18 +37657,18 @@ │ │ type : '(Lorg/jsl/wfwt/HandshakeServerSession;)Ljava/lang/String;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 5 16-bit code units │ │ -019b38: |[019b38] org.jsl.wfwt.HandshakeServerSession.access$000:(Lorg/jsl/wfwt/HandshakeServerSession;)Ljava/lang/String; │ │ -019b48: 7010 bf04 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/HandshakeServerSession;.getLogPrefix:()Ljava/lang/String; // method@04bf │ │ -019b4e: 0c00 |0003: move-result-object v0 │ │ -019b50: 1100 |0004: return-object v0 │ │ +019b3c: |[019b3c] org.jsl.wfwt.HandshakeServerSession.access$000:(Lorg/jsl/wfwt/HandshakeServerSession;)Ljava/lang/String; │ │ +019b4c: 7010 bf04 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/HandshakeServerSession;.getLogPrefix:()Ljava/lang/String; // method@04bf │ │ +019b52: 0c00 |0003: move-result-object v0 │ │ +019b54: 1100 |0004: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=28 │ │ locals : │ │ 0x0000 - 0x0005 reg=0 (null) Lorg/jsl/wfwt/HandshakeServerSession; │ │ │ │ #2 : (in Lorg/jsl/wfwt/HandshakeServerSession;) │ │ @@ -37676,17 +37676,17 @@ │ │ type : '(Lorg/jsl/wfwt/HandshakeServerSession;)Lorg/jsl/collider/Session;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -019bb0: |[019bb0] org.jsl.wfwt.HandshakeServerSession.access$100:(Lorg/jsl/wfwt/HandshakeServerSession;)Lorg/jsl/collider/Session; │ │ -019bc0: 5400 2c02 |0000: iget-object v0, v0, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ -019bc4: 1100 |0002: return-object v0 │ │ +019bb4: |[019bb4] org.jsl.wfwt.HandshakeServerSession.access$100:(Lorg/jsl/wfwt/HandshakeServerSession;)Lorg/jsl/collider/Session; │ │ +019bc4: 5400 2c02 |0000: iget-object v0, v0, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ +019bc8: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=28 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/HandshakeServerSession; │ │ │ │ #3 : (in Lorg/jsl/wfwt/HandshakeServerSession;) │ │ @@ -37694,32 +37694,32 @@ │ │ type : '()Ljava/lang/String;' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 38 16-bit code units │ │ -019b54: |[019b54] org.jsl.wfwt.HandshakeServerSession.getLogPrefix:()Ljava/lang/String; │ │ -019b64: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -019b68: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -019b6e: 5421 2a02 |0005: iget-object v1, v2, Lorg/jsl/wfwt/HandshakeServerSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@022a │ │ -019b72: 6e10 8904 0100 |0007: invoke-virtual {v1}, Lorg/jsl/wfwt/Channel;.getName:()Ljava/lang/String; // method@0489 │ │ -019b78: 0c01 |000a: move-result-object v1 │ │ -019b7a: 6e20 cb00 1000 |000b: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019b80: 1a01 0100 |000e: const-string v1, " " // string@0001 │ │ -019b84: 6e20 cb00 1000 |0010: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019b8a: 5421 2c02 |0013: iget-object v1, v2, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ -019b8e: 7210 5003 0100 |0015: invoke-interface {v1}, Lorg/jsl/collider/Session;.getRemoteAddress:()Ljava/net/SocketAddress; // method@0350 │ │ -019b94: 0c01 |0018: move-result-object v1 │ │ -019b96: 6e20 ca00 1000 |0019: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ -019b9c: 1a01 5100 |001c: const-string v1, ": " // string@0051 │ │ -019ba0: 6e20 cb00 1000 |001e: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019ba6: 6e10 ce00 0000 |0021: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -019bac: 0c00 |0024: move-result-object v0 │ │ -019bae: 1100 |0025: return-object v0 │ │ +019b58: |[019b58] org.jsl.wfwt.HandshakeServerSession.getLogPrefix:()Ljava/lang/String; │ │ +019b68: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +019b6c: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +019b72: 5421 2a02 |0005: iget-object v1, v2, Lorg/jsl/wfwt/HandshakeServerSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@022a │ │ +019b76: 6e10 8904 0100 |0007: invoke-virtual {v1}, Lorg/jsl/wfwt/Channel;.getName:()Ljava/lang/String; // method@0489 │ │ +019b7c: 0c01 |000a: move-result-object v1 │ │ +019b7e: 6e20 cb00 1000 |000b: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019b84: 1a01 0100 |000e: const-string v1, " " // string@0001 │ │ +019b88: 6e20 cb00 1000 |0010: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019b8e: 5421 2c02 |0013: iget-object v1, v2, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ +019b92: 7210 5003 0100 |0015: invoke-interface {v1}, Lorg/jsl/collider/Session;.getRemoteAddress:()Ljava/net/SocketAddress; // method@0350 │ │ +019b98: 0c01 |0018: move-result-object v1 │ │ +019b9a: 6e20 ca00 1000 |0019: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ +019ba0: 1a01 5100 |001c: const-string v1, ": " // string@0051 │ │ +019ba4: 6e20 cb00 1000 |001e: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019baa: 6e10 ce00 0000 |0021: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +019bb0: 0c00 |0024: move-result-object v0 │ │ +019bb2: 1100 |0025: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=54 │ │ locals : │ │ 0x0000 - 0x0026 reg=2 this Lorg/jsl/wfwt/HandshakeServerSession; │ │ │ │ Virtual methods - │ │ @@ -37728,45 +37728,45 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 1 │ │ outs : 3 │ │ insns size : 62 16-bit code units │ │ -019c5c: |[019c5c] org.jsl.wfwt.HandshakeServerSession.onConnectionClosed:()V │ │ -019c6c: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -019c70: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -019c76: 7010 bf04 0300 |0005: invoke-direct {v3}, Lorg/jsl/wfwt/HandshakeServerSession;.getLogPrefix:()Ljava/lang/String; // method@04bf │ │ -019c7c: 0c01 |0008: move-result-object v1 │ │ -019c7e: 6e20 cb00 1000 |0009: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019c84: 1a01 2704 |000c: const-string v1, "connection closed" // string@0427 │ │ -019c88: 6e20 cb00 1000 |000e: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019c8e: 6e10 ce00 0000 |0011: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -019c94: 0c00 |0014: move-result-object v0 │ │ -019c96: 1a01 ee00 |0015: const-string v1, "HandshakeServerSession" // string@00ee │ │ -019c9a: 7120 6400 0100 |0017: invoke-static {v1, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -019ca0: 5430 3002 |001a: iget-object v0, v3, Lorg/jsl/wfwt/HandshakeServerSession;.m_timerHandler:Lorg/jsl/wfwt/HandshakeServerSession$TimerHandler; // field@0230 │ │ -019ca4: 3800 1200 |001c: if-eqz v0, 002e // +0012 │ │ -019ca8: 5432 3102 |001e: iget-object v2, v3, Lorg/jsl/wfwt/HandshakeServerSession;.m_timerQueue:Lorg/jsl/collider/TimerQueue; // field@0231 │ │ -019cac: 6e20 1d04 0200 |0020: invoke-virtual {v2, v0}, Lorg/jsl/collider/TimerQueue;.cancel:(Lorg/jsl/collider/TimerQueue$Task;)I // method@041d │ │ -019cb2: 280b |0023: goto 002e // +000b │ │ -019cb4: 0d00 |0024: move-exception v0 │ │ -019cb6: 6e10 ac00 0000 |0025: invoke-virtual {v0}, Ljava/lang/InterruptedException;.toString:()Ljava/lang/String; // method@00ac │ │ -019cbc: 0c02 |0028: move-result-object v2 │ │ -019cbe: 7130 6500 2100 |0029: invoke-static {v1, v2, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I // method@0065 │ │ -019cc4: 1210 |002c: const/4 v0, #int 1 // #1 │ │ -019cc6: 2802 |002d: goto 002f // +0002 │ │ -019cc8: 1200 |002e: const/4 v0, #int 0 // #0 │ │ -019cca: 5431 2f02 |002f: iget-object v1, v3, Lorg/jsl/wfwt/HandshakeServerSession;.m_streamDefragger:Lorg/jsl/collider/StreamDefragger; // field@022f │ │ -019cce: 6e10 f503 0100 |0031: invoke-virtual {v1}, Lorg/jsl/collider/StreamDefragger;.close:()V // method@03f5 │ │ -019cd4: 3800 0900 |0034: if-eqz v0, 003d // +0009 │ │ -019cd8: 7100 d600 0000 |0036: invoke-static {}, Ljava/lang/Thread;.currentThread:()Ljava/lang/Thread; // method@00d6 │ │ -019cde: 0c00 |0039: move-result-object v0 │ │ -019ce0: 6e10 d900 0000 |003a: invoke-virtual {v0}, Ljava/lang/Thread;.interrupt:()V // method@00d9 │ │ -019ce6: 0e00 |003d: return-void │ │ +019c60: |[019c60] org.jsl.wfwt.HandshakeServerSession.onConnectionClosed:()V │ │ +019c70: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +019c74: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +019c7a: 7010 bf04 0300 |0005: invoke-direct {v3}, Lorg/jsl/wfwt/HandshakeServerSession;.getLogPrefix:()Ljava/lang/String; // method@04bf │ │ +019c80: 0c01 |0008: move-result-object v1 │ │ +019c82: 6e20 cb00 1000 |0009: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019c88: 1a01 2704 |000c: const-string v1, "connection closed" // string@0427 │ │ +019c8c: 6e20 cb00 1000 |000e: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019c92: 6e10 ce00 0000 |0011: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +019c98: 0c00 |0014: move-result-object v0 │ │ +019c9a: 1a01 ee00 |0015: const-string v1, "HandshakeServerSession" // string@00ee │ │ +019c9e: 7120 6400 0100 |0017: invoke-static {v1, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +019ca4: 5430 3002 |001a: iget-object v0, v3, Lorg/jsl/wfwt/HandshakeServerSession;.m_timerHandler:Lorg/jsl/wfwt/HandshakeServerSession$TimerHandler; // field@0230 │ │ +019ca8: 3800 1200 |001c: if-eqz v0, 002e // +0012 │ │ +019cac: 5432 3102 |001e: iget-object v2, v3, Lorg/jsl/wfwt/HandshakeServerSession;.m_timerQueue:Lorg/jsl/collider/TimerQueue; // field@0231 │ │ +019cb0: 6e20 1d04 0200 |0020: invoke-virtual {v2, v0}, Lorg/jsl/collider/TimerQueue;.cancel:(Lorg/jsl/collider/TimerQueue$Task;)I // method@041d │ │ +019cb6: 280b |0023: goto 002e // +000b │ │ +019cb8: 0d00 |0024: move-exception v0 │ │ +019cba: 6e10 ac00 0000 |0025: invoke-virtual {v0}, Ljava/lang/InterruptedException;.toString:()Ljava/lang/String; // method@00ac │ │ +019cc0: 0c02 |0028: move-result-object v2 │ │ +019cc2: 7130 6500 2100 |0029: invoke-static {v1, v2, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I // method@0065 │ │ +019cc8: 1210 |002c: const/4 v0, #int 1 // #1 │ │ +019cca: 2802 |002d: goto 002f // +0002 │ │ +019ccc: 1200 |002e: const/4 v0, #int 0 // #0 │ │ +019cce: 5431 2f02 |002f: iget-object v1, v3, Lorg/jsl/wfwt/HandshakeServerSession;.m_streamDefragger:Lorg/jsl/collider/StreamDefragger; // field@022f │ │ +019cd2: 6e10 f503 0100 |0031: invoke-virtual {v1}, Lorg/jsl/collider/StreamDefragger;.close:()V // method@03f5 │ │ +019cd8: 3800 0900 |0034: if-eqz v0, 003d // +0009 │ │ +019cdc: 7100 d600 0000 |0036: invoke-static {}, Ljava/lang/Thread;.currentThread:()Ljava/lang/Thread; // method@00d6 │ │ +019ce2: 0c00 |0039: move-result-object v0 │ │ +019ce4: 6e10 d900 0000 |003a: invoke-virtual {v0}, Ljava/lang/Thread;.interrupt:()V // method@00d9 │ │ +019cea: 0e00 |003d: return-void │ │ catches : 1 │ │ 0x001e - 0x0023 │ │ Ljava/lang/InterruptedException; -> 0x0024 │ │ positions : │ │ 0x0000 line=194 │ │ 0x001a line=196 │ │ 0x001e line=200 │ │ @@ -37781,199 +37781,199 @@ │ │ type : '(Lorg/jsl/collider/RetainableByteBuffer;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 20 │ │ ins : 2 │ │ outs : 9 │ │ insns size : 400 16-bit code units │ │ -019cf4: |[019cf4] org.jsl.wfwt.HandshakeServerSession.onDataReceived:(Lorg/jsl/collider/RetainableByteBuffer;)V │ │ -019d04: 0801 1200 |0000: move-object/from16 v1, v18 │ │ -019d08: 5410 2f02 |0002: iget-object v0, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_streamDefragger:Lorg/jsl/collider/StreamDefragger; // field@022f │ │ -019d0c: 0802 1300 |0004: move-object/from16 v2, v19 │ │ -019d10: 6e20 f803 2000 |0006: invoke-virtual {v0, v2}, Lorg/jsl/collider/StreamDefragger;.getNext:(Lorg/jsl/collider/RetainableByteBuffer;)Lorg/jsl/collider/RetainableByteBuffer; // method@03f8 │ │ -019d16: 0c02 |0009: move-result-object v2 │ │ -019d18: 1a03 ee00 |000a: const-string v3, "HandshakeServerSession" // string@00ee │ │ -019d1c: 3902 1c00 |000c: if-nez v2, 0028 // +001c │ │ -019d20: 2200 6700 |000e: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -019d24: 7010 c500 0000 |0010: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -019d2a: 7601 bf04 1200 |0013: invoke-direct/range {v18}, Lorg/jsl/wfwt/HandshakeServerSession;.getLogPrefix:()Ljava/lang/String; // method@04bf │ │ -019d30: 0c02 |0016: move-result-object v2 │ │ -019d32: 6e20 cb00 2000 |0017: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019d38: 1a02 6b04 |001a: const-string v2, "fragmented HandshakeRequest." // string@046b │ │ -019d3c: 6e20 cb00 2000 |001c: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019d42: 6e10 ce00 0000 |001f: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -019d48: 0c00 |0022: move-result-object v0 │ │ -019d4a: 7120 6400 0300 |0023: invoke-static {v3, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -019d50: 2900 6901 |0026: goto/16 018f // +0169 │ │ -019d54: 6200 7d01 |0028: sget-object v0, Lorg/jsl/collider/StreamDefragger;.INVALID_HEADER:Lorg/jsl/collider/RetainableByteBuffer; // field@017d │ │ -019d58: 3302 2100 |002a: if-ne v2, v0, 004b // +0021 │ │ -019d5c: 2200 6700 |002c: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -019d60: 7010 c500 0000 |002e: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -019d66: 7601 bf04 1200 |0031: invoke-direct/range {v18}, Lorg/jsl/wfwt/HandshakeServerSession;.getLogPrefix:()Ljava/lang/String; // method@04bf │ │ -019d6c: 0c02 |0034: move-result-object v2 │ │ -019d6e: 6e20 cb00 2000 |0035: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019d74: 1a02 ef04 |0038: const-string v2, "invalid received, close connection." // string@04ef │ │ -019d78: 6e20 cb00 2000 |003a: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019d7e: 6e10 ce00 0000 |003d: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -019d84: 0c00 |0040: move-result-object v0 │ │ -019d86: 7120 6400 0300 |0041: invoke-static {v3, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -019d8c: 5410 2c02 |0044: iget-object v0, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ -019d90: 7210 4d03 0000 |0046: invoke-interface {v0}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ -019d96: 2900 4601 |0049: goto/16 018f // +0146 │ │ -019d9a: 5410 3002 |004b: iget-object v0, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_timerHandler:Lorg/jsl/wfwt/HandshakeServerSession$TimerHandler; // field@0230 │ │ -019d9e: 1214 |004d: const/4 v4, #int 1 // #1 │ │ -019da0: 3800 1500 |004e: if-eqz v0, 0063 // +0015 │ │ -019da4: 5415 3102 |0050: iget-object v5, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_timerQueue:Lorg/jsl/collider/TimerQueue; // field@0231 │ │ -019da8: 6e20 1d04 0500 |0052: invoke-virtual {v5, v0}, Lorg/jsl/collider/TimerQueue;.cancel:(Lorg/jsl/collider/TimerQueue$Task;)I // method@041d │ │ -019dae: 0a00 |0055: move-result v0 │ │ -019db0: 3800 0d00 |0056: if-eqz v0, 0063 // +000d │ │ -019db4: 0e00 |0058: return-void │ │ -019db6: 0d00 |0059: move-exception v0 │ │ -019db8: 6e10 ac00 0000 |005a: invoke-virtual {v0}, Ljava/lang/InterruptedException;.toString:()Ljava/lang/String; // method@00ac │ │ -019dbe: 0c05 |005d: move-result-object v5 │ │ -019dc0: 7130 6700 5300 |005e: invoke-static {v3, v5, v0}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I // method@0067 │ │ -019dc6: 1215 |0061: const/4 v5, #int 1 // #1 │ │ -019dc8: 2803 |0062: goto 0065 // +0003 │ │ -019dca: 1200 |0063: const/4 v0, #int 0 // #0 │ │ -019dcc: 1205 |0064: const/4 v5, #int 0 // #0 │ │ -019dce: 7110 2605 0200 |0065: invoke-static {v2}, Lorg/jsl/wfwt/Protocol$Message;.getMessageId:(Lorg/jsl/collider/RetainableByteBuffer;)S // method@0526 │ │ -019dd4: 0a00 |0068: move-result v0 │ │ -019dd6: 3340 f800 |0069: if-ne v0, v4, 0161 // +00f8 │ │ -019dda: 7110 2005 0200 |006b: invoke-static {v2}, Lorg/jsl/wfwt/Protocol$HandshakeRequest;.getProtocolVersion:(Lorg/jsl/collider/RetainableByteBuffer;)S // method@0520 │ │ -019de0: 0a00 |006e: move-result v0 │ │ -019de2: 1234 |006f: const/4 v4, #int 3 // #3 │ │ -019de4: 3340 ab00 |0070: if-ne v0, v4, 011b // +00ab │ │ -019de8: 7110 1f05 0200 |0072: invoke-static {v2}, Lorg/jsl/wfwt/Protocol$HandshakeRequest;.getAudioFormat:(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String; // method@051f │ │ -019dee: 0c00 |0075: move-result-object v0 │ │ -019df0: 7110 2105 0200 |0076: invoke-static {v2}, Lorg/jsl/wfwt/Protocol$HandshakeRequest;.getStationName:(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String; // method@0521 │ │ -019df6: 0c02 |0079: move-result-object v2 │ │ -019df8: 7601 bf04 1200 |007a: invoke-direct/range {v18}, Lorg/jsl/wfwt/HandshakeServerSession;.getLogPrefix:()Ljava/lang/String; // method@04bf │ │ -019dfe: 0c04 |007d: move-result-object v4 │ │ -019e00: 5416 2a02 |007e: iget-object v6, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@022a │ │ -019e04: 5417 2c02 |0080: iget-object v7, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ -019e08: 1208 |0082: const/4 v8, #int 0 // #0 │ │ -019e0a: 7157 3f04 0486 |0083: invoke-static {v4, v0, v6, v8, v7}, Lorg/jsl/wfwt/AudioPlayer;.create:(Ljava/lang/String;Ljava/lang/String;Lorg/jsl/wfwt/Channel;Ljava/lang/String;Lorg/jsl/collider/Session;)Lorg/jsl/wfwt/AudioPlayer; // method@043f │ │ -019e10: 0c0f |0086: move-result-object v15 │ │ -019e12: 390f 2900 |0087: if-nez v15, 00b0 // +0029 │ │ -019e16: 2202 6700 |0089: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ -019e1a: 7010 c500 0200 |008b: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -019e20: 7601 bf04 1200 |008e: invoke-direct/range {v18}, Lorg/jsl/wfwt/HandshakeServerSession;.getLogPrefix:()Ljava/lang/String; // method@04bf │ │ -019e26: 0c04 |0091: move-result-object v4 │ │ -019e28: 6e20 cb00 4200 |0092: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019e2e: 1a04 0c07 |0095: const-string v4, "unsupported audio format '" // string@070c │ │ -019e32: 6e20 cb00 4200 |0097: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019e38: 6e20 cb00 0200 |009a: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019e3e: 1a00 3200 |009d: const-string v0, "', closing connection." // string@0032 │ │ -019e42: 6e20 cb00 0200 |009f: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019e48: 6e10 ce00 0200 |00a2: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -019e4e: 0c00 |00a5: move-result-object v0 │ │ -019e50: 7120 6400 0300 |00a6: invoke-static {v3, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -019e56: 5410 2c02 |00a9: iget-object v0, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ -019e5a: 7210 4d03 0000 |00ab: invoke-interface {v0}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ -019e60: 2900 d800 |00ae: goto/16 0186 // +00d8 │ │ -019e64: 2200 6700 |00b0: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -019e68: 7010 c500 0000 |00b2: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -019e6e: 7601 bf04 1200 |00b5: invoke-direct/range {v18}, Lorg/jsl/wfwt/HandshakeServerSession;.getLogPrefix:()Ljava/lang/String; // method@04bf │ │ -019e74: 0c04 |00b8: move-result-object v4 │ │ -019e76: 6e20 cb00 4000 |00b9: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019e7c: 1a04 de04 |00bc: const-string v4, "handshake ok" // string@04de │ │ -019e80: 6e20 cb00 4000 |00be: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019e86: 6e10 ce00 0000 |00c1: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -019e8c: 0c00 |00c4: move-result-object v0 │ │ -019e8e: 7120 6400 0300 |00c5: invoke-static {v3, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -019e94: 5410 2902 |00c8: iget-object v0, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_audioFormat:Ljava/lang/String; // field@0229 │ │ -019e98: 5414 2e02 |00ca: iget-object v4, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_stationName:Ljava/lang/String; // field@022e │ │ -019e9c: 7120 1805 4000 |00cc: invoke-static {v0, v4}, Lorg/jsl/wfwt/Protocol$HandshakeReplyOk;.create:(Ljava/lang/String;Ljava/lang/String;)Ljava/nio/ByteBuffer; // method@0518 │ │ -019ea2: 0c00 |00cf: move-result-object v0 │ │ -019ea4: 5414 2c02 |00d0: iget-object v4, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ -019ea8: 7220 5203 0400 |00d2: invoke-interface {v4, v0}, Lorg/jsl/collider/Session;.sendData:(Ljava/nio/ByteBuffer;)I // method@0352 │ │ -019eae: 2200 2001 |00d5: new-instance v0, Lorg/jsl/wfwt/ChannelSession; // type@0120 │ │ -019eb2: 541a 2a02 |00d7: iget-object v10, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@022a │ │ -019eb6: 120b |00d9: const/4 v11, #int 0 // #0 │ │ -019eb8: 541c 2c02 |00da: iget-object v12, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ -019ebc: 541d 2f02 |00dc: iget-object v13, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_streamDefragger:Lorg/jsl/collider/StreamDefragger; // field@022f │ │ -019ec0: 541e 2d02 |00de: iget-object v14, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_sessionManager:Lorg/jsl/wfwt/SessionManager; // field@022d │ │ -019ec4: 5414 3102 |00e0: iget-object v4, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_timerQueue:Lorg/jsl/collider/TimerQueue; // field@0231 │ │ -019ec8: 5216 2b02 |00e2: iget v6, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_pingInterval:I // field@022b │ │ -019ecc: 0709 |00e4: move-object v9, v0 │ │ -019ece: 0810 0400 |00e5: move-object/from16 v16, v4 │ │ -019ed2: 0211 0600 |00e7: move/from16 v17, v6 │ │ -019ed6: 7609 9c04 0900 |00e9: invoke-direct/range {v9, v10, v11, v12, v13, v14, v15, v16, v17}, Lorg/jsl/wfwt/ChannelSession;.:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;Lorg/jsl/collider/Session;Lorg/jsl/collider/StreamDefragger;Lorg/jsl/wfwt/SessionManager;Lorg/jsl/wfwt/AudioPlayer;Lorg/jsl/collider/TimerQueue;I)V // method@049c │ │ -019edc: 5414 2a02 |00ec: iget-object v4, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@022a │ │ -019ee0: 5416 2c02 |00ee: iget-object v6, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ -019ee4: 6e40 8804 6420 |00f0: invoke-virtual {v4, v6, v0, v2}, Lorg/jsl/wfwt/Channel;.addSession:(Lorg/jsl/collider/Session;Lorg/jsl/wfwt/ChannelSession;Ljava/lang/String;)V // method@0488 │ │ -019eea: 5412 2c02 |00f3: iget-object v2, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ -019eee: 7220 5103 0200 |00f5: invoke-interface {v2, v0}, Lorg/jsl/collider/Session;.replaceListener:(Lorg/jsl/collider/Session$Listener;)Lorg/jsl/collider/Session$Listener; // method@0351 │ │ -019ef4: 2900 8e00 |00f8: goto/16 0186 // +008e │ │ -019ef8: 0d00 |00fa: move-exception v0 │ │ -019efa: 2202 6700 |00fb: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ -019efe: 7010 c500 0200 |00fd: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -019f04: 7601 bf04 1200 |0100: invoke-direct/range {v18}, Lorg/jsl/wfwt/HandshakeServerSession;.getLogPrefix:()Ljava/lang/String; // method@04bf │ │ -019f0a: 0c04 |0103: move-result-object v4 │ │ -019f0c: 6e20 cb00 4200 |0104: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019f12: 6e10 5301 0000 |0107: invoke-virtual {v0}, Ljava/nio/charset/CharacterCodingException;.toString:()Ljava/lang/String; // method@0153 │ │ -019f18: 0c04 |010a: move-result-object v4 │ │ -019f1a: 6e20 cb00 4200 |010b: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019f20: 6e10 ce00 0200 |010e: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -019f26: 0c02 |0111: move-result-object v2 │ │ -019f28: 7130 6300 2300 |0112: invoke-static {v3, v2, v0}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I // method@0063 │ │ -019f2e: 5410 2c02 |0115: iget-object v0, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ -019f32: 7210 4d03 0000 |0117: invoke-interface {v0}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ -019f38: 286c |011a: goto 0186 // +006c │ │ -019f3a: 2202 6700 |011b: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ -019f3e: 7010 c500 0200 |011d: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -019f44: 7601 bf04 1200 |0120: invoke-direct/range {v18}, Lorg/jsl/wfwt/HandshakeServerSession;.getLogPrefix:()Ljava/lang/String; // method@04bf │ │ -019f4a: 0c04 |0123: move-result-object v4 │ │ -019f4c: 6e20 cb00 4200 |0124: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019f52: 1a04 3106 |0127: const-string v4, "protocol version mismatch: 3-" // string@0631 │ │ -019f56: 6e20 cb00 4200 |0129: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019f5c: 6e20 c800 0200 |012c: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ -019f62: 1a04 3f00 |012f: const-string v4, ", close connection." // string@003f │ │ -019f66: 6e20 cb00 4200 |0131: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019f6c: 6e10 ce00 0200 |0134: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -019f72: 0c02 |0137: move-result-object v2 │ │ -019f74: 7120 6400 2300 |0138: invoke-static {v3, v2}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -019f7a: 2202 6700 |013b: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ -019f7e: 1a04 b502 |013d: const-string v4, "Protocol version mismatch: 3-" // string@02b5 │ │ -019f82: 7020 c600 4200 |013f: invoke-direct {v2, v4}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ -019f88: 6e20 c800 0200 |0142: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ -019f8e: 6e10 ce00 0200 |0145: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -019f94: 0c00 |0148: move-result-object v0 │ │ -019f96: 7110 1405 0000 |0149: invoke-static {v0}, Lorg/jsl/wfwt/Protocol$HandshakeReplyFail;.create:(Ljava/lang/String;)Ljava/nio/ByteBuffer; // method@0514 │ │ -019f9c: 0c00 |014c: move-result-object v0 │ │ -019f9e: 5412 2c02 |014d: iget-object v2, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ -019fa2: 7220 5203 0200 |014f: invoke-interface {v2, v0}, Lorg/jsl/collider/Session;.sendData:(Ljava/nio/ByteBuffer;)I // method@0352 │ │ -019fa8: 2809 |0152: goto 015b // +0009 │ │ -019faa: 0d00 |0153: move-exception v0 │ │ -019fac: 6e10 5301 0000 |0154: invoke-virtual {v0}, Ljava/nio/charset/CharacterCodingException;.toString:()Ljava/lang/String; // method@0153 │ │ -019fb2: 0c02 |0157: move-result-object v2 │ │ -019fb4: 7130 6500 2300 |0158: invoke-static {v3, v2, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I // method@0065 │ │ -019fba: 5410 2c02 |015b: iget-object v0, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ -019fbe: 7210 4d03 0000 |015d: invoke-interface {v0}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ -019fc4: 2826 |0160: goto 0186 // +0026 │ │ -019fc6: 2202 6700 |0161: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ -019fca: 7010 c500 0200 |0163: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -019fd0: 7601 bf04 1200 |0166: invoke-direct/range {v18}, Lorg/jsl/wfwt/HandshakeServerSession;.getLogPrefix:()Ljava/lang/String; // method@04bf │ │ -019fd6: 0c04 |0169: move-result-object v4 │ │ -019fd8: 6e20 cb00 4200 |016a: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019fde: 1a04 0707 |016d: const-string v4, "unexpected message " // string@0707 │ │ -019fe2: 6e20 cb00 4200 |016f: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019fe8: 6e20 c800 0200 |0172: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ -019fee: 1a00 2100 |0175: const-string v0, " received, closing connection." // string@0021 │ │ -019ff2: 6e20 cb00 0200 |0177: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -019ff8: 6e10 ce00 0200 |017a: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -019ffe: 0c00 |017d: move-result-object v0 │ │ -01a000: 7120 6400 0300 |017e: invoke-static {v3, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -01a006: 5410 2c02 |0181: iget-object v0, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ -01a00a: 7210 4d03 0000 |0183: invoke-interface {v0}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ -01a010: 3805 0900 |0186: if-eqz v5, 018f // +0009 │ │ -01a014: 7100 d600 0000 |0188: invoke-static {}, Ljava/lang/Thread;.currentThread:()Ljava/lang/Thread; // method@00d6 │ │ -01a01a: 0c00 |018b: move-result-object v0 │ │ -01a01c: 6e10 d900 0000 |018c: invoke-virtual {v0}, Ljava/lang/Thread;.interrupt:()V // method@00d9 │ │ -01a022: 0e00 |018f: return-void │ │ +019cf8: |[019cf8] org.jsl.wfwt.HandshakeServerSession.onDataReceived:(Lorg/jsl/collider/RetainableByteBuffer;)V │ │ +019d08: 0801 1200 |0000: move-object/from16 v1, v18 │ │ +019d0c: 5410 2f02 |0002: iget-object v0, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_streamDefragger:Lorg/jsl/collider/StreamDefragger; // field@022f │ │ +019d10: 0802 1300 |0004: move-object/from16 v2, v19 │ │ +019d14: 6e20 f803 2000 |0006: invoke-virtual {v0, v2}, Lorg/jsl/collider/StreamDefragger;.getNext:(Lorg/jsl/collider/RetainableByteBuffer;)Lorg/jsl/collider/RetainableByteBuffer; // method@03f8 │ │ +019d1a: 0c02 |0009: move-result-object v2 │ │ +019d1c: 1a03 ee00 |000a: const-string v3, "HandshakeServerSession" // string@00ee │ │ +019d20: 3902 1c00 |000c: if-nez v2, 0028 // +001c │ │ +019d24: 2200 6700 |000e: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +019d28: 7010 c500 0000 |0010: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +019d2e: 7601 bf04 1200 |0013: invoke-direct/range {v18}, Lorg/jsl/wfwt/HandshakeServerSession;.getLogPrefix:()Ljava/lang/String; // method@04bf │ │ +019d34: 0c02 |0016: move-result-object v2 │ │ +019d36: 6e20 cb00 2000 |0017: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019d3c: 1a02 6b04 |001a: const-string v2, "fragmented HandshakeRequest." // string@046b │ │ +019d40: 6e20 cb00 2000 |001c: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019d46: 6e10 ce00 0000 |001f: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +019d4c: 0c00 |0022: move-result-object v0 │ │ +019d4e: 7120 6400 0300 |0023: invoke-static {v3, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +019d54: 2900 6901 |0026: goto/16 018f // +0169 │ │ +019d58: 6200 7d01 |0028: sget-object v0, Lorg/jsl/collider/StreamDefragger;.INVALID_HEADER:Lorg/jsl/collider/RetainableByteBuffer; // field@017d │ │ +019d5c: 3302 2100 |002a: if-ne v2, v0, 004b // +0021 │ │ +019d60: 2200 6700 |002c: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +019d64: 7010 c500 0000 |002e: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +019d6a: 7601 bf04 1200 |0031: invoke-direct/range {v18}, Lorg/jsl/wfwt/HandshakeServerSession;.getLogPrefix:()Ljava/lang/String; // method@04bf │ │ +019d70: 0c02 |0034: move-result-object v2 │ │ +019d72: 6e20 cb00 2000 |0035: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019d78: 1a02 ef04 |0038: const-string v2, "invalid received, close connection." // string@04ef │ │ +019d7c: 6e20 cb00 2000 |003a: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019d82: 6e10 ce00 0000 |003d: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +019d88: 0c00 |0040: move-result-object v0 │ │ +019d8a: 7120 6400 0300 |0041: invoke-static {v3, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +019d90: 5410 2c02 |0044: iget-object v0, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ +019d94: 7210 4d03 0000 |0046: invoke-interface {v0}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ +019d9a: 2900 4601 |0049: goto/16 018f // +0146 │ │ +019d9e: 5410 3002 |004b: iget-object v0, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_timerHandler:Lorg/jsl/wfwt/HandshakeServerSession$TimerHandler; // field@0230 │ │ +019da2: 1214 |004d: const/4 v4, #int 1 // #1 │ │ +019da4: 3800 1500 |004e: if-eqz v0, 0063 // +0015 │ │ +019da8: 5415 3102 |0050: iget-object v5, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_timerQueue:Lorg/jsl/collider/TimerQueue; // field@0231 │ │ +019dac: 6e20 1d04 0500 |0052: invoke-virtual {v5, v0}, Lorg/jsl/collider/TimerQueue;.cancel:(Lorg/jsl/collider/TimerQueue$Task;)I // method@041d │ │ +019db2: 0a00 |0055: move-result v0 │ │ +019db4: 3800 0d00 |0056: if-eqz v0, 0063 // +000d │ │ +019db8: 0e00 |0058: return-void │ │ +019dba: 0d00 |0059: move-exception v0 │ │ +019dbc: 6e10 ac00 0000 |005a: invoke-virtual {v0}, Ljava/lang/InterruptedException;.toString:()Ljava/lang/String; // method@00ac │ │ +019dc2: 0c05 |005d: move-result-object v5 │ │ +019dc4: 7130 6700 5300 |005e: invoke-static {v3, v5, v0}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I // method@0067 │ │ +019dca: 1215 |0061: const/4 v5, #int 1 // #1 │ │ +019dcc: 2803 |0062: goto 0065 // +0003 │ │ +019dce: 1200 |0063: const/4 v0, #int 0 // #0 │ │ +019dd0: 1205 |0064: const/4 v5, #int 0 // #0 │ │ +019dd2: 7110 2605 0200 |0065: invoke-static {v2}, Lorg/jsl/wfwt/Protocol$Message;.getMessageId:(Lorg/jsl/collider/RetainableByteBuffer;)S // method@0526 │ │ +019dd8: 0a00 |0068: move-result v0 │ │ +019dda: 3340 f800 |0069: if-ne v0, v4, 0161 // +00f8 │ │ +019dde: 7110 2005 0200 |006b: invoke-static {v2}, Lorg/jsl/wfwt/Protocol$HandshakeRequest;.getProtocolVersion:(Lorg/jsl/collider/RetainableByteBuffer;)S // method@0520 │ │ +019de4: 0a00 |006e: move-result v0 │ │ +019de6: 1234 |006f: const/4 v4, #int 3 // #3 │ │ +019de8: 3340 ab00 |0070: if-ne v0, v4, 011b // +00ab │ │ +019dec: 7110 1f05 0200 |0072: invoke-static {v2}, Lorg/jsl/wfwt/Protocol$HandshakeRequest;.getAudioFormat:(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String; // method@051f │ │ +019df2: 0c00 |0075: move-result-object v0 │ │ +019df4: 7110 2105 0200 |0076: invoke-static {v2}, Lorg/jsl/wfwt/Protocol$HandshakeRequest;.getStationName:(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String; // method@0521 │ │ +019dfa: 0c02 |0079: move-result-object v2 │ │ +019dfc: 7601 bf04 1200 |007a: invoke-direct/range {v18}, Lorg/jsl/wfwt/HandshakeServerSession;.getLogPrefix:()Ljava/lang/String; // method@04bf │ │ +019e02: 0c04 |007d: move-result-object v4 │ │ +019e04: 5416 2a02 |007e: iget-object v6, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@022a │ │ +019e08: 5417 2c02 |0080: iget-object v7, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ +019e0c: 1208 |0082: const/4 v8, #int 0 // #0 │ │ +019e0e: 7157 3f04 0486 |0083: invoke-static {v4, v0, v6, v8, v7}, Lorg/jsl/wfwt/AudioPlayer;.create:(Ljava/lang/String;Ljava/lang/String;Lorg/jsl/wfwt/Channel;Ljava/lang/String;Lorg/jsl/collider/Session;)Lorg/jsl/wfwt/AudioPlayer; // method@043f │ │ +019e14: 0c0f |0086: move-result-object v15 │ │ +019e16: 390f 2900 |0087: if-nez v15, 00b0 // +0029 │ │ +019e1a: 2202 6700 |0089: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ +019e1e: 7010 c500 0200 |008b: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +019e24: 7601 bf04 1200 |008e: invoke-direct/range {v18}, Lorg/jsl/wfwt/HandshakeServerSession;.getLogPrefix:()Ljava/lang/String; // method@04bf │ │ +019e2a: 0c04 |0091: move-result-object v4 │ │ +019e2c: 6e20 cb00 4200 |0092: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019e32: 1a04 0c07 |0095: const-string v4, "unsupported audio format '" // string@070c │ │ +019e36: 6e20 cb00 4200 |0097: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019e3c: 6e20 cb00 0200 |009a: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019e42: 1a00 3200 |009d: const-string v0, "', closing connection." // string@0032 │ │ +019e46: 6e20 cb00 0200 |009f: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019e4c: 6e10 ce00 0200 |00a2: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +019e52: 0c00 |00a5: move-result-object v0 │ │ +019e54: 7120 6400 0300 |00a6: invoke-static {v3, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +019e5a: 5410 2c02 |00a9: iget-object v0, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ +019e5e: 7210 4d03 0000 |00ab: invoke-interface {v0}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ +019e64: 2900 d800 |00ae: goto/16 0186 // +00d8 │ │ +019e68: 2200 6700 |00b0: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +019e6c: 7010 c500 0000 |00b2: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +019e72: 7601 bf04 1200 |00b5: invoke-direct/range {v18}, Lorg/jsl/wfwt/HandshakeServerSession;.getLogPrefix:()Ljava/lang/String; // method@04bf │ │ +019e78: 0c04 |00b8: move-result-object v4 │ │ +019e7a: 6e20 cb00 4000 |00b9: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019e80: 1a04 de04 |00bc: const-string v4, "handshake ok" // string@04de │ │ +019e84: 6e20 cb00 4000 |00be: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019e8a: 6e10 ce00 0000 |00c1: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +019e90: 0c00 |00c4: move-result-object v0 │ │ +019e92: 7120 6400 0300 |00c5: invoke-static {v3, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +019e98: 5410 2902 |00c8: iget-object v0, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_audioFormat:Ljava/lang/String; // field@0229 │ │ +019e9c: 5414 2e02 |00ca: iget-object v4, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_stationName:Ljava/lang/String; // field@022e │ │ +019ea0: 7120 1805 4000 |00cc: invoke-static {v0, v4}, Lorg/jsl/wfwt/Protocol$HandshakeReplyOk;.create:(Ljava/lang/String;Ljava/lang/String;)Ljava/nio/ByteBuffer; // method@0518 │ │ +019ea6: 0c00 |00cf: move-result-object v0 │ │ +019ea8: 5414 2c02 |00d0: iget-object v4, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ +019eac: 7220 5203 0400 |00d2: invoke-interface {v4, v0}, Lorg/jsl/collider/Session;.sendData:(Ljava/nio/ByteBuffer;)I // method@0352 │ │ +019eb2: 2200 2001 |00d5: new-instance v0, Lorg/jsl/wfwt/ChannelSession; // type@0120 │ │ +019eb6: 541a 2a02 |00d7: iget-object v10, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@022a │ │ +019eba: 120b |00d9: const/4 v11, #int 0 // #0 │ │ +019ebc: 541c 2c02 |00da: iget-object v12, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ +019ec0: 541d 2f02 |00dc: iget-object v13, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_streamDefragger:Lorg/jsl/collider/StreamDefragger; // field@022f │ │ +019ec4: 541e 2d02 |00de: iget-object v14, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_sessionManager:Lorg/jsl/wfwt/SessionManager; // field@022d │ │ +019ec8: 5414 3102 |00e0: iget-object v4, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_timerQueue:Lorg/jsl/collider/TimerQueue; // field@0231 │ │ +019ecc: 5216 2b02 |00e2: iget v6, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_pingInterval:I // field@022b │ │ +019ed0: 0709 |00e4: move-object v9, v0 │ │ +019ed2: 0810 0400 |00e5: move-object/from16 v16, v4 │ │ +019ed6: 0211 0600 |00e7: move/from16 v17, v6 │ │ +019eda: 7609 9c04 0900 |00e9: invoke-direct/range {v9, v10, v11, v12, v13, v14, v15, v16, v17}, Lorg/jsl/wfwt/ChannelSession;.:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;Lorg/jsl/collider/Session;Lorg/jsl/collider/StreamDefragger;Lorg/jsl/wfwt/SessionManager;Lorg/jsl/wfwt/AudioPlayer;Lorg/jsl/collider/TimerQueue;I)V // method@049c │ │ +019ee0: 5414 2a02 |00ec: iget-object v4, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_channel:Lorg/jsl/wfwt/Channel; // field@022a │ │ +019ee4: 5416 2c02 |00ee: iget-object v6, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ +019ee8: 6e40 8804 6420 |00f0: invoke-virtual {v4, v6, v0, v2}, Lorg/jsl/wfwt/Channel;.addSession:(Lorg/jsl/collider/Session;Lorg/jsl/wfwt/ChannelSession;Ljava/lang/String;)V // method@0488 │ │ +019eee: 5412 2c02 |00f3: iget-object v2, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ +019ef2: 7220 5103 0200 |00f5: invoke-interface {v2, v0}, Lorg/jsl/collider/Session;.replaceListener:(Lorg/jsl/collider/Session$Listener;)Lorg/jsl/collider/Session$Listener; // method@0351 │ │ +019ef8: 2900 8e00 |00f8: goto/16 0186 // +008e │ │ +019efc: 0d00 |00fa: move-exception v0 │ │ +019efe: 2202 6700 |00fb: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ +019f02: 7010 c500 0200 |00fd: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +019f08: 7601 bf04 1200 |0100: invoke-direct/range {v18}, Lorg/jsl/wfwt/HandshakeServerSession;.getLogPrefix:()Ljava/lang/String; // method@04bf │ │ +019f0e: 0c04 |0103: move-result-object v4 │ │ +019f10: 6e20 cb00 4200 |0104: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019f16: 6e10 5301 0000 |0107: invoke-virtual {v0}, Ljava/nio/charset/CharacterCodingException;.toString:()Ljava/lang/String; // method@0153 │ │ +019f1c: 0c04 |010a: move-result-object v4 │ │ +019f1e: 6e20 cb00 4200 |010b: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019f24: 6e10 ce00 0200 |010e: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +019f2a: 0c02 |0111: move-result-object v2 │ │ +019f2c: 7130 6300 2300 |0112: invoke-static {v3, v2, v0}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I // method@0063 │ │ +019f32: 5410 2c02 |0115: iget-object v0, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ +019f36: 7210 4d03 0000 |0117: invoke-interface {v0}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ +019f3c: 286c |011a: goto 0186 // +006c │ │ +019f3e: 2202 6700 |011b: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ +019f42: 7010 c500 0200 |011d: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +019f48: 7601 bf04 1200 |0120: invoke-direct/range {v18}, Lorg/jsl/wfwt/HandshakeServerSession;.getLogPrefix:()Ljava/lang/String; // method@04bf │ │ +019f4e: 0c04 |0123: move-result-object v4 │ │ +019f50: 6e20 cb00 4200 |0124: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019f56: 1a04 3106 |0127: const-string v4, "protocol version mismatch: 3-" // string@0631 │ │ +019f5a: 6e20 cb00 4200 |0129: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019f60: 6e20 c800 0200 |012c: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ +019f66: 1a04 3f00 |012f: const-string v4, ", close connection." // string@003f │ │ +019f6a: 6e20 cb00 4200 |0131: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019f70: 6e10 ce00 0200 |0134: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +019f76: 0c02 |0137: move-result-object v2 │ │ +019f78: 7120 6400 2300 |0138: invoke-static {v3, v2}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +019f7e: 2202 6700 |013b: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ +019f82: 1a04 b502 |013d: const-string v4, "Protocol version mismatch: 3-" // string@02b5 │ │ +019f86: 7020 c600 4200 |013f: invoke-direct {v2, v4}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ +019f8c: 6e20 c800 0200 |0142: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ +019f92: 6e10 ce00 0200 |0145: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +019f98: 0c00 |0148: move-result-object v0 │ │ +019f9a: 7110 1405 0000 |0149: invoke-static {v0}, Lorg/jsl/wfwt/Protocol$HandshakeReplyFail;.create:(Ljava/lang/String;)Ljava/nio/ByteBuffer; // method@0514 │ │ +019fa0: 0c00 |014c: move-result-object v0 │ │ +019fa2: 5412 2c02 |014d: iget-object v2, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ +019fa6: 7220 5203 0200 |014f: invoke-interface {v2, v0}, Lorg/jsl/collider/Session;.sendData:(Ljava/nio/ByteBuffer;)I // method@0352 │ │ +019fac: 2809 |0152: goto 015b // +0009 │ │ +019fae: 0d00 |0153: move-exception v0 │ │ +019fb0: 6e10 5301 0000 |0154: invoke-virtual {v0}, Ljava/nio/charset/CharacterCodingException;.toString:()Ljava/lang/String; // method@0153 │ │ +019fb6: 0c02 |0157: move-result-object v2 │ │ +019fb8: 7130 6500 2300 |0158: invoke-static {v3, v2, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I // method@0065 │ │ +019fbe: 5410 2c02 |015b: iget-object v0, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ +019fc2: 7210 4d03 0000 |015d: invoke-interface {v0}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ +019fc8: 2826 |0160: goto 0186 // +0026 │ │ +019fca: 2202 6700 |0161: new-instance v2, Ljava/lang/StringBuilder; // type@0067 │ │ +019fce: 7010 c500 0200 |0163: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +019fd4: 7601 bf04 1200 |0166: invoke-direct/range {v18}, Lorg/jsl/wfwt/HandshakeServerSession;.getLogPrefix:()Ljava/lang/String; // method@04bf │ │ +019fda: 0c04 |0169: move-result-object v4 │ │ +019fdc: 6e20 cb00 4200 |016a: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019fe2: 1a04 0707 |016d: const-string v4, "unexpected message " // string@0707 │ │ +019fe6: 6e20 cb00 4200 |016f: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019fec: 6e20 c800 0200 |0172: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c8 │ │ +019ff2: 1a00 2100 |0175: const-string v0, " received, closing connection." // string@0021 │ │ +019ff6: 6e20 cb00 0200 |0177: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +019ffc: 6e10 ce00 0200 |017a: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01a002: 0c00 |017d: move-result-object v0 │ │ +01a004: 7120 6400 0300 |017e: invoke-static {v3, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +01a00a: 5410 2c02 |0181: iget-object v0, v1, Lorg/jsl/wfwt/HandshakeServerSession;.m_session:Lorg/jsl/collider/Session; // field@022c │ │ +01a00e: 7210 4d03 0000 |0183: invoke-interface {v0}, Lorg/jsl/collider/Session;.closeConnection:()I // method@034d │ │ +01a014: 3805 0900 |0186: if-eqz v5, 018f // +0009 │ │ +01a018: 7100 d600 0000 |0188: invoke-static {}, Ljava/lang/Thread;.currentThread:()Ljava/lang/Thread; // method@00d6 │ │ +01a01e: 0c00 |018b: move-result-object v0 │ │ +01a020: 6e10 d900 0000 |018c: invoke-virtual {v0}, Ljava/lang/Thread;.interrupt:()V // method@00d9 │ │ +01a026: 0e00 |018f: return-void │ │ catches : 3 │ │ 0x0050 - 0x0056 │ │ Ljava/lang/InterruptedException; -> 0x0059 │ │ 0x0072 - 0x00f8 │ │ Ljava/nio/charset/CharacterCodingException; -> 0x00fa │ │ 0x0149 - 0x0152 │ │ Ljava/nio/charset/CharacterCodingException; -> 0x0153 │ │ @@ -38050,18 +38050,18 @@ │ │ type : '(Lorg/jsl/wfwt/MainActivity;)V' │ │ access : 0x10002 (PRIVATE CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -01a440: |[01a440] org.jsl.wfwt.MainActivity$ButtonTalkListener.:(Lorg/jsl/wfwt/MainActivity;)V │ │ -01a450: 5b01 4402 |0000: iput-object v1, v0, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0244 │ │ -01a454: 7010 b300 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ -01a45a: 0e00 |0005: return-void │ │ +01a444: |[01a444] org.jsl.wfwt.MainActivity$ButtonTalkListener.:(Lorg/jsl/wfwt/MainActivity;)V │ │ +01a454: 5b01 4402 |0000: iput-object v1, v0, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0244 │ │ +01a458: 7010 b300 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@00b3 │ │ +01a45e: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=70 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/jsl/wfwt/MainActivity$ButtonTalkListener; │ │ 0x0000 - 0x0006 reg=1 (null) Lorg/jsl/wfwt/MainActivity; │ │ │ │ @@ -38070,17 +38070,17 @@ │ │ type : '(Lorg/jsl/wfwt/MainActivity;Lorg/jsl/wfwt/MainActivity$1;)V' │ │ access : 0x11000 (SYNTHETIC CONSTRUCTOR) │ │ code - │ │ registers : 3 │ │ ins : 3 │ │ outs : 2 │ │ insns size : 4 16-bit code units │ │ -01a45c: |[01a45c] org.jsl.wfwt.MainActivity$ButtonTalkListener.:(Lorg/jsl/wfwt/MainActivity;Lorg/jsl/wfwt/MainActivity$1;)V │ │ -01a46c: 7020 d504 1000 |0000: invoke-direct {v0, v1}, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.:(Lorg/jsl/wfwt/MainActivity;)V // method@04d5 │ │ -01a472: 0e00 |0003: return-void │ │ +01a460: |[01a460] org.jsl.wfwt.MainActivity$ButtonTalkListener.:(Lorg/jsl/wfwt/MainActivity;Lorg/jsl/wfwt/MainActivity$1;)V │ │ +01a470: 7020 d504 1000 |0000: invoke-direct {v0, v1}, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.:(Lorg/jsl/wfwt/MainActivity;)V // method@04d5 │ │ +01a476: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=70 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/jsl/wfwt/MainActivity$ButtonTalkListener; │ │ 0x0000 - 0x0004 reg=1 (null) Lorg/jsl/wfwt/MainActivity; │ │ 0x0000 - 0x0004 reg=2 (null) Lorg/jsl/wfwt/MainActivity$1; │ │ @@ -38091,58 +38091,58 @@ │ │ type : '(Z)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 86 16-bit code units │ │ -01a474: |[01a474] org.jsl.wfwt.MainActivity$ButtonTalkListener.onStateChanged:(Z)V │ │ -01a484: 3802 2c00 |0000: if-eqz v2, 002c // +002c │ │ -01a488: 5412 4402 |0002: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0244 │ │ -01a48c: 7110 e304 0200 |0004: invoke-static {v2}, Lorg/jsl/wfwt/MainActivity;.access$000:(Lorg/jsl/wfwt/MainActivity;)Z // method@04e3 │ │ -01a492: 0a02 |0007: move-result v2 │ │ -01a494: 3902 4d00 |0008: if-nez v2, 0055 // +004d │ │ -01a498: 5412 4402 |000a: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0244 │ │ -01a49c: 1210 |000c: const/4 v0, #int 1 // #1 │ │ -01a49e: 7120 e404 0200 |000d: invoke-static {v2, v0}, Lorg/jsl/wfwt/MainActivity;.access$002:(Lorg/jsl/wfwt/MainActivity;Z)Z // method@04e4 │ │ -01a4a4: 5412 4402 |0010: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0244 │ │ -01a4a8: 7110 e504 0200 |0012: invoke-static {v2}, Lorg/jsl/wfwt/MainActivity;.access$100:(Lorg/jsl/wfwt/MainActivity;)I // method@04e5 │ │ -01a4ae: 0a02 |0015: move-result v2 │ │ -01a4b0: 3d02 0c00 |0016: if-lez v2, 0022 // +000c │ │ -01a4b4: 5412 4402 |0018: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0244 │ │ -01a4b8: 7110 e604 0200 |001a: invoke-static {v2}, Lorg/jsl/wfwt/MainActivity;.access$200:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/AudioRecorder; // method@04e6 │ │ -01a4be: 0c02 |001d: move-result-object v2 │ │ -01a4c0: 6e20 4f04 0200 |001e: invoke-virtual {v2, v0}, Lorg/jsl/wfwt/AudioRecorder;.setPTT:(Z)V // method@044f │ │ -01a4c6: 2834 |0021: goto 0055 // +0034 │ │ -01a4c8: 5412 4402 |0022: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0244 │ │ -01a4cc: 7110 e604 0200 |0024: invoke-static {v2}, Lorg/jsl/wfwt/MainActivity;.access$200:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/AudioRecorder; // method@04e6 │ │ -01a4d2: 0c02 |0027: move-result-object v2 │ │ -01a4d4: 6e20 5304 0200 |0028: invoke-virtual {v2, v0}, Lorg/jsl/wfwt/AudioRecorder;.startRecording:(Z)V // method@0453 │ │ -01a4da: 282a |002b: goto 0055 // +002a │ │ -01a4dc: 5412 4402 |002c: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0244 │ │ -01a4e0: 7110 e304 0200 |002e: invoke-static {v2}, Lorg/jsl/wfwt/MainActivity;.access$000:(Lorg/jsl/wfwt/MainActivity;)Z // method@04e3 │ │ -01a4e6: 0a02 |0031: move-result v2 │ │ -01a4e8: 3802 2300 |0032: if-eqz v2, 0055 // +0023 │ │ -01a4ec: 5412 4402 |0034: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0244 │ │ -01a4f0: 1200 |0036: const/4 v0, #int 0 // #0 │ │ -01a4f2: 7120 e404 0200 |0037: invoke-static {v2, v0}, Lorg/jsl/wfwt/MainActivity;.access$002:(Lorg/jsl/wfwt/MainActivity;Z)Z // method@04e4 │ │ -01a4f8: 5412 4402 |003a: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0244 │ │ -01a4fc: 7110 e504 0200 |003c: invoke-static {v2}, Lorg/jsl/wfwt/MainActivity;.access$100:(Lorg/jsl/wfwt/MainActivity;)I // method@04e5 │ │ -01a502: 0a02 |003f: move-result v2 │ │ -01a504: 3d02 0c00 |0040: if-lez v2, 004c // +000c │ │ -01a508: 5412 4402 |0042: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0244 │ │ -01a50c: 7110 e604 0200 |0044: invoke-static {v2}, Lorg/jsl/wfwt/MainActivity;.access$200:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/AudioRecorder; // method@04e6 │ │ -01a512: 0c02 |0047: move-result-object v2 │ │ -01a514: 6e20 4f04 0200 |0048: invoke-virtual {v2, v0}, Lorg/jsl/wfwt/AudioRecorder;.setPTT:(Z)V // method@044f │ │ -01a51a: 280a |004b: goto 0055 // +000a │ │ -01a51c: 5412 4402 |004c: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0244 │ │ -01a520: 7110 e604 0200 |004e: invoke-static {v2}, Lorg/jsl/wfwt/MainActivity;.access$200:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/AudioRecorder; // method@04e6 │ │ -01a526: 0c02 |0051: move-result-object v2 │ │ -01a528: 6e10 5404 0200 |0052: invoke-virtual {v2}, Lorg/jsl/wfwt/AudioRecorder;.stopRecording:()V // method@0454 │ │ -01a52e: 0e00 |0055: return-void │ │ +01a478: |[01a478] org.jsl.wfwt.MainActivity$ButtonTalkListener.onStateChanged:(Z)V │ │ +01a488: 3802 2c00 |0000: if-eqz v2, 002c // +002c │ │ +01a48c: 5412 4402 |0002: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0244 │ │ +01a490: 7110 e304 0200 |0004: invoke-static {v2}, Lorg/jsl/wfwt/MainActivity;.access$000:(Lorg/jsl/wfwt/MainActivity;)Z // method@04e3 │ │ +01a496: 0a02 |0007: move-result v2 │ │ +01a498: 3902 4d00 |0008: if-nez v2, 0055 // +004d │ │ +01a49c: 5412 4402 |000a: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0244 │ │ +01a4a0: 1210 |000c: const/4 v0, #int 1 // #1 │ │ +01a4a2: 7120 e404 0200 |000d: invoke-static {v2, v0}, Lorg/jsl/wfwt/MainActivity;.access$002:(Lorg/jsl/wfwt/MainActivity;Z)Z // method@04e4 │ │ +01a4a8: 5412 4402 |0010: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0244 │ │ +01a4ac: 7110 e504 0200 |0012: invoke-static {v2}, Lorg/jsl/wfwt/MainActivity;.access$100:(Lorg/jsl/wfwt/MainActivity;)I // method@04e5 │ │ +01a4b2: 0a02 |0015: move-result v2 │ │ +01a4b4: 3d02 0c00 |0016: if-lez v2, 0022 // +000c │ │ +01a4b8: 5412 4402 |0018: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0244 │ │ +01a4bc: 7110 e604 0200 |001a: invoke-static {v2}, Lorg/jsl/wfwt/MainActivity;.access$200:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/AudioRecorder; // method@04e6 │ │ +01a4c2: 0c02 |001d: move-result-object v2 │ │ +01a4c4: 6e20 4f04 0200 |001e: invoke-virtual {v2, v0}, Lorg/jsl/wfwt/AudioRecorder;.setPTT:(Z)V // method@044f │ │ +01a4ca: 2834 |0021: goto 0055 // +0034 │ │ +01a4cc: 5412 4402 |0022: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0244 │ │ +01a4d0: 7110 e604 0200 |0024: invoke-static {v2}, Lorg/jsl/wfwt/MainActivity;.access$200:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/AudioRecorder; // method@04e6 │ │ +01a4d6: 0c02 |0027: move-result-object v2 │ │ +01a4d8: 6e20 5304 0200 |0028: invoke-virtual {v2, v0}, Lorg/jsl/wfwt/AudioRecorder;.startRecording:(Z)V // method@0453 │ │ +01a4de: 282a |002b: goto 0055 // +002a │ │ +01a4e0: 5412 4402 |002c: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0244 │ │ +01a4e4: 7110 e304 0200 |002e: invoke-static {v2}, Lorg/jsl/wfwt/MainActivity;.access$000:(Lorg/jsl/wfwt/MainActivity;)Z // method@04e3 │ │ +01a4ea: 0a02 |0031: move-result v2 │ │ +01a4ec: 3802 2300 |0032: if-eqz v2, 0055 // +0023 │ │ +01a4f0: 5412 4402 |0034: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0244 │ │ +01a4f4: 1200 |0036: const/4 v0, #int 0 // #0 │ │ +01a4f6: 7120 e404 0200 |0037: invoke-static {v2, v0}, Lorg/jsl/wfwt/MainActivity;.access$002:(Lorg/jsl/wfwt/MainActivity;Z)Z // method@04e4 │ │ +01a4fc: 5412 4402 |003a: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0244 │ │ +01a500: 7110 e504 0200 |003c: invoke-static {v2}, Lorg/jsl/wfwt/MainActivity;.access$100:(Lorg/jsl/wfwt/MainActivity;)I // method@04e5 │ │ +01a506: 0a02 |003f: move-result v2 │ │ +01a508: 3d02 0c00 |0040: if-lez v2, 004c // +000c │ │ +01a50c: 5412 4402 |0042: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0244 │ │ +01a510: 7110 e604 0200 |0044: invoke-static {v2}, Lorg/jsl/wfwt/MainActivity;.access$200:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/AudioRecorder; // method@04e6 │ │ +01a516: 0c02 |0047: move-result-object v2 │ │ +01a518: 6e20 4f04 0200 |0048: invoke-virtual {v2, v0}, Lorg/jsl/wfwt/AudioRecorder;.setPTT:(Z)V // method@044f │ │ +01a51e: 280a |004b: goto 0055 // +000a │ │ +01a520: 5412 4402 |004c: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity$ButtonTalkListener;.this$0:Lorg/jsl/wfwt/MainActivity; // field@0244 │ │ +01a524: 7110 e604 0200 |004e: invoke-static {v2}, Lorg/jsl/wfwt/MainActivity;.access$200:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/AudioRecorder; // method@04e6 │ │ +01a52a: 0c02 |0051: move-result-object v2 │ │ +01a52c: 6e10 5404 0200 |0052: invoke-virtual {v2}, Lorg/jsl/wfwt/AudioRecorder;.stopRecording:()V // method@0454 │ │ +01a532: 0e00 |0055: return-void │ │ catches : (none) │ │ positions : │ │ 0x0002 line=76 │ │ 0x000a line=78 │ │ 0x0010 line=79 │ │ 0x0018 line=80 │ │ 0x0022 line=82 │ │ @@ -38293,17 +38293,17 @@ │ │ type : '()V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -01ad28: |[01ad28] org.jsl.wfwt.MainActivity.:()V │ │ -01ad38: 7010 0000 0000 |0000: invoke-direct {v0}, Landroid/app/Activity;.:()V // method@0000 │ │ -01ad3e: 0e00 |0003: return-void │ │ +01ad2c: |[01ad2c] org.jsl.wfwt.MainActivity.:()V │ │ +01ad3c: 7010 0000 0000 |0000: invoke-direct {v0}, Landroid/app/Activity;.:()V // method@0000 │ │ +01ad42: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=37 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/jsl/wfwt/MainActivity; │ │ │ │ #1 : (in Lorg/jsl/wfwt/MainActivity;) │ │ @@ -38311,17 +38311,17 @@ │ │ type : '(Lorg/jsl/wfwt/MainActivity;)Z' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01a8d4: |[01a8d4] org.jsl.wfwt.MainActivity.access$000:(Lorg/jsl/wfwt/MainActivity;)Z │ │ -01a8e4: 5500 6202 |0000: iget-boolean v0, v0, Lorg/jsl/wfwt/MainActivity;.m_ptt:Z // field@0262 │ │ -01a8e8: 0f00 |0002: return v0 │ │ +01a8d8: |[01a8d8] org.jsl.wfwt.MainActivity.access$000:(Lorg/jsl/wfwt/MainActivity;)Z │ │ +01a8e8: 5500 6202 |0000: iget-boolean v0, v0, Lorg/jsl/wfwt/MainActivity;.m_ptt:Z // field@0262 │ │ +01a8ec: 0f00 |0002: return v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=37 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/MainActivity; │ │ │ │ #2 : (in Lorg/jsl/wfwt/MainActivity;) │ │ @@ -38329,17 +38329,17 @@ │ │ type : '(Lorg/jsl/wfwt/MainActivity;Z)Z' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01a8ec: |[01a8ec] org.jsl.wfwt.MainActivity.access$002:(Lorg/jsl/wfwt/MainActivity;Z)Z │ │ -01a8fc: 5c01 6202 |0000: iput-boolean v1, v0, Lorg/jsl/wfwt/MainActivity;.m_ptt:Z // field@0262 │ │ -01a900: 0f01 |0002: return v1 │ │ +01a8f0: |[01a8f0] org.jsl.wfwt.MainActivity.access$002:(Lorg/jsl/wfwt/MainActivity;Z)Z │ │ +01a900: 5c01 6202 |0000: iput-boolean v1, v0, Lorg/jsl/wfwt/MainActivity;.m_ptt:Z // field@0262 │ │ +01a904: 0f01 |0002: return v1 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=37 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/MainActivity; │ │ 0x0000 - 0x0003 reg=1 (null) Z │ │ │ │ @@ -38348,17 +38348,17 @@ │ │ type : '(Lorg/jsl/wfwt/MainActivity;)I' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01ac20: |[01ac20] org.jsl.wfwt.MainActivity.access$100:(Lorg/jsl/wfwt/MainActivity;)I │ │ -01ac30: 5200 6302 |0000: iget v0, v0, Lorg/jsl/wfwt/MainActivity;.m_receivers:I // field@0263 │ │ -01ac34: 0f00 |0002: return v0 │ │ +01ac24: |[01ac24] org.jsl.wfwt.MainActivity.access$100:(Lorg/jsl/wfwt/MainActivity;)I │ │ +01ac34: 5200 6302 |0000: iget v0, v0, Lorg/jsl/wfwt/MainActivity;.m_receivers:I // field@0263 │ │ +01ac38: 0f00 |0002: return v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=37 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/MainActivity; │ │ │ │ #4 : (in Lorg/jsl/wfwt/MainActivity;) │ │ @@ -38366,17 +38366,17 @@ │ │ type : '(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/AudioRecorder;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01ac98: |[01ac98] org.jsl.wfwt.MainActivity.access$200:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/AudioRecorder; │ │ -01aca8: 5400 5c02 |0000: iget-object v0, v0, Lorg/jsl/wfwt/MainActivity;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@025c │ │ -01acac: 1100 |0002: return-object v0 │ │ +01ac9c: |[01ac9c] org.jsl.wfwt.MainActivity.access$200:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/AudioRecorder; │ │ +01acac: 5400 5c02 |0000: iget-object v0, v0, Lorg/jsl/wfwt/MainActivity;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@025c │ │ +01acb0: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=37 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/MainActivity; │ │ │ │ #5 : (in Lorg/jsl/wfwt/MainActivity;) │ │ @@ -38384,17 +38384,17 @@ │ │ type : '(Lorg/jsl/wfwt/MainActivity;Lorg/jsl/wfwt/AudioRecorder;)Lorg/jsl/wfwt/AudioRecorder;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01acb0: |[01acb0] org.jsl.wfwt.MainActivity.access$202:(Lorg/jsl/wfwt/MainActivity;Lorg/jsl/wfwt/AudioRecorder;)Lorg/jsl/wfwt/AudioRecorder; │ │ -01acc0: 5b01 5c02 |0000: iput-object v1, v0, Lorg/jsl/wfwt/MainActivity;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@025c │ │ -01acc4: 1101 |0002: return-object v1 │ │ +01acb4: |[01acb4] org.jsl.wfwt.MainActivity.access$202:(Lorg/jsl/wfwt/MainActivity;Lorg/jsl/wfwt/AudioRecorder;)Lorg/jsl/wfwt/AudioRecorder; │ │ +01acc4: 5b01 5c02 |0000: iput-object v1, v0, Lorg/jsl/wfwt/MainActivity;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@025c │ │ +01acc8: 1101 |0002: return-object v1 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=37 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/MainActivity; │ │ 0x0000 - 0x0003 reg=1 (null) Lorg/jsl/wfwt/AudioRecorder; │ │ │ │ @@ -38403,17 +38403,17 @@ │ │ type : '(Lorg/jsl/wfwt/MainActivity;)Ljava/lang/String;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01ac68: |[01ac68] org.jsl.wfwt.MainActivity.access$300:(Lorg/jsl/wfwt/MainActivity;)Ljava/lang/String; │ │ -01ac78: 5400 6602 |0000: iget-object v0, v0, Lorg/jsl/wfwt/MainActivity;.m_stationName:Ljava/lang/String; // field@0266 │ │ -01ac7c: 1100 |0002: return-object v0 │ │ +01ac6c: |[01ac6c] org.jsl.wfwt.MainActivity.access$300:(Lorg/jsl/wfwt/MainActivity;)Ljava/lang/String; │ │ +01ac7c: 5400 6602 |0000: iget-object v0, v0, Lorg/jsl/wfwt/MainActivity;.m_stationName:Ljava/lang/String; // field@0266 │ │ +01ac80: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=37 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/MainActivity; │ │ │ │ #7 : (in Lorg/jsl/wfwt/MainActivity;) │ │ @@ -38421,17 +38421,17 @@ │ │ type : '(Lorg/jsl/wfwt/MainActivity;Ljava/lang/String;)Ljava/lang/String;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01ac80: |[01ac80] org.jsl.wfwt.MainActivity.access$302:(Lorg/jsl/wfwt/MainActivity;Ljava/lang/String;)Ljava/lang/String; │ │ -01ac90: 5b01 6602 |0000: iput-object v1, v0, Lorg/jsl/wfwt/MainActivity;.m_stationName:Ljava/lang/String; // field@0266 │ │ -01ac94: 1101 |0002: return-object v1 │ │ +01ac84: |[01ac84] org.jsl.wfwt.MainActivity.access$302:(Lorg/jsl/wfwt/MainActivity;Ljava/lang/String;)Ljava/lang/String; │ │ +01ac94: 5b01 6602 |0000: iput-object v1, v0, Lorg/jsl/wfwt/MainActivity;.m_stationName:Ljava/lang/String; // field@0266 │ │ +01ac98: 1101 |0002: return-object v1 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=37 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/MainActivity; │ │ 0x0000 - 0x0003 reg=1 (null) Ljava/lang/String; │ │ │ │ @@ -38440,17 +38440,17 @@ │ │ type : '(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/WalkieService$BinderImpl;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01acf8: |[01acf8] org.jsl.wfwt.MainActivity.access$400:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/WalkieService$BinderImpl; │ │ -01ad08: 5400 5e02 |0000: iget-object v0, v0, Lorg/jsl/wfwt/MainActivity;.m_binder:Lorg/jsl/wfwt/WalkieService$BinderImpl; // field@025e │ │ -01ad0c: 1100 |0002: return-object v0 │ │ +01acfc: |[01acfc] org.jsl.wfwt.MainActivity.access$400:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/WalkieService$BinderImpl; │ │ +01ad0c: 5400 5e02 |0000: iget-object v0, v0, Lorg/jsl/wfwt/MainActivity;.m_binder:Lorg/jsl/wfwt/WalkieService$BinderImpl; // field@025e │ │ +01ad10: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=37 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/MainActivity; │ │ │ │ #9 : (in Lorg/jsl/wfwt/MainActivity;) │ │ @@ -38458,17 +38458,17 @@ │ │ type : '(Lorg/jsl/wfwt/MainActivity;Lorg/jsl/wfwt/WalkieService$BinderImpl;)Lorg/jsl/wfwt/WalkieService$BinderImpl;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01ad10: |[01ad10] org.jsl.wfwt.MainActivity.access$402:(Lorg/jsl/wfwt/MainActivity;Lorg/jsl/wfwt/WalkieService$BinderImpl;)Lorg/jsl/wfwt/WalkieService$BinderImpl; │ │ -01ad20: 5b01 5e02 |0000: iput-object v1, v0, Lorg/jsl/wfwt/MainActivity;.m_binder:Lorg/jsl/wfwt/WalkieService$BinderImpl; // field@025e │ │ -01ad24: 1101 |0002: return-object v1 │ │ +01ad14: |[01ad14] org.jsl.wfwt.MainActivity.access$402:(Lorg/jsl/wfwt/MainActivity;Lorg/jsl/wfwt/WalkieService$BinderImpl;)Lorg/jsl/wfwt/WalkieService$BinderImpl; │ │ +01ad24: 5b01 5e02 |0000: iput-object v1, v0, Lorg/jsl/wfwt/MainActivity;.m_binder:Lorg/jsl/wfwt/WalkieService$BinderImpl; // field@025e │ │ +01ad28: 1101 |0002: return-object v1 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=37 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/MainActivity; │ │ 0x0000 - 0x0003 reg=1 (null) Lorg/jsl/wfwt/WalkieService$BinderImpl; │ │ │ │ @@ -38477,17 +38477,17 @@ │ │ type : '(Lorg/jsl/wfwt/MainActivity;)I' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01ac38: |[01ac38] org.jsl.wfwt.MainActivity.access$500:(Lorg/jsl/wfwt/MainActivity;)I │ │ -01ac48: 5200 5d02 |0000: iget v0, v0, Lorg/jsl/wfwt/MainActivity;.m_audioVolume:I // field@025d │ │ -01ac4c: 0f00 |0002: return v0 │ │ +01ac3c: |[01ac3c] org.jsl.wfwt.MainActivity.access$500:(Lorg/jsl/wfwt/MainActivity;)I │ │ +01ac4c: 5200 5d02 |0000: iget v0, v0, Lorg/jsl/wfwt/MainActivity;.m_audioVolume:I // field@025d │ │ +01ac50: 0f00 |0002: return v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=37 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/MainActivity; │ │ │ │ #11 : (in Lorg/jsl/wfwt/MainActivity;) │ │ @@ -38495,17 +38495,17 @@ │ │ type : '(Lorg/jsl/wfwt/MainActivity;I)I' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01ac50: |[01ac50] org.jsl.wfwt.MainActivity.access$502:(Lorg/jsl/wfwt/MainActivity;I)I │ │ -01ac60: 5901 5d02 |0000: iput v1, v0, Lorg/jsl/wfwt/MainActivity;.m_audioVolume:I // field@025d │ │ -01ac64: 0f01 |0002: return v1 │ │ +01ac54: |[01ac54] org.jsl.wfwt.MainActivity.access$502:(Lorg/jsl/wfwt/MainActivity;I)I │ │ +01ac64: 5901 5d02 |0000: iput v1, v0, Lorg/jsl/wfwt/MainActivity;.m_audioVolume:I // field@025d │ │ +01ac68: 0f01 |0002: return v1 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=37 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/MainActivity; │ │ 0x0000 - 0x0003 reg=1 (null) I │ │ │ │ @@ -38514,17 +38514,17 @@ │ │ type : '(Lorg/jsl/wfwt/MainActivity;Z)Z' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01a904: |[01a904] org.jsl.wfwt.MainActivity.access$602:(Lorg/jsl/wfwt/MainActivity;Z)Z │ │ -01a914: 5c01 6702 |0000: iput-boolean v1, v0, Lorg/jsl/wfwt/MainActivity;.m_useVolumeButtonsToTalk:Z // field@0267 │ │ -01a918: 0f01 |0002: return v1 │ │ +01a908: |[01a908] org.jsl.wfwt.MainActivity.access$602:(Lorg/jsl/wfwt/MainActivity;Z)Z │ │ +01a918: 5c01 6702 |0000: iput-boolean v1, v0, Lorg/jsl/wfwt/MainActivity;.m_useVolumeButtonsToTalk:Z // field@0267 │ │ +01a91c: 0f01 |0002: return v1 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=37 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/MainActivity; │ │ 0x0000 - 0x0003 reg=1 (null) Z │ │ │ │ @@ -38533,17 +38533,17 @@ │ │ type : '(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/SwitchButton;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01ace0: |[01ace0] org.jsl.wfwt.MainActivity.access$800:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/SwitchButton; │ │ -01acf0: 5400 5f02 |0000: iget-object v0, v0, Lorg/jsl/wfwt/MainActivity;.m_buttonTalk:Lorg/jsl/wfwt/SwitchButton; // field@025f │ │ -01acf4: 1100 |0002: return-object v0 │ │ +01ace4: |[01ace4] org.jsl.wfwt.MainActivity.access$800:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/SwitchButton; │ │ +01acf4: 5400 5f02 |0000: iget-object v0, v0, Lorg/jsl/wfwt/MainActivity;.m_buttonTalk:Lorg/jsl/wfwt/SwitchButton; // field@025f │ │ +01acf8: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=37 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/MainActivity; │ │ │ │ #14 : (in Lorg/jsl/wfwt/MainActivity;) │ │ @@ -38551,17 +38551,17 @@ │ │ type : '(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/MainActivity$ListViewAdapter;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01acc8: |[01acc8] org.jsl.wfwt.MainActivity.access$900:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/MainActivity$ListViewAdapter; │ │ -01acd8: 5400 6102 |0000: iget-object v0, v0, Lorg/jsl/wfwt/MainActivity;.m_listViewAdapter:Lorg/jsl/wfwt/MainActivity$ListViewAdapter; // field@0261 │ │ -01acdc: 1100 |0002: return-object v0 │ │ +01accc: |[01accc] org.jsl.wfwt.MainActivity.access$900:(Lorg/jsl/wfwt/MainActivity;)Lorg/jsl/wfwt/MainActivity$ListViewAdapter; │ │ +01acdc: 5400 6102 |0000: iget-object v0, v0, Lorg/jsl/wfwt/MainActivity;.m_listViewAdapter:Lorg/jsl/wfwt/MainActivity$ListViewAdapter; // field@0261 │ │ +01ace0: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=37 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/jsl/wfwt/MainActivity; │ │ │ │ Virtual methods - │ │ @@ -38570,24 +38570,24 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 1 │ │ outs : 3 │ │ insns size : 17 16-bit code units │ │ -01ad40: |[01ad40] org.jsl.wfwt.MainActivity.onBackPressed:()V │ │ -01ad50: 1200 |0000: const/4 v0, #int 0 // #0 │ │ -01ad52: 6e20 f604 0300 |0001: invoke-virtual {v3, v0}, Lorg/jsl/wfwt/MainActivity;.getPreferences:(I)Landroid/content/SharedPreferences; // method@04f6 │ │ -01ad58: 0c01 |0004: move-result-object v1 │ │ -01ad5a: 1a02 fb03 |0005: const-string v2, "back-button-exits" // string@03fb │ │ -01ad5e: 7230 2b00 2100 |0007: invoke-interface {v1, v2, v0}, Landroid/content/SharedPreferences;.getBoolean:(Ljava/lang/String;Z)Z // method@002b │ │ -01ad64: 0a00 |000a: move-result v0 │ │ -01ad66: 5c30 6002 |000b: iput-boolean v0, v3, Lorg/jsl/wfwt/MainActivity;.m_exit:Z // field@0260 │ │ -01ad6a: 6f10 0100 0300 |000d: invoke-super {v3}, Landroid/app/Activity;.onBackPressed:()V // method@0001 │ │ -01ad70: 0e00 |0010: return-void │ │ +01ad44: |[01ad44] org.jsl.wfwt.MainActivity.onBackPressed:()V │ │ +01ad54: 1200 |0000: const/4 v0, #int 0 // #0 │ │ +01ad56: 6e20 f604 0300 |0001: invoke-virtual {v3, v0}, Lorg/jsl/wfwt/MainActivity;.getPreferences:(I)Landroid/content/SharedPreferences; // method@04f6 │ │ +01ad5c: 0c01 |0004: move-result-object v1 │ │ +01ad5e: 1a02 fb03 |0005: const-string v2, "back-button-exits" // string@03fb │ │ +01ad62: 7230 2b00 2100 |0007: invoke-interface {v1, v2, v0}, Landroid/content/SharedPreferences;.getBoolean:(Ljava/lang/String;Z)Z // method@002b │ │ +01ad68: 0a00 |000a: move-result v0 │ │ +01ad6a: 5c30 6002 |000b: iput-boolean v0, v3, Lorg/jsl/wfwt/MainActivity;.m_exit:Z // field@0260 │ │ +01ad6e: 6f10 0100 0300 |000d: invoke-super {v3}, Landroid/app/Activity;.onBackPressed:()V // method@0001 │ │ +01ad74: 0e00 |0010: return-void │ │ catches : (none) │ │ positions : │ │ 0x0001 line=590 │ │ 0x0007 line=591 │ │ 0x000d line=592 │ │ locals : │ │ 0x0000 - 0x0011 reg=3 this Lorg/jsl/wfwt/MainActivity; │ │ @@ -38597,46 +38597,46 @@ │ │ type : '(Landroid/os/Bundle;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 73 16-bit code units │ │ -01ad74: |[01ad74] org.jsl.wfwt.MainActivity.onCreate:(Landroid/os/Bundle;)V │ │ -01ad84: 6f20 0200 2100 |0000: invoke-super {v1, v2}, Landroid/app/Activity;.onCreate:(Landroid/os/Bundle;)V // method@0002 │ │ -01ad8a: 1a02 a002 |0003: const-string v2, "MainActivity" // string@02a0 │ │ -01ad8e: 1a00 f605 |0005: const-string v0, "onCreate" // string@05f6 │ │ -01ad92: 7120 6100 0200 |0007: invoke-static {v2, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -01ad98: 6e10 fa04 0100 |000a: invoke-virtual {v1}, Lorg/jsl/wfwt/MainActivity;.getWindow:()Landroid/view/Window; // method@04fa │ │ -01ad9e: 0c02 |000d: move-result-object v2 │ │ -01ada0: 1300 8000 |000e: const/16 v0, #int 128 // #80 │ │ -01ada4: 6e20 7700 0200 |0010: invoke-virtual {v2, v0}, Landroid/view/Window;.addFlags:(I)V // method@0077 │ │ -01adaa: 1402 0400 037f |0013: const v2, #float 1.74129e+38 // #7f030004 │ │ -01adb0: 6e20 0905 2100 |0016: invoke-virtual {v1, v2}, Lorg/jsl/wfwt/MainActivity;.setContentView:(I)V // method@0509 │ │ -01adb6: 2202 2f01 |0019: new-instance v2, Lorg/jsl/wfwt/MainActivity$ListViewAdapter; // type@012f │ │ -01adba: 7020 d804 1200 |001b: invoke-direct {v2, v1}, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.:(Lorg/jsl/wfwt/MainActivity;)V // method@04d8 │ │ -01adc0: 5b12 6102 |001e: iput-object v2, v1, Lorg/jsl/wfwt/MainActivity;.m_listViewAdapter:Lorg/jsl/wfwt/MainActivity$ListViewAdapter; // field@0261 │ │ -01adc4: 1402 0a00 027f |0020: const v2, #float 1.728e+38 // #7f02000a │ │ -01adca: 6e20 f204 2100 |0023: invoke-virtual {v1, v2}, Lorg/jsl/wfwt/MainActivity;.findViewById:(I)Landroid/view/View; // method@04f2 │ │ -01add0: 0c02 |0026: move-result-object v2 │ │ -01add2: 1f02 4700 |0027: check-cast v2, Landroid/widget/ListView; // type@0047 │ │ -01add6: 5410 6102 |0029: iget-object v0, v1, Lorg/jsl/wfwt/MainActivity;.m_listViewAdapter:Lorg/jsl/wfwt/MainActivity$ListViewAdapter; // field@0261 │ │ -01adda: 6e20 8400 0200 |002b: invoke-virtual {v2, v0}, Landroid/widget/ListView;.setAdapter:(Landroid/widget/ListAdapter;)V // method@0084 │ │ -01ade0: 1402 1100 027f |002e: const v2, #float 1.728e+38 // #7f020011 │ │ -01ade6: 6e20 f204 2100 |0031: invoke-virtual {v1, v2}, Lorg/jsl/wfwt/MainActivity;.findViewById:(I)Landroid/view/View; // method@04f2 │ │ -01adec: 0c02 |0034: move-result-object v2 │ │ -01adee: 1f02 4900 |0035: check-cast v2, Landroid/widget/TextView; // type@0049 │ │ -01adf2: 1400 00ff 00ff |0037: const v0, #float -1.71465e+38 // #ff00ff00 │ │ -01adf8: 6e20 8a00 0200 |003a: invoke-virtual {v2, v0}, Landroid/widget/TextView;.setTextColor:(I)V // method@008a │ │ -01adfe: 1402 0300 027f |003d: const v2, #float 1.728e+38 // #7f020003 │ │ -01ae04: 6e20 f204 2100 |0040: invoke-virtual {v1, v2}, Lorg/jsl/wfwt/MainActivity;.findViewById:(I)Landroid/view/View; // method@04f2 │ │ -01ae0a: 0c02 |0043: move-result-object v2 │ │ -01ae0c: 1f02 4801 |0044: check-cast v2, Lorg/jsl/wfwt/SwitchButton; // type@0148 │ │ -01ae10: 5b12 5f02 |0046: iput-object v2, v1, Lorg/jsl/wfwt/MainActivity;.m_buttonTalk:Lorg/jsl/wfwt/SwitchButton; // field@025f │ │ -01ae14: 0e00 |0048: return-void │ │ +01ad78: |[01ad78] org.jsl.wfwt.MainActivity.onCreate:(Landroid/os/Bundle;)V │ │ +01ad88: 6f20 0200 2100 |0000: invoke-super {v1, v2}, Landroid/app/Activity;.onCreate:(Landroid/os/Bundle;)V // method@0002 │ │ +01ad8e: 1a02 a002 |0003: const-string v2, "MainActivity" // string@02a0 │ │ +01ad92: 1a00 f605 |0005: const-string v0, "onCreate" // string@05f6 │ │ +01ad96: 7120 6100 0200 |0007: invoke-static {v2, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +01ad9c: 6e10 fa04 0100 |000a: invoke-virtual {v1}, Lorg/jsl/wfwt/MainActivity;.getWindow:()Landroid/view/Window; // method@04fa │ │ +01ada2: 0c02 |000d: move-result-object v2 │ │ +01ada4: 1300 8000 |000e: const/16 v0, #int 128 // #80 │ │ +01ada8: 6e20 7700 0200 |0010: invoke-virtual {v2, v0}, Landroid/view/Window;.addFlags:(I)V // method@0077 │ │ +01adae: 1402 0400 037f |0013: const v2, #float 1.74129e+38 // #7f030004 │ │ +01adb4: 6e20 0905 2100 |0016: invoke-virtual {v1, v2}, Lorg/jsl/wfwt/MainActivity;.setContentView:(I)V // method@0509 │ │ +01adba: 2202 2f01 |0019: new-instance v2, Lorg/jsl/wfwt/MainActivity$ListViewAdapter; // type@012f │ │ +01adbe: 7020 d804 1200 |001b: invoke-direct {v2, v1}, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.:(Lorg/jsl/wfwt/MainActivity;)V // method@04d8 │ │ +01adc4: 5b12 6102 |001e: iput-object v2, v1, Lorg/jsl/wfwt/MainActivity;.m_listViewAdapter:Lorg/jsl/wfwt/MainActivity$ListViewAdapter; // field@0261 │ │ +01adc8: 1402 0a00 027f |0020: const v2, #float 1.728e+38 // #7f02000a │ │ +01adce: 6e20 f204 2100 |0023: invoke-virtual {v1, v2}, Lorg/jsl/wfwt/MainActivity;.findViewById:(I)Landroid/view/View; // method@04f2 │ │ +01add4: 0c02 |0026: move-result-object v2 │ │ +01add6: 1f02 4700 |0027: check-cast v2, Landroid/widget/ListView; // type@0047 │ │ +01adda: 5410 6102 |0029: iget-object v0, v1, Lorg/jsl/wfwt/MainActivity;.m_listViewAdapter:Lorg/jsl/wfwt/MainActivity$ListViewAdapter; // field@0261 │ │ +01adde: 6e20 8400 0200 |002b: invoke-virtual {v2, v0}, Landroid/widget/ListView;.setAdapter:(Landroid/widget/ListAdapter;)V // method@0084 │ │ +01ade4: 1402 1100 027f |002e: const v2, #float 1.728e+38 // #7f020011 │ │ +01adea: 6e20 f204 2100 |0031: invoke-virtual {v1, v2}, Lorg/jsl/wfwt/MainActivity;.findViewById:(I)Landroid/view/View; // method@04f2 │ │ +01adf0: 0c02 |0034: move-result-object v2 │ │ +01adf2: 1f02 4900 |0035: check-cast v2, Landroid/widget/TextView; // type@0049 │ │ +01adf6: 1400 00ff 00ff |0037: const v0, #float -1.71465e+38 // #ff00ff00 │ │ +01adfc: 6e20 8a00 0200 |003a: invoke-virtual {v2, v0}, Landroid/widget/TextView;.setTextColor:(I)V // method@008a │ │ +01ae02: 1402 0300 027f |003d: const v2, #float 1.728e+38 // #7f020003 │ │ +01ae08: 6e20 f204 2100 |0040: invoke-virtual {v1, v2}, Lorg/jsl/wfwt/MainActivity;.findViewById:(I)Landroid/view/View; // method@04f2 │ │ +01ae0e: 0c02 |0043: move-result-object v2 │ │ +01ae10: 1f02 4801 |0044: check-cast v2, Lorg/jsl/wfwt/SwitchButton; // type@0148 │ │ +01ae14: 5b12 5f02 |0046: iput-object v2, v1, Lorg/jsl/wfwt/MainActivity;.m_buttonTalk:Lorg/jsl/wfwt/SwitchButton; // field@025f │ │ +01ae18: 0e00 |0048: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=315 │ │ 0x0007 line=316 │ │ 0x000a line=318 │ │ 0x0016 line=320 │ │ 0x0019 line=322 │ │ @@ -38654,21 +38654,21 @@ │ │ type : '(Landroid/view/Menu;)Z' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 2 │ │ outs : 3 │ │ insns size : 11 16-bit code units │ │ -01a91c: |[01a91c] org.jsl.wfwt.MainActivity.onCreateOptionsMenu:(Landroid/view/Menu;)Z │ │ -01a92c: 6e10 f504 0200 |0000: invoke-virtual {v2}, Lorg/jsl/wfwt/MainActivity;.getMenuInflater:()Landroid/view/MenuInflater; // method@04f5 │ │ -01a932: 0c00 |0003: move-result-object v0 │ │ -01a934: 1501 047f |0004: const/high16 v1, #int 2130968576 // #7f04 │ │ -01a938: 6e30 6b00 1003 |0006: invoke-virtual {v0, v1, v3}, Landroid/view/MenuInflater;.inflate:(ILandroid/view/Menu;)V // method@006b │ │ -01a93e: 1213 |0009: const/4 v3, #int 1 // #1 │ │ -01a940: 0f03 |000a: return v3 │ │ +01a920: |[01a920] org.jsl.wfwt.MainActivity.onCreateOptionsMenu:(Landroid/view/Menu;)Z │ │ +01a930: 6e10 f504 0200 |0000: invoke-virtual {v2}, Lorg/jsl/wfwt/MainActivity;.getMenuInflater:()Landroid/view/MenuInflater; // method@04f5 │ │ +01a936: 0c00 |0003: move-result-object v0 │ │ +01a938: 1501 047f |0004: const/high16 v1, #int 2130968576 // #7f04 │ │ +01a93c: 6e30 6b00 1003 |0006: invoke-virtual {v0, v1, v3}, Landroid/view/MenuInflater;.inflate:(ILandroid/view/Menu;)V // method@006b │ │ +01a942: 1213 |0009: const/4 v3, #int 1 // #1 │ │ +01a944: 0f03 |000a: return v3 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=334 │ │ locals : │ │ 0x0000 - 0x000b reg=2 this Lorg/jsl/wfwt/MainActivity; │ │ 0x0000 - 0x000b reg=3 (null) Landroid/view/Menu; │ │ │ │ @@ -38677,20 +38677,20 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 11 16-bit code units │ │ -01ae18: |[01ae18] org.jsl.wfwt.MainActivity.onDestroy:()V │ │ -01ae28: 1a00 a002 |0000: const-string v0, "MainActivity" // string@02a0 │ │ -01ae2c: 1a01 fa05 |0002: const-string v1, "onDestroy" // string@05fa │ │ -01ae30: 7120 6400 1000 |0004: invoke-static {v0, v1}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -01ae36: 6f10 0300 0200 |0007: invoke-super {v2}, Landroid/app/Activity;.onDestroy:()V // method@0003 │ │ -01ae3c: 0e00 |000a: return-void │ │ +01ae1c: |[01ae1c] org.jsl.wfwt.MainActivity.onDestroy:()V │ │ +01ae2c: 1a00 a002 |0000: const-string v0, "MainActivity" // string@02a0 │ │ +01ae30: 1a01 fa05 |0002: const-string v1, "onDestroy" // string@05fa │ │ +01ae34: 7120 6400 1000 |0004: invoke-static {v0, v1}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +01ae3a: 6f10 0300 0200 |0007: invoke-super {v2}, Landroid/app/Activity;.onDestroy:()V // method@0003 │ │ +01ae40: 0e00 |000a: return-void │ │ catches : (none) │ │ positions : │ │ 0x0004 line=540 │ │ 0x0007 line=541 │ │ locals : │ │ 0x0000 - 0x000b reg=2 this Lorg/jsl/wfwt/MainActivity; │ │ │ │ @@ -38699,23 +38699,23 @@ │ │ type : '(Lorg/jsl/wfwt/AudioRecorder;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 2 │ │ outs : 3 │ │ insns size : 18 16-bit code units │ │ -01ae40: |[01ae40] org.jsl.wfwt.MainActivity.onInit:(Lorg/jsl/wfwt/AudioRecorder;)V │ │ -01ae50: 1a00 a002 |0000: const-string v0, "MainActivity" // string@02a0 │ │ -01ae54: 1a01 0006 |0002: const-string v1, "onInit" // string@0600 │ │ -01ae58: 7120 6100 1000 |0004: invoke-static {v0, v1}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -01ae5e: 3803 0a00 |0007: if-eqz v3, 0011 // +000a │ │ -01ae62: 2200 2901 |0009: new-instance v0, Lorg/jsl/wfwt/MainActivity$1; // type@0129 │ │ -01ae66: 7030 ca04 2003 |000b: invoke-direct {v0, v2, v3}, Lorg/jsl/wfwt/MainActivity$1;.:(Lorg/jsl/wfwt/MainActivity;Lorg/jsl/wfwt/AudioRecorder;)V // method@04ca │ │ -01ae6c: 6e20 0805 0200 |000e: invoke-virtual {v2, v0}, Lorg/jsl/wfwt/MainActivity;.runOnUiThread:(Ljava/lang/Runnable;)V // method@0508 │ │ -01ae72: 0e00 |0011: return-void │ │ +01ae44: |[01ae44] org.jsl.wfwt.MainActivity.onInit:(Lorg/jsl/wfwt/AudioRecorder;)V │ │ +01ae54: 1a00 a002 |0000: const-string v0, "MainActivity" // string@02a0 │ │ +01ae58: 1a01 0006 |0002: const-string v1, "onInit" // string@0600 │ │ +01ae5c: 7120 6100 1000 |0004: invoke-static {v0, v1}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +01ae62: 3803 0a00 |0007: if-eqz v3, 0011 // +000a │ │ +01ae66: 2200 2901 |0009: new-instance v0, Lorg/jsl/wfwt/MainActivity$1; // type@0129 │ │ +01ae6a: 7030 ca04 2003 |000b: invoke-direct {v0, v2, v3}, Lorg/jsl/wfwt/MainActivity$1;.:(Lorg/jsl/wfwt/MainActivity;Lorg/jsl/wfwt/AudioRecorder;)V // method@04ca │ │ +01ae70: 6e20 0805 0200 |000e: invoke-virtual {v2, v0}, Lorg/jsl/wfwt/MainActivity;.runOnUiThread:(Ljava/lang/Runnable;)V // method@0508 │ │ +01ae76: 0e00 |0011: return-void │ │ catches : (none) │ │ positions : │ │ 0x0004 line=267 │ │ 0x0009 line=270 │ │ locals : │ │ 0x0000 - 0x0012 reg=2 this Lorg/jsl/wfwt/MainActivity; │ │ 0x0000 - 0x0012 reg=3 (null) Lorg/jsl/wfwt/AudioRecorder; │ │ @@ -38725,38 +38725,38 @@ │ │ type : '(ILandroid/view/KeyEvent;)Z' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 3 │ │ outs : 3 │ │ insns size : 45 16-bit code units │ │ -01a944: |[01a944] org.jsl.wfwt.MainActivity.onKeyDown:(ILandroid/view/KeyEvent;)Z │ │ -01a954: 5510 6702 |0000: iget-boolean v0, v1, Lorg/jsl/wfwt/MainActivity;.m_useVolumeButtonsToTalk:Z // field@0267 │ │ -01a958: 3800 2600 |0002: if-eqz v0, 0028 // +0026 │ │ -01a95c: 1300 1800 |0004: const/16 v0, #int 24 // #18 │ │ -01a960: 3202 0600 |0006: if-eq v2, v0, 000c // +0006 │ │ -01a964: 1300 1900 |0008: const/16 v0, #int 25 // #19 │ │ -01a968: 3302 1e00 |000a: if-ne v2, v0, 0028 // +001e │ │ -01a96c: 5512 6202 |000c: iget-boolean v2, v1, Lorg/jsl/wfwt/MainActivity;.m_ptt:Z // field@0262 │ │ -01a970: 1213 |000e: const/4 v3, #int 1 // #1 │ │ -01a972: 3902 1800 |000f: if-nez v2, 0027 // +0018 │ │ -01a976: 5212 6302 |0011: iget v2, v1, Lorg/jsl/wfwt/MainActivity;.m_receivers:I // field@0263 │ │ -01a97a: 3902 0800 |0013: if-nez v2, 001b // +0008 │ │ -01a97e: 5412 5c02 |0015: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@025c │ │ -01a982: 6e20 5304 3200 |0017: invoke-virtual {v2, v3}, Lorg/jsl/wfwt/AudioRecorder;.startRecording:(Z)V // method@0453 │ │ -01a988: 2806 |001a: goto 0020 // +0006 │ │ -01a98a: 5412 5c02 |001b: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@025c │ │ -01a98e: 6e20 4f04 3200 |001d: invoke-virtual {v2, v3}, Lorg/jsl/wfwt/AudioRecorder;.setPTT:(Z)V // method@044f │ │ -01a994: 5c13 6202 |0020: iput-boolean v3, v1, Lorg/jsl/wfwt/MainActivity;.m_ptt:Z // field@0262 │ │ -01a998: 5412 5f02 |0022: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity;.m_buttonTalk:Lorg/jsl/wfwt/SwitchButton; // field@025f │ │ -01a99c: 6e20 6005 3200 |0024: invoke-virtual {v2, v3}, Lorg/jsl/wfwt/SwitchButton;.setPressed:(Z)V // method@0560 │ │ -01a9a2: 0f03 |0027: return v3 │ │ -01a9a4: 6f30 0400 2103 |0028: invoke-super {v1, v2, v3}, Landroid/app/Activity;.onKeyDown:(ILandroid/view/KeyEvent;)Z // method@0004 │ │ -01a9aa: 0a02 |002b: move-result v2 │ │ -01a9ac: 0f02 |002c: return v2 │ │ +01a948: |[01a948] org.jsl.wfwt.MainActivity.onKeyDown:(ILandroid/view/KeyEvent;)Z │ │ +01a958: 5510 6702 |0000: iget-boolean v0, v1, Lorg/jsl/wfwt/MainActivity;.m_useVolumeButtonsToTalk:Z // field@0267 │ │ +01a95c: 3800 2600 |0002: if-eqz v0, 0028 // +0026 │ │ +01a960: 1300 1800 |0004: const/16 v0, #int 24 // #18 │ │ +01a964: 3202 0600 |0006: if-eq v2, v0, 000c // +0006 │ │ +01a968: 1300 1900 |0008: const/16 v0, #int 25 // #19 │ │ +01a96c: 3302 1e00 |000a: if-ne v2, v0, 0028 // +001e │ │ +01a970: 5512 6202 |000c: iget-boolean v2, v1, Lorg/jsl/wfwt/MainActivity;.m_ptt:Z // field@0262 │ │ +01a974: 1213 |000e: const/4 v3, #int 1 // #1 │ │ +01a976: 3902 1800 |000f: if-nez v2, 0027 // +0018 │ │ +01a97a: 5212 6302 |0011: iget v2, v1, Lorg/jsl/wfwt/MainActivity;.m_receivers:I // field@0263 │ │ +01a97e: 3902 0800 |0013: if-nez v2, 001b // +0008 │ │ +01a982: 5412 5c02 |0015: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@025c │ │ +01a986: 6e20 5304 3200 |0017: invoke-virtual {v2, v3}, Lorg/jsl/wfwt/AudioRecorder;.startRecording:(Z)V // method@0453 │ │ +01a98c: 2806 |001a: goto 0020 // +0006 │ │ +01a98e: 5412 5c02 |001b: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@025c │ │ +01a992: 6e20 4f04 3200 |001d: invoke-virtual {v2, v3}, Lorg/jsl/wfwt/AudioRecorder;.setPTT:(Z)V // method@044f │ │ +01a998: 5c13 6202 |0020: iput-boolean v3, v1, Lorg/jsl/wfwt/MainActivity;.m_ptt:Z // field@0262 │ │ +01a99c: 5412 5f02 |0022: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity;.m_buttonTalk:Lorg/jsl/wfwt/SwitchButton; // field@025f │ │ +01a9a0: 6e20 6005 3200 |0024: invoke-virtual {v2, v3}, Lorg/jsl/wfwt/SwitchButton;.setPressed:(Z)V // method@0560 │ │ +01a9a6: 0f03 |0027: return v3 │ │ +01a9a8: 6f30 0400 2103 |0028: invoke-super {v1, v2, v3}, Landroid/app/Activity;.onKeyDown:(ILandroid/view/KeyEvent;)Z // method@0004 │ │ +01a9ae: 0a02 |002b: move-result v2 │ │ +01a9b0: 0f02 |002c: return v2 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=546 │ │ 0x000c line=551 │ │ 0x0011 line=553 │ │ 0x0015 line=554 │ │ 0x001b line=556 │ │ @@ -38773,36 +38773,36 @@ │ │ type : '(ILandroid/view/KeyEvent;)Z' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 3 │ │ outs : 3 │ │ insns size : 40 16-bit code units │ │ -01a9b0: |[01a9b0] org.jsl.wfwt.MainActivity.onKeyUp:(ILandroid/view/KeyEvent;)Z │ │ -01a9c0: 5510 6702 |0000: iget-boolean v0, v1, Lorg/jsl/wfwt/MainActivity;.m_useVolumeButtonsToTalk:Z // field@0267 │ │ -01a9c4: 3800 2100 |0002: if-eqz v0, 0023 // +0021 │ │ -01a9c8: 1300 1800 |0004: const/16 v0, #int 24 // #18 │ │ -01a9cc: 3202 0600 |0006: if-eq v2, v0, 000c // +0006 │ │ -01a9d0: 1300 1900 |0008: const/16 v0, #int 25 // #19 │ │ -01a9d4: 3302 1900 |000a: if-ne v2, v0, 0023 // +0019 │ │ -01a9d8: 5512 6202 |000c: iget-boolean v2, v1, Lorg/jsl/wfwt/MainActivity;.m_ptt:Z // field@0262 │ │ -01a9dc: 3802 1300 |000e: if-eqz v2, 0021 // +0013 │ │ -01a9e0: 5212 6302 |0010: iget v2, v1, Lorg/jsl/wfwt/MainActivity;.m_receivers:I // field@0263 │ │ -01a9e4: 3902 0700 |0012: if-nez v2, 0019 // +0007 │ │ -01a9e8: 5412 5c02 |0014: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@025c │ │ -01a9ec: 6e10 5404 0200 |0016: invoke-virtual {v2}, Lorg/jsl/wfwt/AudioRecorder;.stopRecording:()V // method@0454 │ │ -01a9f2: 1202 |0019: const/4 v2, #int 0 // #0 │ │ -01a9f4: 5c12 6202 |001a: iput-boolean v2, v1, Lorg/jsl/wfwt/MainActivity;.m_ptt:Z // field@0262 │ │ -01a9f8: 5413 5f02 |001c: iget-object v3, v1, Lorg/jsl/wfwt/MainActivity;.m_buttonTalk:Lorg/jsl/wfwt/SwitchButton; // field@025f │ │ -01a9fc: 6e20 6005 2300 |001e: invoke-virtual {v3, v2}, Lorg/jsl/wfwt/SwitchButton;.setPressed:(Z)V // method@0560 │ │ -01aa02: 1212 |0021: const/4 v2, #int 1 // #1 │ │ -01aa04: 0f02 |0022: return v2 │ │ -01aa06: 6f30 0500 2103 |0023: invoke-super {v1, v2, v3}, Landroid/app/Activity;.onKeyUp:(ILandroid/view/KeyEvent;)Z // method@0005 │ │ -01aa0c: 0a02 |0026: move-result v2 │ │ -01aa0e: 0f02 |0027: return v2 │ │ +01a9b4: |[01a9b4] org.jsl.wfwt.MainActivity.onKeyUp:(ILandroid/view/KeyEvent;)Z │ │ +01a9c4: 5510 6702 |0000: iget-boolean v0, v1, Lorg/jsl/wfwt/MainActivity;.m_useVolumeButtonsToTalk:Z // field@0267 │ │ +01a9c8: 3800 2100 |0002: if-eqz v0, 0023 // +0021 │ │ +01a9cc: 1300 1800 |0004: const/16 v0, #int 24 // #18 │ │ +01a9d0: 3202 0600 |0006: if-eq v2, v0, 000c // +0006 │ │ +01a9d4: 1300 1900 |0008: const/16 v0, #int 25 // #19 │ │ +01a9d8: 3302 1900 |000a: if-ne v2, v0, 0023 // +0019 │ │ +01a9dc: 5512 6202 |000c: iget-boolean v2, v1, Lorg/jsl/wfwt/MainActivity;.m_ptt:Z // field@0262 │ │ +01a9e0: 3802 1300 |000e: if-eqz v2, 0021 // +0013 │ │ +01a9e4: 5212 6302 |0010: iget v2, v1, Lorg/jsl/wfwt/MainActivity;.m_receivers:I // field@0263 │ │ +01a9e8: 3902 0700 |0012: if-nez v2, 0019 // +0007 │ │ +01a9ec: 5412 5c02 |0014: iget-object v2, v1, Lorg/jsl/wfwt/MainActivity;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@025c │ │ +01a9f0: 6e10 5404 0200 |0016: invoke-virtual {v2}, Lorg/jsl/wfwt/AudioRecorder;.stopRecording:()V // method@0454 │ │ +01a9f6: 1202 |0019: const/4 v2, #int 0 // #0 │ │ +01a9f8: 5c12 6202 |001a: iput-boolean v2, v1, Lorg/jsl/wfwt/MainActivity;.m_ptt:Z // field@0262 │ │ +01a9fc: 5413 5f02 |001c: iget-object v3, v1, Lorg/jsl/wfwt/MainActivity;.m_buttonTalk:Lorg/jsl/wfwt/SwitchButton; // field@025f │ │ +01aa00: 6e20 6005 2300 |001e: invoke-virtual {v3, v2}, Lorg/jsl/wfwt/SwitchButton;.setPressed:(Z)V // method@0560 │ │ +01aa06: 1212 |0021: const/4 v2, #int 1 // #1 │ │ +01aa08: 0f02 |0022: return v2 │ │ +01aa0a: 6f30 0500 2103 |0023: invoke-super {v1, v2, v3}, Landroid/app/Activity;.onKeyUp:(ILandroid/view/KeyEvent;)Z // method@0005 │ │ +01aa10: 0a02 |0026: move-result v2 │ │ +01aa12: 0f02 |0027: return v2 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=569 │ │ 0x000c line=574 │ │ 0x0010 line=576 │ │ 0x0014 line=577 │ │ 0x001a line=579 │ │ @@ -38818,48 +38818,48 @@ │ │ type : '(IZ)V' │ │ access : 0x0000 () │ │ code - │ │ registers : 5 │ │ ins : 3 │ │ outs : 2 │ │ insns size : 65 16-bit code units │ │ -01ae74: |[01ae74] org.jsl.wfwt.MainActivity.onListViewItemPressed:(IZ)V │ │ -01ae84: 5420 6102 |0000: iget-object v0, v2, Lorg/jsl/wfwt/MainActivity;.m_listViewAdapter:Lorg/jsl/wfwt/MainActivity$ListViewAdapter; // field@0261 │ │ -01ae88: 6e20 dc04 3000 |0002: invoke-virtual {v0, v3}, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.getItem:(I)Lorg/jsl/wfwt/StationInfo; // method@04dc │ │ -01ae8e: 0c03 |0005: move-result-object v3 │ │ -01ae90: 3803 3300 |0006: if-eqz v3, 0039 // +0033 │ │ -01ae94: 1200 |0008: const/4 v0, #int 0 // #0 │ │ -01ae96: 1211 |0009: const/4 v1, #int 1 // #1 │ │ -01ae98: 3804 1900 |000a: if-eqz v4, 0023 // +0019 │ │ -01ae9c: 5433 ba02 |000c: iget-object v3, v3, Lorg/jsl/wfwt/StationInfo;.channelSession:Lorg/jsl/wfwt/ChannelSession; // field@02ba │ │ -01aea0: 6e20 ab04 1300 |000e: invoke-virtual {v3, v1}, Lorg/jsl/wfwt/ChannelSession;.setSendAudio:(Z)V // method@04ab │ │ -01aea6: 5223 6302 |0011: iget v3, v2, Lorg/jsl/wfwt/MainActivity;.m_receivers:I // field@0263 │ │ -01aeaa: d804 0301 |0013: add-int/lit8 v4, v3, #int 1 // #01 │ │ -01aeae: 5924 6302 |0015: iput v4, v2, Lorg/jsl/wfwt/MainActivity;.m_receivers:I // field@0263 │ │ -01aeb2: 5524 6202 |0017: iget-boolean v4, v2, Lorg/jsl/wfwt/MainActivity;.m_ptt:Z // field@0262 │ │ -01aeb6: 3904 2700 |0019: if-nez v4, 0040 // +0027 │ │ -01aeba: 3903 2500 |001b: if-nez v3, 0040 // +0025 │ │ -01aebe: 5423 5c02 |001d: iget-object v3, v2, Lorg/jsl/wfwt/MainActivity;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@025c │ │ -01aec2: 6e20 5304 0300 |001f: invoke-virtual {v3, v0}, Lorg/jsl/wfwt/AudioRecorder;.startRecording:(Z)V // method@0453 │ │ -01aec8: 281e |0022: goto 0040 // +001e │ │ -01aeca: 5433 ba02 |0023: iget-object v3, v3, Lorg/jsl/wfwt/StationInfo;.channelSession:Lorg/jsl/wfwt/ChannelSession; // field@02ba │ │ -01aece: 6e20 ab04 0300 |0025: invoke-virtual {v3, v0}, Lorg/jsl/wfwt/ChannelSession;.setSendAudio:(Z)V // method@04ab │ │ -01aed4: 5223 6302 |0028: iget v3, v2, Lorg/jsl/wfwt/MainActivity;.m_receivers:I // field@0263 │ │ -01aed8: b113 |002a: sub-int/2addr v3, v1 │ │ -01aeda: 5923 6302 |002b: iput v3, v2, Lorg/jsl/wfwt/MainActivity;.m_receivers:I // field@0263 │ │ -01aede: 5524 6202 |002d: iget-boolean v4, v2, Lorg/jsl/wfwt/MainActivity;.m_ptt:Z // field@0262 │ │ -01aee2: 3904 1100 |002f: if-nez v4, 0040 // +0011 │ │ -01aee6: 3903 0f00 |0031: if-nez v3, 0040 // +000f │ │ -01aeea: 5423 5c02 |0033: iget-object v3, v2, Lorg/jsl/wfwt/MainActivity;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@025c │ │ -01aeee: 6e10 5404 0300 |0035: invoke-virtual {v3}, Lorg/jsl/wfwt/AudioRecorder;.stopRecording:()V // method@0454 │ │ -01aef4: 2808 |0038: goto 0040 // +0008 │ │ -01aef6: 1a03 a002 |0039: const-string v3, "MainActivity" // string@02a0 │ │ -01aefa: 1a04 0201 |003b: const-string v4, "Internal error: stationInfo=null" // string@0102 │ │ -01aefe: 7120 6200 4300 |003d: invoke-static {v3, v4}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ -01af04: 0e00 |0040: return-void │ │ +01ae78: |[01ae78] org.jsl.wfwt.MainActivity.onListViewItemPressed:(IZ)V │ │ +01ae88: 5420 6102 |0000: iget-object v0, v2, Lorg/jsl/wfwt/MainActivity;.m_listViewAdapter:Lorg/jsl/wfwt/MainActivity$ListViewAdapter; // field@0261 │ │ +01ae8c: 6e20 dc04 3000 |0002: invoke-virtual {v0, v3}, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.getItem:(I)Lorg/jsl/wfwt/StationInfo; // method@04dc │ │ +01ae92: 0c03 |0005: move-result-object v3 │ │ +01ae94: 3803 3300 |0006: if-eqz v3, 0039 // +0033 │ │ +01ae98: 1200 |0008: const/4 v0, #int 0 // #0 │ │ +01ae9a: 1211 |0009: const/4 v1, #int 1 // #1 │ │ +01ae9c: 3804 1900 |000a: if-eqz v4, 0023 // +0019 │ │ +01aea0: 5433 ba02 |000c: iget-object v3, v3, Lorg/jsl/wfwt/StationInfo;.channelSession:Lorg/jsl/wfwt/ChannelSession; // field@02ba │ │ +01aea4: 6e20 ab04 1300 |000e: invoke-virtual {v3, v1}, Lorg/jsl/wfwt/ChannelSession;.setSendAudio:(Z)V // method@04ab │ │ +01aeaa: 5223 6302 |0011: iget v3, v2, Lorg/jsl/wfwt/MainActivity;.m_receivers:I // field@0263 │ │ +01aeae: d804 0301 |0013: add-int/lit8 v4, v3, #int 1 // #01 │ │ +01aeb2: 5924 6302 |0015: iput v4, v2, Lorg/jsl/wfwt/MainActivity;.m_receivers:I // field@0263 │ │ +01aeb6: 5524 6202 |0017: iget-boolean v4, v2, Lorg/jsl/wfwt/MainActivity;.m_ptt:Z // field@0262 │ │ +01aeba: 3904 2700 |0019: if-nez v4, 0040 // +0027 │ │ +01aebe: 3903 2500 |001b: if-nez v3, 0040 // +0025 │ │ +01aec2: 5423 5c02 |001d: iget-object v3, v2, Lorg/jsl/wfwt/MainActivity;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@025c │ │ +01aec6: 6e20 5304 0300 |001f: invoke-virtual {v3, v0}, Lorg/jsl/wfwt/AudioRecorder;.startRecording:(Z)V // method@0453 │ │ +01aecc: 281e |0022: goto 0040 // +001e │ │ +01aece: 5433 ba02 |0023: iget-object v3, v3, Lorg/jsl/wfwt/StationInfo;.channelSession:Lorg/jsl/wfwt/ChannelSession; // field@02ba │ │ +01aed2: 6e20 ab04 0300 |0025: invoke-virtual {v3, v0}, Lorg/jsl/wfwt/ChannelSession;.setSendAudio:(Z)V // method@04ab │ │ +01aed8: 5223 6302 |0028: iget v3, v2, Lorg/jsl/wfwt/MainActivity;.m_receivers:I // field@0263 │ │ +01aedc: b113 |002a: sub-int/2addr v3, v1 │ │ +01aede: 5923 6302 |002b: iput v3, v2, Lorg/jsl/wfwt/MainActivity;.m_receivers:I // field@0263 │ │ +01aee2: 5524 6202 |002d: iget-boolean v4, v2, Lorg/jsl/wfwt/MainActivity;.m_ptt:Z // field@0262 │ │ +01aee6: 3904 1100 |002f: if-nez v4, 0040 // +0011 │ │ +01aeea: 3903 0f00 |0031: if-nez v3, 0040 // +000f │ │ +01aeee: 5423 5c02 |0033: iget-object v3, v2, Lorg/jsl/wfwt/MainActivity;.m_audioRecorder:Lorg/jsl/wfwt/AudioRecorder; // field@025c │ │ +01aef2: 6e10 5404 0300 |0035: invoke-virtual {v3}, Lorg/jsl/wfwt/AudioRecorder;.stopRecording:()V // method@0454 │ │ +01aef8: 2808 |0038: goto 0040 // +0008 │ │ +01aefa: 1a03 a002 |0039: const-string v3, "MainActivity" // string@02a0 │ │ +01aefe: 1a04 0201 |003b: const-string v4, "Internal error: stationInfo=null" // string@0102 │ │ +01af02: 7120 6200 4300 |003d: invoke-static {v3, v4}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;)I // method@0062 │ │ +01af08: 0e00 |0040: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=241 │ │ 0x000c line=246 │ │ 0x0011 line=247 │ │ 0x0017 line=248 │ │ 0x001d line=249 │ │ @@ -38878,129 +38878,129 @@ │ │ type : '(Landroid/view/MenuItem;)Z' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 17 │ │ ins : 2 │ │ outs : 8 │ │ insns size : 256 16-bit code units │ │ -01aa10: |[01aa10] org.jsl.wfwt.MainActivity.onOptionsItemSelected:(Landroid/view/MenuItem;)Z │ │ -01aa20: 07f8 |0000: move-object v8, v15 │ │ -01aa22: 7110 6800 0f00 |0001: invoke-static {v15}, Landroid/view/LayoutInflater;.from:(Landroid/content/Context;)Landroid/view/LayoutInflater; // method@0068 │ │ -01aa28: 0c00 |0004: move-result-object v0 │ │ -01aa2a: 2209 0700 |0005: new-instance v9, Landroid/app/AlertDialog$Builder; // type@0007 │ │ -01aa2e: 7020 0900 f900 |0007: invoke-direct {v9, v15}, Landroid/app/AlertDialog$Builder;.:(Landroid/content/Context;)V // method@0009 │ │ -01aa34: 7801 6c00 1000 |000a: invoke-interface/range {v16}, Landroid/view/MenuItem;.getItemId:()I // method@006c │ │ -01aa3a: 0a01 |000d: move-result v1 │ │ -01aa3c: 1212 |000e: const/4 v2, #int 1 // #1 │ │ -01aa3e: 120a |000f: const/4 v10, #int 0 // #0 │ │ -01aa40: 2b01 e600 0000 |0010: packed-switch v1, 000000f6 // +000000e6 │ │ -01aa46: 2900 de00 |0013: goto/16 00f1 // +00de │ │ -01aa4a: 1201 |0015: const/4 v1, #int 0 // #0 │ │ -01aa4c: 6e20 f604 1f00 |0016: invoke-virtual {v15, v1}, Lorg/jsl/wfwt/MainActivity;.getPreferences:(I)Landroid/content/SharedPreferences; // method@04f6 │ │ -01aa52: 0c03 |0019: move-result-object v3 │ │ -01aa54: 1404 0100 037f |001a: const v4, #float 1.74129e+38 // #7f030001 │ │ -01aa5a: 6e30 6900 400a |001d: invoke-virtual {v0, v4, v10}, Landroid/view/LayoutInflater;.inflate:(ILandroid/view/ViewGroup;)Landroid/view/View; // method@0069 │ │ -01aa60: 0c00 |0020: move-result-object v0 │ │ -01aa62: 1404 0900 027f |0021: const v4, #float 1.728e+38 // #7f020009 │ │ -01aa68: 6e20 7100 4000 |0024: invoke-virtual {v0, v4}, Landroid/view/View;.findViewById:(I)Landroid/view/View; // method@0071 │ │ -01aa6e: 0c04 |0027: move-result-object v4 │ │ -01aa70: 1f04 4400 |0028: check-cast v4, Landroid/widget/EditText; // type@0044 │ │ -01aa74: 1405 0b00 027f |002a: const v5, #float 1.728e+38 // #7f02000b │ │ -01aa7a: 6e20 7100 5000 |002d: invoke-virtual {v0, v5}, Landroid/view/View;.findViewById:(I)Landroid/view/View; // method@0071 │ │ -01aa80: 0c05 |0030: move-result-object v5 │ │ -01aa82: 1f05 4800 |0031: check-cast v5, Landroid/widget/SeekBar; // type@0048 │ │ -01aa86: 1406 0500 027f |0033: const v6, #float 1.728e+38 // #7f020005 │ │ -01aa8c: 6e20 7100 6000 |0036: invoke-virtual {v0, v6}, Landroid/view/View;.findViewById:(I)Landroid/view/View; // method@0071 │ │ -01aa92: 0c06 |0039: move-result-object v6 │ │ -01aa94: 1f06 4300 |003a: check-cast v6, Landroid/widget/CheckBox; // type@0043 │ │ -01aa98: 1407 0800 027f |003c: const v7, #float 1.728e+38 // #7f020008 │ │ -01aa9e: 6e20 7100 7000 |003f: invoke-virtual {v0, v7}, Landroid/view/View;.findViewById:(I)Landroid/view/View; // method@0071 │ │ -01aaa4: 0c07 |0042: move-result-object v7 │ │ -01aaa6: 1f07 4300 |0043: check-cast v7, Landroid/widget/CheckBox; // type@0043 │ │ -01aaaa: 140b 0700 027f |0045: const v11, #float 1.728e+38 // #7f020007 │ │ -01aab0: 6e20 7100 b000 |0048: invoke-virtual {v0, v11}, Landroid/view/View;.findViewById:(I)Landroid/view/View; // method@0071 │ │ -01aab6: 0c0b |004b: move-result-object v11 │ │ -01aab8: 1f0b 4300 |004c: check-cast v11, Landroid/widget/CheckBox; // type@0043 │ │ -01aabc: 140c 0400 027f |004e: const v12, #float 1.728e+38 // #7f020004 │ │ -01aac2: 6e20 7100 c000 |0051: invoke-virtual {v0, v12}, Landroid/view/View;.findViewById:(I)Landroid/view/View; // method@0071 │ │ -01aac8: 0c0c |0054: move-result-object v12 │ │ -01aaca: 1f0c 4300 |0055: check-cast v12, Landroid/widget/CheckBox; // type@0043 │ │ -01aace: 548d 6602 |0057: iget-object v13, v8, Lorg/jsl/wfwt/MainActivity;.m_stationName:Ljava/lang/String; // field@0266 │ │ -01aad2: 6e20 7f00 d400 |0059: invoke-virtual {v4, v13}, Landroid/widget/EditText;.setText:(Ljava/lang/CharSequence;)V // method@007f │ │ -01aad8: 528d 5b02 |005c: iget v13, v8, Lorg/jsl/wfwt/MainActivity;.m_audioMaxVolume:I // field@025b │ │ -01aadc: 6e20 8600 d500 |005e: invoke-virtual {v5, v13}, Landroid/widget/SeekBar;.setMax:(I)V // method@0086 │ │ -01aae2: 528d 5d02 |0061: iget v13, v8, Lorg/jsl/wfwt/MainActivity;.m_audioVolume:I // field@025d │ │ -01aae6: 6e20 8700 d500 |0063: invoke-virtual {v5, v13}, Landroid/widget/SeekBar;.setProgress:(I)V // method@0087 │ │ -01aaec: 1a0d 0e04 |0066: const-string v13, "check-wifi-status" // string@040e │ │ -01aaf0: 7230 2b00 d302 |0068: invoke-interface {v3, v13, v2}, Landroid/content/SharedPreferences;.getBoolean:(Ljava/lang/String;Z)Z // method@002b │ │ -01aaf6: 0a0d |006b: move-result v13 │ │ -01aaf8: 6e20 7d00 d600 |006c: invoke-virtual {v6, v13}, Landroid/widget/CheckBox;.setChecked:(Z)V // method@007d │ │ -01aafe: 558d 6702 |006f: iget-boolean v13, v8, Lorg/jsl/wfwt/MainActivity;.m_useVolumeButtonsToTalk:Z // field@0267 │ │ -01ab02: 6e20 7d00 d700 |0071: invoke-virtual {v7, v13}, Landroid/widget/CheckBox;.setChecked:(Z)V // method@007d │ │ -01ab08: 1a0d 6706 |0074: const-string v13, "roger-beep" // string@0667 │ │ -01ab0c: 7230 2b00 d302 |0076: invoke-interface {v3, v13, v2}, Landroid/content/SharedPreferences;.getBoolean:(Ljava/lang/String;Z)Z // method@002b │ │ -01ab12: 0a0d |0079: move-result v13 │ │ -01ab14: 6e20 7d00 db00 |007a: invoke-virtual {v11, v13}, Landroid/widget/CheckBox;.setChecked:(Z)V // method@007d │ │ -01ab1a: 1a0d fb03 |007d: const-string v13, "back-button-exits" // string@03fb │ │ -01ab1e: 7230 2b00 d301 |007f: invoke-interface {v3, v13, v1}, Landroid/content/SharedPreferences;.getBoolean:(Ljava/lang/String;Z)Z // method@002b │ │ -01ab24: 0a01 |0082: move-result v1 │ │ -01ab26: 6e20 7d00 1c00 |0083: invoke-virtual {v12, v1}, Landroid/widget/CheckBox;.setChecked:(Z)V // method@007d │ │ -01ab2c: 1401 1100 067f |0086: const v1, #float 1.78117e+38 // #7f060011 │ │ -01ab32: 6e20 0e00 1900 |0089: invoke-virtual {v9, v1}, Landroid/app/AlertDialog$Builder;.setTitle:(I)Landroid/app/AlertDialog$Builder; // method@000e │ │ -01ab38: 6e20 0f00 0900 |008c: invoke-virtual {v9, v0}, Landroid/app/AlertDialog$Builder;.setView:(Landroid/view/View;)Landroid/app/AlertDialog$Builder; // method@000f │ │ -01ab3e: 6e20 0b00 2900 |008f: invoke-virtual {v9, v2}, Landroid/app/AlertDialog$Builder;.setCancelable:(Z)Landroid/app/AlertDialog$Builder; // method@000b │ │ -01ab44: 1400 1000 067f |0092: const v0, #float 1.78117e+38 // #7f060010 │ │ -01ab4a: 6e20 f804 0f00 |0095: invoke-virtual {v15, v0}, Lorg/jsl/wfwt/MainActivity;.getString:(I)Ljava/lang/String; // method@04f8 │ │ -01ab50: 0c0d |0098: move-result-object v13 │ │ -01ab52: 220e 3001 |0099: new-instance v14, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener; // type@0130 │ │ -01ab56: 07e0 |009b: move-object v0, v14 │ │ -01ab58: 07f1 |009c: move-object v1, v15 │ │ -01ab5a: 0742 |009d: move-object v2, v4 │ │ -01ab5c: 0753 |009e: move-object v3, v5 │ │ -01ab5e: 0764 |009f: move-object v4, v6 │ │ -01ab60: 0775 |00a0: move-object v5, v7 │ │ -01ab62: 07b6 |00a1: move-object v6, v11 │ │ -01ab64: 07c7 |00a2: move-object v7, v12 │ │ -01ab66: 7608 e004 0000 |00a3: invoke-direct/range {v0, v1, v2, v3, v4, v5, v6, v7}, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.:(Lorg/jsl/wfwt/MainActivity;Landroid/widget/EditText;Landroid/widget/SeekBar;Landroid/widget/CheckBox;Landroid/widget/CheckBox;Landroid/widget/CheckBox;Landroid/widget/CheckBox;)V // method@04e0 │ │ -01ab6c: 6e30 0d00 d90e |00a6: invoke-virtual {v9, v13, v14}, Landroid/app/AlertDialog$Builder;.setPositiveButton:(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; // method@000d │ │ -01ab72: 1400 0500 067f |00a9: const v0, #float 1.78117e+38 // #7f060005 │ │ -01ab78: 6e20 f804 0f00 |00ac: invoke-virtual {v15, v0}, Lorg/jsl/wfwt/MainActivity;.getString:(I)Ljava/lang/String; // method@04f8 │ │ -01ab7e: 0c00 |00af: move-result-object v0 │ │ -01ab80: 6e30 0c00 090a |00b0: invoke-virtual {v9, v0, v10}, Landroid/app/AlertDialog$Builder;.setNegativeButton:(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; // method@000c │ │ -01ab86: 6e10 0a00 0900 |00b3: invoke-virtual {v9}, Landroid/app/AlertDialog$Builder;.create:()Landroid/app/AlertDialog; // method@000a │ │ -01ab8c: 0c00 |00b6: move-result-object v0 │ │ -01ab8e: 6e10 1000 0000 |00b7: invoke-virtual {v0}, Landroid/app/AlertDialog;.show:()V // method@0010 │ │ -01ab94: 2837 |00ba: goto 00f1 // +0037 │ │ -01ab96: 5c82 6002 |00bb: iput-boolean v2, v8, Lorg/jsl/wfwt/MainActivity;.m_exit:Z // field@0260 │ │ -01ab9a: 6e10 f304 0f00 |00bd: invoke-virtual {v15}, Lorg/jsl/wfwt/MainActivity;.finish:()V // method@04f3 │ │ -01aba0: 2831 |00c0: goto 00f1 // +0031 │ │ -01aba2: 1501 037f |00c1: const/high16 v1, #int 2130903040 // #7f03 │ │ -01aba6: 6e30 6900 100a |00c3: invoke-virtual {v0, v1, v10}, Landroid/view/LayoutInflater;.inflate:(ILandroid/view/ViewGroup;)Landroid/view/View; // method@0069 │ │ -01abac: 0c00 |00c6: move-result-object v0 │ │ -01abae: 1401 0d00 027f |00c7: const v1, #float 1.728e+38 // #7f02000d │ │ -01abb4: 6e20 7100 1000 |00ca: invoke-virtual {v0, v1}, Landroid/view/View;.findViewById:(I)Landroid/view/View; // method@0071 │ │ -01abba: 0c01 |00cd: move-result-object v1 │ │ -01abbc: 1f01 4900 |00ce: check-cast v1, Landroid/widget/TextView; // type@0049 │ │ -01abc0: 7100 5e00 0000 |00d0: invoke-static {}, Landroid/text/method/LinkMovementMethod;.getInstance:()Landroid/text/method/MovementMethod; // method@005e │ │ -01abc6: 0c02 |00d3: move-result-object v2 │ │ -01abc8: 6e20 8800 2100 |00d4: invoke-virtual {v1, v2}, Landroid/widget/TextView;.setMovementMethod:(Landroid/text/method/MovementMethod;)V // method@0088 │ │ -01abce: 1401 0100 067f |00d7: const v1, #float 1.78117e+38 // #7f060001 │ │ -01abd4: 6e20 0e00 1900 |00da: invoke-virtual {v9, v1}, Landroid/app/AlertDialog$Builder;.setTitle:(I)Landroid/app/AlertDialog$Builder; // method@000e │ │ -01abda: 6e20 0f00 0900 |00dd: invoke-virtual {v9, v0}, Landroid/app/AlertDialog$Builder;.setView:(Landroid/view/View;)Landroid/app/AlertDialog$Builder; // method@000f │ │ -01abe0: 1400 0700 067f |00e0: const v0, #float 1.78117e+38 // #7f060007 │ │ -01abe6: 6e20 f804 0f00 |00e3: invoke-virtual {v15, v0}, Lorg/jsl/wfwt/MainActivity;.getString:(I)Ljava/lang/String; // method@04f8 │ │ -01abec: 0c00 |00e6: move-result-object v0 │ │ -01abee: 6e30 0d00 090a |00e7: invoke-virtual {v9, v0, v10}, Landroid/app/AlertDialog$Builder;.setPositiveButton:(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; // method@000d │ │ -01abf4: 6e10 0a00 0900 |00ea: invoke-virtual {v9}, Landroid/app/AlertDialog$Builder;.create:()Landroid/app/AlertDialog; // method@000a │ │ -01abfa: 0c00 |00ed: move-result-object v0 │ │ -01abfc: 6e10 1000 0000 |00ee: invoke-virtual {v0}, Landroid/app/AlertDialog;.show:()V // method@0010 │ │ -01ac02: 7502 0600 0f00 |00f1: invoke-super/range {v15, v16}, Landroid/app/Activity;.onOptionsItemSelected:(Landroid/view/MenuItem;)Z // method@0006 │ │ -01ac08: 0a00 |00f4: move-result v0 │ │ -01ac0a: 0f00 |00f5: return v0 │ │ -01ac0c: 0001 0300 0000 027f b100 0000 ab00 ... |00f6: packed-switch-data (10 units) │ │ +01aa14: |[01aa14] org.jsl.wfwt.MainActivity.onOptionsItemSelected:(Landroid/view/MenuItem;)Z │ │ +01aa24: 07f8 |0000: move-object v8, v15 │ │ +01aa26: 7110 6800 0f00 |0001: invoke-static {v15}, Landroid/view/LayoutInflater;.from:(Landroid/content/Context;)Landroid/view/LayoutInflater; // method@0068 │ │ +01aa2c: 0c00 |0004: move-result-object v0 │ │ +01aa2e: 2209 0700 |0005: new-instance v9, Landroid/app/AlertDialog$Builder; // type@0007 │ │ +01aa32: 7020 0900 f900 |0007: invoke-direct {v9, v15}, Landroid/app/AlertDialog$Builder;.:(Landroid/content/Context;)V // method@0009 │ │ +01aa38: 7801 6c00 1000 |000a: invoke-interface/range {v16}, Landroid/view/MenuItem;.getItemId:()I // method@006c │ │ +01aa3e: 0a01 |000d: move-result v1 │ │ +01aa40: 1212 |000e: const/4 v2, #int 1 // #1 │ │ +01aa42: 120a |000f: const/4 v10, #int 0 // #0 │ │ +01aa44: 2b01 e600 0000 |0010: packed-switch v1, 000000f6 // +000000e6 │ │ +01aa4a: 2900 de00 |0013: goto/16 00f1 // +00de │ │ +01aa4e: 1201 |0015: const/4 v1, #int 0 // #0 │ │ +01aa50: 6e20 f604 1f00 |0016: invoke-virtual {v15, v1}, Lorg/jsl/wfwt/MainActivity;.getPreferences:(I)Landroid/content/SharedPreferences; // method@04f6 │ │ +01aa56: 0c03 |0019: move-result-object v3 │ │ +01aa58: 1404 0100 037f |001a: const v4, #float 1.74129e+38 // #7f030001 │ │ +01aa5e: 6e30 6900 400a |001d: invoke-virtual {v0, v4, v10}, Landroid/view/LayoutInflater;.inflate:(ILandroid/view/ViewGroup;)Landroid/view/View; // method@0069 │ │ +01aa64: 0c00 |0020: move-result-object v0 │ │ +01aa66: 1404 0900 027f |0021: const v4, #float 1.728e+38 // #7f020009 │ │ +01aa6c: 6e20 7100 4000 |0024: invoke-virtual {v0, v4}, Landroid/view/View;.findViewById:(I)Landroid/view/View; // method@0071 │ │ +01aa72: 0c04 |0027: move-result-object v4 │ │ +01aa74: 1f04 4400 |0028: check-cast v4, Landroid/widget/EditText; // type@0044 │ │ +01aa78: 1405 0b00 027f |002a: const v5, #float 1.728e+38 // #7f02000b │ │ +01aa7e: 6e20 7100 5000 |002d: invoke-virtual {v0, v5}, Landroid/view/View;.findViewById:(I)Landroid/view/View; // method@0071 │ │ +01aa84: 0c05 |0030: move-result-object v5 │ │ +01aa86: 1f05 4800 |0031: check-cast v5, Landroid/widget/SeekBar; // type@0048 │ │ +01aa8a: 1406 0500 027f |0033: const v6, #float 1.728e+38 // #7f020005 │ │ +01aa90: 6e20 7100 6000 |0036: invoke-virtual {v0, v6}, Landroid/view/View;.findViewById:(I)Landroid/view/View; // method@0071 │ │ +01aa96: 0c06 |0039: move-result-object v6 │ │ +01aa98: 1f06 4300 |003a: check-cast v6, Landroid/widget/CheckBox; // type@0043 │ │ +01aa9c: 1407 0800 027f |003c: const v7, #float 1.728e+38 // #7f020008 │ │ +01aaa2: 6e20 7100 7000 |003f: invoke-virtual {v0, v7}, Landroid/view/View;.findViewById:(I)Landroid/view/View; // method@0071 │ │ +01aaa8: 0c07 |0042: move-result-object v7 │ │ +01aaaa: 1f07 4300 |0043: check-cast v7, Landroid/widget/CheckBox; // type@0043 │ │ +01aaae: 140b 0700 027f |0045: const v11, #float 1.728e+38 // #7f020007 │ │ +01aab4: 6e20 7100 b000 |0048: invoke-virtual {v0, v11}, Landroid/view/View;.findViewById:(I)Landroid/view/View; // method@0071 │ │ +01aaba: 0c0b |004b: move-result-object v11 │ │ +01aabc: 1f0b 4300 |004c: check-cast v11, Landroid/widget/CheckBox; // type@0043 │ │ +01aac0: 140c 0400 027f |004e: const v12, #float 1.728e+38 // #7f020004 │ │ +01aac6: 6e20 7100 c000 |0051: invoke-virtual {v0, v12}, Landroid/view/View;.findViewById:(I)Landroid/view/View; // method@0071 │ │ +01aacc: 0c0c |0054: move-result-object v12 │ │ +01aace: 1f0c 4300 |0055: check-cast v12, Landroid/widget/CheckBox; // type@0043 │ │ +01aad2: 548d 6602 |0057: iget-object v13, v8, Lorg/jsl/wfwt/MainActivity;.m_stationName:Ljava/lang/String; // field@0266 │ │ +01aad6: 6e20 7f00 d400 |0059: invoke-virtual {v4, v13}, Landroid/widget/EditText;.setText:(Ljava/lang/CharSequence;)V // method@007f │ │ +01aadc: 528d 5b02 |005c: iget v13, v8, Lorg/jsl/wfwt/MainActivity;.m_audioMaxVolume:I // field@025b │ │ +01aae0: 6e20 8600 d500 |005e: invoke-virtual {v5, v13}, Landroid/widget/SeekBar;.setMax:(I)V // method@0086 │ │ +01aae6: 528d 5d02 |0061: iget v13, v8, Lorg/jsl/wfwt/MainActivity;.m_audioVolume:I // field@025d │ │ +01aaea: 6e20 8700 d500 |0063: invoke-virtual {v5, v13}, Landroid/widget/SeekBar;.setProgress:(I)V // method@0087 │ │ +01aaf0: 1a0d 0e04 |0066: const-string v13, "check-wifi-status" // string@040e │ │ +01aaf4: 7230 2b00 d302 |0068: invoke-interface {v3, v13, v2}, Landroid/content/SharedPreferences;.getBoolean:(Ljava/lang/String;Z)Z // method@002b │ │ +01aafa: 0a0d |006b: move-result v13 │ │ +01aafc: 6e20 7d00 d600 |006c: invoke-virtual {v6, v13}, Landroid/widget/CheckBox;.setChecked:(Z)V // method@007d │ │ +01ab02: 558d 6702 |006f: iget-boolean v13, v8, Lorg/jsl/wfwt/MainActivity;.m_useVolumeButtonsToTalk:Z // field@0267 │ │ +01ab06: 6e20 7d00 d700 |0071: invoke-virtual {v7, v13}, Landroid/widget/CheckBox;.setChecked:(Z)V // method@007d │ │ +01ab0c: 1a0d 6706 |0074: const-string v13, "roger-beep" // string@0667 │ │ +01ab10: 7230 2b00 d302 |0076: invoke-interface {v3, v13, v2}, Landroid/content/SharedPreferences;.getBoolean:(Ljava/lang/String;Z)Z // method@002b │ │ +01ab16: 0a0d |0079: move-result v13 │ │ +01ab18: 6e20 7d00 db00 |007a: invoke-virtual {v11, v13}, Landroid/widget/CheckBox;.setChecked:(Z)V // method@007d │ │ +01ab1e: 1a0d fb03 |007d: const-string v13, "back-button-exits" // string@03fb │ │ +01ab22: 7230 2b00 d301 |007f: invoke-interface {v3, v13, v1}, Landroid/content/SharedPreferences;.getBoolean:(Ljava/lang/String;Z)Z // method@002b │ │ +01ab28: 0a01 |0082: move-result v1 │ │ +01ab2a: 6e20 7d00 1c00 |0083: invoke-virtual {v12, v1}, Landroid/widget/CheckBox;.setChecked:(Z)V // method@007d │ │ +01ab30: 1401 1100 067f |0086: const v1, #float 1.78117e+38 // #7f060011 │ │ +01ab36: 6e20 0e00 1900 |0089: invoke-virtual {v9, v1}, Landroid/app/AlertDialog$Builder;.setTitle:(I)Landroid/app/AlertDialog$Builder; // method@000e │ │ +01ab3c: 6e20 0f00 0900 |008c: invoke-virtual {v9, v0}, Landroid/app/AlertDialog$Builder;.setView:(Landroid/view/View;)Landroid/app/AlertDialog$Builder; // method@000f │ │ +01ab42: 6e20 0b00 2900 |008f: invoke-virtual {v9, v2}, Landroid/app/AlertDialog$Builder;.setCancelable:(Z)Landroid/app/AlertDialog$Builder; // method@000b │ │ +01ab48: 1400 1000 067f |0092: const v0, #float 1.78117e+38 // #7f060010 │ │ +01ab4e: 6e20 f804 0f00 |0095: invoke-virtual {v15, v0}, Lorg/jsl/wfwt/MainActivity;.getString:(I)Ljava/lang/String; // method@04f8 │ │ +01ab54: 0c0d |0098: move-result-object v13 │ │ +01ab56: 220e 3001 |0099: new-instance v14, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener; // type@0130 │ │ +01ab5a: 07e0 |009b: move-object v0, v14 │ │ +01ab5c: 07f1 |009c: move-object v1, v15 │ │ +01ab5e: 0742 |009d: move-object v2, v4 │ │ +01ab60: 0753 |009e: move-object v3, v5 │ │ +01ab62: 0764 |009f: move-object v4, v6 │ │ +01ab64: 0775 |00a0: move-object v5, v7 │ │ +01ab66: 07b6 |00a1: move-object v6, v11 │ │ +01ab68: 07c7 |00a2: move-object v7, v12 │ │ +01ab6a: 7608 e004 0000 |00a3: invoke-direct/range {v0, v1, v2, v3, v4, v5, v6, v7}, Lorg/jsl/wfwt/MainActivity$SettingsDialogClickListener;.:(Lorg/jsl/wfwt/MainActivity;Landroid/widget/EditText;Landroid/widget/SeekBar;Landroid/widget/CheckBox;Landroid/widget/CheckBox;Landroid/widget/CheckBox;Landroid/widget/CheckBox;)V // method@04e0 │ │ +01ab70: 6e30 0d00 d90e |00a6: invoke-virtual {v9, v13, v14}, Landroid/app/AlertDialog$Builder;.setPositiveButton:(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; // method@000d │ │ +01ab76: 1400 0500 067f |00a9: const v0, #float 1.78117e+38 // #7f060005 │ │ +01ab7c: 6e20 f804 0f00 |00ac: invoke-virtual {v15, v0}, Lorg/jsl/wfwt/MainActivity;.getString:(I)Ljava/lang/String; // method@04f8 │ │ +01ab82: 0c00 |00af: move-result-object v0 │ │ +01ab84: 6e30 0c00 090a |00b0: invoke-virtual {v9, v0, v10}, Landroid/app/AlertDialog$Builder;.setNegativeButton:(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; // method@000c │ │ +01ab8a: 6e10 0a00 0900 |00b3: invoke-virtual {v9}, Landroid/app/AlertDialog$Builder;.create:()Landroid/app/AlertDialog; // method@000a │ │ +01ab90: 0c00 |00b6: move-result-object v0 │ │ +01ab92: 6e10 1000 0000 |00b7: invoke-virtual {v0}, Landroid/app/AlertDialog;.show:()V // method@0010 │ │ +01ab98: 2837 |00ba: goto 00f1 // +0037 │ │ +01ab9a: 5c82 6002 |00bb: iput-boolean v2, v8, Lorg/jsl/wfwt/MainActivity;.m_exit:Z // field@0260 │ │ +01ab9e: 6e10 f304 0f00 |00bd: invoke-virtual {v15}, Lorg/jsl/wfwt/MainActivity;.finish:()V // method@04f3 │ │ +01aba4: 2831 |00c0: goto 00f1 // +0031 │ │ +01aba6: 1501 037f |00c1: const/high16 v1, #int 2130903040 // #7f03 │ │ +01abaa: 6e30 6900 100a |00c3: invoke-virtual {v0, v1, v10}, Landroid/view/LayoutInflater;.inflate:(ILandroid/view/ViewGroup;)Landroid/view/View; // method@0069 │ │ +01abb0: 0c00 |00c6: move-result-object v0 │ │ +01abb2: 1401 0d00 027f |00c7: const v1, #float 1.728e+38 // #7f02000d │ │ +01abb8: 6e20 7100 1000 |00ca: invoke-virtual {v0, v1}, Landroid/view/View;.findViewById:(I)Landroid/view/View; // method@0071 │ │ +01abbe: 0c01 |00cd: move-result-object v1 │ │ +01abc0: 1f01 4900 |00ce: check-cast v1, Landroid/widget/TextView; // type@0049 │ │ +01abc4: 7100 5e00 0000 |00d0: invoke-static {}, Landroid/text/method/LinkMovementMethod;.getInstance:()Landroid/text/method/MovementMethod; // method@005e │ │ +01abca: 0c02 |00d3: move-result-object v2 │ │ +01abcc: 6e20 8800 2100 |00d4: invoke-virtual {v1, v2}, Landroid/widget/TextView;.setMovementMethod:(Landroid/text/method/MovementMethod;)V // method@0088 │ │ +01abd2: 1401 0100 067f |00d7: const v1, #float 1.78117e+38 // #7f060001 │ │ +01abd8: 6e20 0e00 1900 |00da: invoke-virtual {v9, v1}, Landroid/app/AlertDialog$Builder;.setTitle:(I)Landroid/app/AlertDialog$Builder; // method@000e │ │ +01abde: 6e20 0f00 0900 |00dd: invoke-virtual {v9, v0}, Landroid/app/AlertDialog$Builder;.setView:(Landroid/view/View;)Landroid/app/AlertDialog$Builder; // method@000f │ │ +01abe4: 1400 0700 067f |00e0: const v0, #float 1.78117e+38 // #7f060007 │ │ +01abea: 6e20 f804 0f00 |00e3: invoke-virtual {v15, v0}, Lorg/jsl/wfwt/MainActivity;.getString:(I)Ljava/lang/String; // method@04f8 │ │ +01abf0: 0c00 |00e6: move-result-object v0 │ │ +01abf2: 6e30 0d00 090a |00e7: invoke-virtual {v9, v0, v10}, Landroid/app/AlertDialog$Builder;.setPositiveButton:(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; // method@000d │ │ +01abf8: 6e10 0a00 0900 |00ea: invoke-virtual {v9}, Landroid/app/AlertDialog$Builder;.create:()Landroid/app/AlertDialog; // method@000a │ │ +01abfe: 0c00 |00ed: move-result-object v0 │ │ +01ac00: 6e10 1000 0000 |00ee: invoke-virtual {v0}, Landroid/app/AlertDialog;.show:()V // method@0010 │ │ +01ac06: 7502 0600 0f00 |00f1: invoke-super/range {v15, v16}, Landroid/app/Activity;.onOptionsItemSelected:(Landroid/view/MenuItem;)Z // method@0006 │ │ +01ac0c: 0a00 |00f4: move-result v0 │ │ +01ac0e: 0f00 |00f5: return v0 │ │ +01ac10: 0001 0300 0000 027f b100 0000 ab00 ... |00f6: packed-switch-data (10 units) │ │ catches : (none) │ │ positions : │ │ 0x0001 line=340 │ │ 0x0005 line=341 │ │ 0x000a line=342 │ │ 0x0016 line=346 │ │ 0x001d line=347 │ │ @@ -39044,74 +39044,74 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 7 │ │ ins : 1 │ │ outs : 4 │ │ insns size : 130 16-bit code units │ │ -01af08: |[01af08] org.jsl.wfwt.MainActivity.onPause:()V │ │ -01af18: 6f10 0700 0600 |0000: invoke-super {v6}, Landroid/app/Activity;.onPause:()V // method@0007 │ │ -01af1e: 1a00 0606 |0003: const-string v0, "onPause" // string@0606 │ │ -01af22: 1a01 a002 |0005: const-string v1, "MainActivity" // string@02a0 │ │ -01af26: 7120 6400 0100 |0007: invoke-static {v1, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -01af2c: 5460 6402 |000a: iget-object v0, v6, Lorg/jsl/wfwt/MainActivity;.m_serviceConnection:Landroid/content/ServiceConnection; // field@0264 │ │ -01af30: 1202 |000c: const/4 v2, #int 0 // #0 │ │ -01af32: 3800 0700 |000d: if-eqz v0, 0014 // +0007 │ │ -01af36: 6e20 0d05 0600 |000f: invoke-virtual {v6, v0}, Lorg/jsl/wfwt/MainActivity;.unbindService:(Landroid/content/ServiceConnection;)V // method@050d │ │ -01af3c: 5b62 6402 |0012: iput-object v2, v6, Lorg/jsl/wfwt/MainActivity;.m_serviceConnection:Landroid/content/ServiceConnection; // field@0264 │ │ -01af40: 5460 6502 |0014: iget-object v0, v6, Lorg/jsl/wfwt/MainActivity;.m_serviceIntent:Landroid/content/Intent; // field@0265 │ │ -01af44: 3800 6600 |0016: if-eqz v0, 007c // +0066 │ │ -01af48: 5563 6002 |0018: iget-boolean v3, v6, Lorg/jsl/wfwt/MainActivity;.m_exit:Z // field@0260 │ │ -01af4c: 3803 0600 |001a: if-eqz v3, 0020 // +0006 │ │ -01af50: 6e20 0c05 0600 |001c: invoke-virtual {v6, v0}, Lorg/jsl/wfwt/MainActivity;.stopService:(Landroid/content/Intent;)Z // method@050c │ │ -01af56: 285b |001f: goto 007a // +005b │ │ -01af58: 2200 1300 |0020: new-instance v0, Landroid/content/Intent; // type@0013 │ │ -01af5c: 1c03 3101 |0022: const-class v3, Lorg/jsl/wfwt/MainActivity; // type@0131 │ │ -01af60: 7030 2100 6003 |0024: invoke-direct {v0, v6, v3}, Landroid/content/Intent;.:(Landroid/content/Context;Ljava/lang/Class;)V // method@0021 │ │ -01af66: 1503 0020 |0027: const/high16 v3, #int 536870912 // #2000 │ │ -01af6a: 6e20 2600 3000 |0029: invoke-virtual {v0, v3}, Landroid/content/Intent;.setFlags:(I)Landroid/content/Intent; // method@0026 │ │ -01af70: 7100 d000 0000 |002c: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@00d0 │ │ -01af76: 0b03 |002f: move-result-wide v3 │ │ -01af78: 8434 |0030: long-to-int v4, v3 │ │ -01af7a: 1203 |0031: const/4 v3, #int 0 // #0 │ │ -01af7c: 7140 1a00 4630 |0032: invoke-static {v6, v4, v0, v3}, Landroid/app/PendingIntent;.getActivity:(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent; // method@001a │ │ -01af82: 0c00 |0035: move-result-object v0 │ │ -01af84: 2204 0900 |0036: new-instance v4, Landroid/app/Notification$Builder; // type@0009 │ │ -01af88: 7020 1100 6400 |0038: invoke-direct {v4, v6}, Landroid/app/Notification$Builder;.:(Landroid/content/Context;)V // method@0011 │ │ -01af8e: 1405 0300 067f |003b: const v5, #float 1.78117e+38 // #7f060003 │ │ -01af94: 6e20 f804 5600 |003e: invoke-virtual {v6, v5}, Lorg/jsl/wfwt/MainActivity;.getString:(I)Ljava/lang/String; // method@04f8 │ │ -01af9a: 0c05 |0041: move-result-object v5 │ │ -01af9c: 6e20 1500 5400 |0042: invoke-virtual {v4, v5}, Landroid/app/Notification$Builder;.setContentTitle:(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; // method@0015 │ │ -01afa2: 1405 0f00 067f |0045: const v5, #float 1.78117e+38 // #7f06000f │ │ -01afa8: 6e20 f804 5600 |0048: invoke-virtual {v6, v5}, Lorg/jsl/wfwt/MainActivity;.getString:(I)Ljava/lang/String; // method@04f8 │ │ -01afae: 0c05 |004b: move-result-object v5 │ │ -01afb0: 6e20 1400 5400 |004c: invoke-virtual {v4, v5}, Landroid/app/Notification$Builder;.setContentText:(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; // method@0014 │ │ -01afb6: 6e20 1300 0400 |004f: invoke-virtual {v4, v0}, Landroid/app/Notification$Builder;.setContentIntent:(Landroid/app/PendingIntent;)Landroid/app/Notification$Builder; // method@0013 │ │ -01afbc: 1400 0100 017f |0052: const v0, #float 1.7147e+38 // #7f010001 │ │ -01afc2: 6e20 1700 0400 |0055: invoke-virtual {v4, v0}, Landroid/app/Notification$Builder;.setSmallIcon:(I)Landroid/app/Notification$Builder; // method@0017 │ │ -01afc8: 6e10 f704 0600 |0058: invoke-virtual {v6}, Lorg/jsl/wfwt/MainActivity;.getResources:()Landroid/content/res/Resources; // method@04f7 │ │ -01afce: 0c00 |005b: move-result-object v0 │ │ -01afd0: 1505 017f |005c: const/high16 v5, #int 2130771968 // #7f01 │ │ -01afd4: 7120 3100 5000 |005e: invoke-static {v0, v5}, Landroid/graphics/BitmapFactory;.decodeResource:(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap; // method@0031 │ │ -01afda: 0c00 |0061: move-result-object v0 │ │ -01afdc: 6e20 1600 0400 |0062: invoke-virtual {v4, v0}, Landroid/app/Notification$Builder;.setLargeIcon:(Landroid/graphics/Bitmap;)Landroid/app/Notification$Builder; // method@0016 │ │ -01afe2: 6e10 1200 0400 |0065: invoke-virtual {v4}, Landroid/app/Notification$Builder;.build:()Landroid/app/Notification; // method@0012 │ │ -01afe8: 0c00 |0068: move-result-object v0 │ │ -01afea: 5204 0000 |0069: iget v4, v0, Landroid/app/Notification;.flags:I // field@0000 │ │ -01afee: de04 0410 |006b: or-int/lit8 v4, v4, #int 16 // #10 │ │ -01aff2: 5904 0000 |006d: iput v4, v0, Landroid/app/Notification;.flags:I // field@0000 │ │ -01aff6: 1a04 e905 |006f: const-string v4, "notification" // string@05e9 │ │ -01affa: 6e20 f904 4600 |0071: invoke-virtual {v6, v4}, Lorg/jsl/wfwt/MainActivity;.getSystemService:(Ljava/lang/String;)Ljava/lang/Object; // method@04f9 │ │ -01b000: 0c04 |0074: move-result-object v4 │ │ -01b002: 1f04 0b00 |0075: check-cast v4, Landroid/app/NotificationManager; // type@000b │ │ -01b006: 6e30 1900 3400 |0077: invoke-virtual {v4, v3, v0}, Landroid/app/NotificationManager;.notify:(ILandroid/app/Notification;)V // method@0019 │ │ -01b00c: 5b62 6502 |007a: iput-object v2, v6, Lorg/jsl/wfwt/MainActivity;.m_serviceIntent:Landroid/content/Intent; // field@0265 │ │ -01b010: 1a00 0706 |007c: const-string v0, "onPause: done" // string@0607 │ │ -01b014: 7120 6400 0100 |007e: invoke-static {v1, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -01b01a: 0e00 |0081: return-void │ │ +01af0c: |[01af0c] org.jsl.wfwt.MainActivity.onPause:()V │ │ +01af1c: 6f10 0700 0600 |0000: invoke-super {v6}, Landroid/app/Activity;.onPause:()V // method@0007 │ │ +01af22: 1a00 0606 |0003: const-string v0, "onPause" // string@0606 │ │ +01af26: 1a01 a002 |0005: const-string v1, "MainActivity" // string@02a0 │ │ +01af2a: 7120 6400 0100 |0007: invoke-static {v1, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +01af30: 5460 6402 |000a: iget-object v0, v6, Lorg/jsl/wfwt/MainActivity;.m_serviceConnection:Landroid/content/ServiceConnection; // field@0264 │ │ +01af34: 1202 |000c: const/4 v2, #int 0 // #0 │ │ +01af36: 3800 0700 |000d: if-eqz v0, 0014 // +0007 │ │ +01af3a: 6e20 0d05 0600 |000f: invoke-virtual {v6, v0}, Lorg/jsl/wfwt/MainActivity;.unbindService:(Landroid/content/ServiceConnection;)V // method@050d │ │ +01af40: 5b62 6402 |0012: iput-object v2, v6, Lorg/jsl/wfwt/MainActivity;.m_serviceConnection:Landroid/content/ServiceConnection; // field@0264 │ │ +01af44: 5460 6502 |0014: iget-object v0, v6, Lorg/jsl/wfwt/MainActivity;.m_serviceIntent:Landroid/content/Intent; // field@0265 │ │ +01af48: 3800 6600 |0016: if-eqz v0, 007c // +0066 │ │ +01af4c: 5563 6002 |0018: iget-boolean v3, v6, Lorg/jsl/wfwt/MainActivity;.m_exit:Z // field@0260 │ │ +01af50: 3803 0600 |001a: if-eqz v3, 0020 // +0006 │ │ +01af54: 6e20 0c05 0600 |001c: invoke-virtual {v6, v0}, Lorg/jsl/wfwt/MainActivity;.stopService:(Landroid/content/Intent;)Z // method@050c │ │ +01af5a: 285b |001f: goto 007a // +005b │ │ +01af5c: 2200 1300 |0020: new-instance v0, Landroid/content/Intent; // type@0013 │ │ +01af60: 1c03 3101 |0022: const-class v3, Lorg/jsl/wfwt/MainActivity; // type@0131 │ │ +01af64: 7030 2100 6003 |0024: invoke-direct {v0, v6, v3}, Landroid/content/Intent;.:(Landroid/content/Context;Ljava/lang/Class;)V // method@0021 │ │ +01af6a: 1503 0020 |0027: const/high16 v3, #int 536870912 // #2000 │ │ +01af6e: 6e20 2600 3000 |0029: invoke-virtual {v0, v3}, Landroid/content/Intent;.setFlags:(I)Landroid/content/Intent; // method@0026 │ │ +01af74: 7100 d000 0000 |002c: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@00d0 │ │ +01af7a: 0b03 |002f: move-result-wide v3 │ │ +01af7c: 8434 |0030: long-to-int v4, v3 │ │ +01af7e: 1203 |0031: const/4 v3, #int 0 // #0 │ │ +01af80: 7140 1a00 4630 |0032: invoke-static {v6, v4, v0, v3}, Landroid/app/PendingIntent;.getActivity:(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent; // method@001a │ │ +01af86: 0c00 |0035: move-result-object v0 │ │ +01af88: 2204 0900 |0036: new-instance v4, Landroid/app/Notification$Builder; // type@0009 │ │ +01af8c: 7020 1100 6400 |0038: invoke-direct {v4, v6}, Landroid/app/Notification$Builder;.:(Landroid/content/Context;)V // method@0011 │ │ +01af92: 1405 0300 067f |003b: const v5, #float 1.78117e+38 // #7f060003 │ │ +01af98: 6e20 f804 5600 |003e: invoke-virtual {v6, v5}, Lorg/jsl/wfwt/MainActivity;.getString:(I)Ljava/lang/String; // method@04f8 │ │ +01af9e: 0c05 |0041: move-result-object v5 │ │ +01afa0: 6e20 1500 5400 |0042: invoke-virtual {v4, v5}, Landroid/app/Notification$Builder;.setContentTitle:(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; // method@0015 │ │ +01afa6: 1405 0f00 067f |0045: const v5, #float 1.78117e+38 // #7f06000f │ │ +01afac: 6e20 f804 5600 |0048: invoke-virtual {v6, v5}, Lorg/jsl/wfwt/MainActivity;.getString:(I)Ljava/lang/String; // method@04f8 │ │ +01afb2: 0c05 |004b: move-result-object v5 │ │ +01afb4: 6e20 1400 5400 |004c: invoke-virtual {v4, v5}, Landroid/app/Notification$Builder;.setContentText:(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; // method@0014 │ │ +01afba: 6e20 1300 0400 |004f: invoke-virtual {v4, v0}, Landroid/app/Notification$Builder;.setContentIntent:(Landroid/app/PendingIntent;)Landroid/app/Notification$Builder; // method@0013 │ │ +01afc0: 1400 0100 017f |0052: const v0, #float 1.7147e+38 // #7f010001 │ │ +01afc6: 6e20 1700 0400 |0055: invoke-virtual {v4, v0}, Landroid/app/Notification$Builder;.setSmallIcon:(I)Landroid/app/Notification$Builder; // method@0017 │ │ +01afcc: 6e10 f704 0600 |0058: invoke-virtual {v6}, Lorg/jsl/wfwt/MainActivity;.getResources:()Landroid/content/res/Resources; // method@04f7 │ │ +01afd2: 0c00 |005b: move-result-object v0 │ │ +01afd4: 1505 017f |005c: const/high16 v5, #int 2130771968 // #7f01 │ │ +01afd8: 7120 3100 5000 |005e: invoke-static {v0, v5}, Landroid/graphics/BitmapFactory;.decodeResource:(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap; // method@0031 │ │ +01afde: 0c00 |0061: move-result-object v0 │ │ +01afe0: 6e20 1600 0400 |0062: invoke-virtual {v4, v0}, Landroid/app/Notification$Builder;.setLargeIcon:(Landroid/graphics/Bitmap;)Landroid/app/Notification$Builder; // method@0016 │ │ +01afe6: 6e10 1200 0400 |0065: invoke-virtual {v4}, Landroid/app/Notification$Builder;.build:()Landroid/app/Notification; // method@0012 │ │ +01afec: 0c00 |0068: move-result-object v0 │ │ +01afee: 5204 0000 |0069: iget v4, v0, Landroid/app/Notification;.flags:I // field@0000 │ │ +01aff2: de04 0410 |006b: or-int/lit8 v4, v4, #int 16 // #10 │ │ +01aff6: 5904 0000 |006d: iput v4, v0, Landroid/app/Notification;.flags:I // field@0000 │ │ +01affa: 1a04 e905 |006f: const-string v4, "notification" // string@05e9 │ │ +01affe: 6e20 f904 4600 |0071: invoke-virtual {v6, v4}, Lorg/jsl/wfwt/MainActivity;.getSystemService:(Ljava/lang/String;)Ljava/lang/Object; // method@04f9 │ │ +01b004: 0c04 |0074: move-result-object v4 │ │ +01b006: 1f04 0b00 |0075: check-cast v4, Landroid/app/NotificationManager; // type@000b │ │ +01b00a: 6e30 1900 3400 |0077: invoke-virtual {v4, v3, v0}, Landroid/app/NotificationManager;.notify:(ILandroid/app/Notification;)V // method@0019 │ │ +01b010: 5b62 6502 |007a: iput-object v2, v6, Lorg/jsl/wfwt/MainActivity;.m_serviceIntent:Landroid/content/Intent; // field@0265 │ │ +01b014: 1a00 0706 |007c: const-string v0, "onPause: done" // string@0607 │ │ +01b018: 7120 6400 0100 |007e: invoke-static {v1, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +01b01e: 0e00 |0081: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=499 │ │ 0x0007 line=500 │ │ 0x000a line=502 │ │ 0x000f line=504 │ │ 0x0012 line=505 │ │ @@ -39142,154 +39142,154 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 9 │ │ ins : 1 │ │ outs : 5 │ │ insns size : 298 16-bit code units │ │ -01b01c: |[01b01c] org.jsl.wfwt.MainActivity.onResume:()V │ │ -01b02c: 6f10 0800 0800 |0000: invoke-super {v8}, Landroid/app/Activity;.onResume:()V // method@0008 │ │ -01b032: 1a00 0a06 |0003: const-string v0, "onResume" // string@060a │ │ -01b036: 1a01 a002 |0005: const-string v1, "MainActivity" // string@02a0 │ │ -01b03a: 7120 6400 0100 |0007: invoke-static {v1, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -01b040: 1a00 e905 |000a: const-string v0, "notification" // string@05e9 │ │ -01b044: 6e20 f904 0800 |000c: invoke-virtual {v8, v0}, Lorg/jsl/wfwt/MainActivity;.getSystemService:(Ljava/lang/String;)Ljava/lang/Object; // method@04f9 │ │ -01b04a: 0c00 |000f: move-result-object v0 │ │ -01b04c: 1f00 0b00 |0010: check-cast v0, Landroid/app/NotificationManager; // type@000b │ │ -01b050: 6e10 1800 0000 |0012: invoke-virtual {v0}, Landroid/app/NotificationManager;.cancelAll:()V // method@0018 │ │ -01b056: 1200 |0015: const/4 v0, #int 0 // #0 │ │ -01b058: 5c80 6002 |0016: iput-boolean v0, v8, Lorg/jsl/wfwt/MainActivity;.m_exit:Z // field@0260 │ │ -01b05c: 5482 6102 |0018: iget-object v2, v8, Lorg/jsl/wfwt/MainActivity;.m_listViewAdapter:Lorg/jsl/wfwt/MainActivity$ListViewAdapter; // field@0261 │ │ -01b060: 6e10 d904 0200 |001a: invoke-virtual {v2}, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.clear:()V // method@04d9 │ │ -01b066: 6e20 f604 0800 |001d: invoke-virtual {v8, v0}, Lorg/jsl/wfwt/MainActivity;.getPreferences:(I)Landroid/content/SharedPreferences; // method@04f6 │ │ -01b06c: 0c02 |0020: move-result-object v2 │ │ -01b06e: 1a03 e506 |0021: const-string v3, "station_name" // string@06e5 │ │ -01b072: 1204 |0023: const/4 v4, #int 0 // #0 │ │ -01b074: 7230 2c00 3204 |0024: invoke-interface {v2, v3, v4}, Landroid/content/SharedPreferences;.getString:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; // method@002c │ │ -01b07a: 0c05 |0027: move-result-object v5 │ │ -01b07c: 5b85 6602 |0028: iput-object v5, v8, Lorg/jsl/wfwt/MainActivity;.m_stationName:Ljava/lang/String; // field@0266 │ │ -01b080: 3805 0800 |002a: if-eqz v5, 0032 // +0008 │ │ -01b084: 6e10 bf00 0500 |002c: invoke-virtual {v5}, Ljava/lang/String;.isEmpty:()Z // method@00bf │ │ -01b08a: 0a05 |002f: move-result v5 │ │ -01b08c: 3805 0600 |0030: if-eqz v5, 0036 // +0006 │ │ -01b090: 6205 0100 |0032: sget-object v5, Landroid/os/Build;.MODEL:Ljava/lang/String; // field@0001 │ │ -01b094: 5b85 6602 |0034: iput-object v5, v8, Lorg/jsl/wfwt/MainActivity;.m_stationName:Ljava/lang/String; // field@0266 │ │ -01b098: 1a05 0f07 |0036: const-string v5, "use-volume-buttons-to-talk" // string@070f │ │ -01b09c: 7230 2b00 5200 |0038: invoke-interface {v2, v5, v0}, Landroid/content/SharedPreferences;.getBoolean:(Ljava/lang/String;Z)Z // method@002b │ │ -01b0a2: 0a00 |003b: move-result v0 │ │ -01b0a4: 5c80 6702 |003c: iput-boolean v0, v8, Lorg/jsl/wfwt/MainActivity;.m_useVolumeButtonsToTalk:Z // field@0267 │ │ -01b0a8: 5480 6602 |003e: iget-object v0, v8, Lorg/jsl/wfwt/MainActivity;.m_stationName:Ljava/lang/String; // field@0266 │ │ -01b0ac: 6e10 bf00 0000 |0040: invoke-virtual {v0}, Ljava/lang/String;.isEmpty:()Z // method@00bf │ │ -01b0b2: 0a00 |0043: move-result v0 │ │ -01b0b4: 3900 2200 |0044: if-nez v0, 0066 // +0022 │ │ -01b0b8: 2200 6700 |0046: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -01b0bc: 7010 c500 0000 |0048: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -01b0c2: 1405 0300 067f |004b: const v5, #float 1.78117e+38 // #7f060003 │ │ -01b0c8: 6e20 f804 5800 |004e: invoke-virtual {v8, v5}, Lorg/jsl/wfwt/MainActivity;.getString:(I)Ljava/lang/String; // method@04f8 │ │ -01b0ce: 0c05 |0051: move-result-object v5 │ │ -01b0d0: 6e20 cb00 5000 |0052: invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01b0d6: 1a05 5100 |0055: const-string v5, ": " // string@0051 │ │ -01b0da: 6e20 cb00 5000 |0057: invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01b0e0: 5485 6602 |005a: iget-object v5, v8, Lorg/jsl/wfwt/MainActivity;.m_stationName:Ljava/lang/String; // field@0266 │ │ -01b0e4: 6e20 cb00 5000 |005c: invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01b0ea: 6e10 ce00 0000 |005f: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01b0f0: 0c00 |0062: move-result-object v0 │ │ -01b0f2: 6e20 0a05 0800 |0063: invoke-virtual {v8, v0}, Lorg/jsl/wfwt/MainActivity;.setTitle:(Ljava/lang/CharSequence;)V // method@050a │ │ -01b0f8: 1a00 f403 |0066: const-string v0, "audio" // string@03f4 │ │ -01b0fc: 6e20 f904 0800 |0068: invoke-virtual {v8, v0}, Lorg/jsl/wfwt/MainActivity;.getSystemService:(Ljava/lang/String;)Ljava/lang/Object; // method@04f9 │ │ -01b102: 0c00 |006b: move-result-object v0 │ │ -01b104: 1f00 2100 |006c: check-cast v0, Landroid/media/AudioManager; // type@0021 │ │ -01b108: 1235 |006e: const/4 v5, #int 3 // #3 │ │ -01b10a: 6e20 3c00 5000 |006f: invoke-virtual {v0, v5}, Landroid/media/AudioManager;.getStreamMaxVolume:(I)I // method@003c │ │ -01b110: 0a00 |0072: move-result v0 │ │ -01b112: 5980 5b02 |0073: iput v0, v8, Lorg/jsl/wfwt/MainActivity;.m_audioMaxVolume:I // field@025b │ │ -01b116: 1a00 1d07 |0075: const-string v0, "volume" // string@071d │ │ -01b11a: 7230 2c00 0204 |0077: invoke-interface {v2, v0, v4}, Landroid/content/SharedPreferences;.getString:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; // method@002c │ │ -01b120: 0c05 |007a: move-result-object v5 │ │ -01b122: 3805 1500 |007b: if-eqz v5, 0090 // +0015 │ │ -01b126: 6e10 bf00 0500 |007d: invoke-virtual {v5}, Ljava/lang/String;.isEmpty:()Z // method@00bf │ │ -01b12c: 0a06 |0080: move-result v6 │ │ -01b12e: 3806 0300 |0081: if-eqz v6, 0084 // +0003 │ │ -01b132: 280d |0083: goto 0090 // +000d │ │ -01b134: 7110 a700 0500 |0084: invoke-static {v5}, Ljava/lang/Integer;.parseInt:(Ljava/lang/String;)I // method@00a7 │ │ -01b13a: 0a05 |0087: move-result v5 │ │ -01b13c: 5985 5d02 |0088: iput v5, v8, Lorg/jsl/wfwt/MainActivity;.m_audioVolume:I // field@025d │ │ -01b140: 280a |008a: goto 0094 // +000a │ │ -01b142: 5285 5b02 |008b: iget v5, v8, Lorg/jsl/wfwt/MainActivity;.m_audioMaxVolume:I // field@025b │ │ -01b146: 5985 5d02 |008d: iput v5, v8, Lorg/jsl/wfwt/MainActivity;.m_audioVolume:I // field@025d │ │ -01b14a: 2805 |008f: goto 0094 // +0005 │ │ -01b14c: 5285 5b02 |0090: iget v5, v8, Lorg/jsl/wfwt/MainActivity;.m_audioMaxVolume:I // field@025b │ │ -01b150: 5985 5d02 |0092: iput v5, v8, Lorg/jsl/wfwt/MainActivity;.m_audioVolume:I // field@025d │ │ -01b154: 2205 1300 |0094: new-instance v5, Landroid/content/Intent; // type@0013 │ │ -01b158: 1c06 5301 |0096: const-class v6, Lorg/jsl/wfwt/WalkieService; // type@0153 │ │ -01b15c: 7030 2100 8506 |0098: invoke-direct {v5, v8, v6}, Landroid/content/Intent;.:(Landroid/content/Context;Ljava/lang/Class;)V // method@0021 │ │ -01b162: 5b85 6502 |009b: iput-object v5, v8, Lorg/jsl/wfwt/MainActivity;.m_serviceIntent:Landroid/content/Intent; // field@0265 │ │ -01b166: 5486 6602 |009d: iget-object v6, v8, Lorg/jsl/wfwt/MainActivity;.m_stationName:Ljava/lang/String; // field@0266 │ │ -01b16a: 6e30 2500 3506 |009f: invoke-virtual {v5, v3, v6}, Landroid/content/Intent;.putExtra:(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent; // method@0025 │ │ -01b170: 5483 6502 |00a2: iget-object v3, v8, Lorg/jsl/wfwt/MainActivity;.m_serviceIntent:Landroid/content/Intent; // field@0265 │ │ -01b174: 5285 5d02 |00a4: iget v5, v8, Lorg/jsl/wfwt/MainActivity;.m_audioVolume:I // field@025d │ │ -01b178: 6e30 2400 0305 |00a6: invoke-virtual {v3, v0, v5}, Landroid/content/Intent;.putExtra:(Ljava/lang/String;I)Landroid/content/Intent; // method@0024 │ │ -01b17e: 5480 6502 |00a9: iget-object v0, v8, Lorg/jsl/wfwt/MainActivity;.m_serviceIntent:Landroid/content/Intent; // field@0265 │ │ -01b182: 6e20 0b05 0800 |00ab: invoke-virtual {v8, v0}, Lorg/jsl/wfwt/MainActivity;.startService:(Landroid/content/Intent;)Landroid/content/ComponentName; // method@050b │ │ -01b188: 0c00 |00ae: move-result-object v0 │ │ -01b18a: 2203 2c01 |00af: new-instance v3, Lorg/jsl/wfwt/MainActivity$4; // type@012c │ │ -01b18e: 7020 d004 8300 |00b1: invoke-direct {v3, v8}, Lorg/jsl/wfwt/MainActivity$4;.:(Lorg/jsl/wfwt/MainActivity;)V // method@04d0 │ │ -01b194: 5b83 6402 |00b4: iput-object v3, v8, Lorg/jsl/wfwt/MainActivity;.m_serviceConnection:Landroid/content/ServiceConnection; // field@0264 │ │ -01b198: 5485 6502 |00b6: iget-object v5, v8, Lorg/jsl/wfwt/MainActivity;.m_serviceIntent:Landroid/content/Intent; // field@0265 │ │ -01b19c: 1216 |00b8: const/4 v6, #int 1 // #1 │ │ -01b19e: 6e40 f104 5863 |00b9: invoke-virtual {v8, v5, v3, v6}, Lorg/jsl/wfwt/MainActivity;.bindService:(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z // method@04f1 │ │ -01b1a4: 0a03 |00bc: move-result v3 │ │ -01b1a6: 3903 0400 |00bd: if-nez v3, 00c1 // +0004 │ │ -01b1aa: 5b84 6402 |00bf: iput-object v4, v8, Lorg/jsl/wfwt/MainActivity;.m_serviceConnection:Landroid/content/ServiceConnection; // field@0264 │ │ -01b1ae: 2205 6700 |00c1: new-instance v5, Ljava/lang/StringBuilder; // type@0067 │ │ -01b1b2: 1a07 2104 |00c3: const-string v7, "componentName=" // string@0421 │ │ -01b1b6: 7020 c600 7500 |00c5: invoke-direct {v5, v7}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ -01b1bc: 6e20 ca00 0500 |00c8: invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ -01b1c2: 1a00 0b00 |00cb: const-string v0, " bindRC=" // string@000b │ │ -01b1c6: 6e20 cb00 0500 |00cd: invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01b1cc: 6e20 cc00 3500 |00d0: invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;.append:(Z)Ljava/lang/StringBuilder; // method@00cc │ │ -01b1d2: 6e10 ce00 0500 |00d3: invoke-virtual {v5}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01b1d8: 0c00 |00d6: move-result-object v0 │ │ -01b1da: 7120 6100 0100 |00d7: invoke-static {v1, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -01b1e0: 1a00 0e04 |00da: const-string v0, "check-wifi-status" // string@040e │ │ -01b1e4: 7230 2b00 0206 |00dc: invoke-interface {v2, v0, v6}, Landroid/content/SharedPreferences;.getBoolean:(Ljava/lang/String;Z)Z // method@002b │ │ -01b1ea: 0a00 |00df: move-result v0 │ │ -01b1ec: 3800 4900 |00e0: if-eqz v0, 0129 // +0049 │ │ -01b1f0: 6e10 f404 0800 |00e2: invoke-virtual {v8}, Lorg/jsl/wfwt/MainActivity;.getApplicationContext:()Landroid/content/Context; // method@04f4 │ │ -01b1f6: 0c00 |00e5: move-result-object v0 │ │ -01b1f8: 1a01 2107 |00e6: const-string v1, "wifi" // string@0721 │ │ -01b1fc: 6e20 1f00 1000 |00e8: invoke-virtual {v0, v1}, Landroid/content/Context;.getSystemService:(Ljava/lang/String;)Ljava/lang/Object; // method@001f │ │ -01b202: 0c00 |00eb: move-result-object v0 │ │ -01b204: 1f00 2900 |00ec: check-cast v0, Landroid/net/wifi/WifiManager; // type@0029 │ │ -01b208: 3800 3b00 |00ee: if-eqz v0, 0129 // +003b │ │ -01b20c: 6e10 5900 0000 |00f0: invoke-virtual {v0}, Landroid/net/wifi/WifiManager;.isWifiEnabled:()Z // method@0059 │ │ -01b212: 0a01 |00f3: move-result v1 │ │ -01b214: 3901 3500 |00f4: if-nez v1, 0129 // +0035 │ │ -01b218: 7110 6800 0800 |00f6: invoke-static {v8}, Landroid/view/LayoutInflater;.from:(Landroid/content/Context;)Landroid/view/LayoutInflater; // method@0068 │ │ -01b21e: 0c01 |00f9: move-result-object v1 │ │ -01b220: 2203 0700 |00fa: new-instance v3, Landroid/app/AlertDialog$Builder; // type@0007 │ │ -01b224: 7020 0900 8300 |00fc: invoke-direct {v3, v8}, Landroid/app/AlertDialog$Builder;.:(Landroid/content/Context;)V // method@0009 │ │ -01b22a: 1405 0200 037f |00ff: const v5, #float 1.74129e+38 // #7f030002 │ │ -01b230: 6e30 6900 5104 |0102: invoke-virtual {v1, v5, v4}, Landroid/view/LayoutInflater;.inflate:(ILandroid/view/ViewGroup;)Landroid/view/View; // method@0069 │ │ -01b236: 0c01 |0105: move-result-object v1 │ │ -01b238: 2204 2d01 |0106: new-instance v4, Lorg/jsl/wfwt/MainActivity$5; // type@012d │ │ -01b23c: 7052 d304 8410 |0108: invoke-direct {v4, v8, v0, v1, v2}, Lorg/jsl/wfwt/MainActivity$5;.:(Lorg/jsl/wfwt/MainActivity;Landroid/net/wifi/WifiManager;Landroid/view/View;Landroid/content/SharedPreferences;)V // method@04d3 │ │ -01b242: 6e20 0f00 1300 |010b: invoke-virtual {v3, v1}, Landroid/app/AlertDialog$Builder;.setView:(Landroid/view/View;)Landroid/app/AlertDialog$Builder; // method@000f │ │ -01b248: 1400 1400 067f |010e: const v0, #float 1.78117e+38 // #7f060014 │ │ -01b24e: 6e20 f804 0800 |0111: invoke-virtual {v8, v0}, Lorg/jsl/wfwt/MainActivity;.getString:(I)Ljava/lang/String; // method@04f8 │ │ -01b254: 0c00 |0114: move-result-object v0 │ │ -01b256: 6e30 0d00 0304 |0115: invoke-virtual {v3, v0, v4}, Landroid/app/AlertDialog$Builder;.setPositiveButton:(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; // method@000d │ │ -01b25c: 1400 0500 067f |0118: const v0, #float 1.78117e+38 // #7f060005 │ │ -01b262: 6e20 f804 0800 |011b: invoke-virtual {v8, v0}, Lorg/jsl/wfwt/MainActivity;.getString:(I)Ljava/lang/String; // method@04f8 │ │ -01b268: 0c00 |011e: move-result-object v0 │ │ -01b26a: 6e30 0c00 0304 |011f: invoke-virtual {v3, v0, v4}, Landroid/app/AlertDialog$Builder;.setNegativeButton:(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; // method@000c │ │ -01b270: 6e10 0a00 0300 |0122: invoke-virtual {v3}, Landroid/app/AlertDialog$Builder;.create:()Landroid/app/AlertDialog; // method@000a │ │ -01b276: 0c00 |0125: move-result-object v0 │ │ -01b278: 6e10 1000 0000 |0126: invoke-virtual {v0}, Landroid/app/AlertDialog;.show:()V // method@0010 │ │ -01b27e: 0e00 |0129: return-void │ │ +01b020: |[01b020] org.jsl.wfwt.MainActivity.onResume:()V │ │ +01b030: 6f10 0800 0800 |0000: invoke-super {v8}, Landroid/app/Activity;.onResume:()V // method@0008 │ │ +01b036: 1a00 0a06 |0003: const-string v0, "onResume" // string@060a │ │ +01b03a: 1a01 a002 |0005: const-string v1, "MainActivity" // string@02a0 │ │ +01b03e: 7120 6400 0100 |0007: invoke-static {v1, v0}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +01b044: 1a00 e905 |000a: const-string v0, "notification" // string@05e9 │ │ +01b048: 6e20 f904 0800 |000c: invoke-virtual {v8, v0}, Lorg/jsl/wfwt/MainActivity;.getSystemService:(Ljava/lang/String;)Ljava/lang/Object; // method@04f9 │ │ +01b04e: 0c00 |000f: move-result-object v0 │ │ +01b050: 1f00 0b00 |0010: check-cast v0, Landroid/app/NotificationManager; // type@000b │ │ +01b054: 6e10 1800 0000 |0012: invoke-virtual {v0}, Landroid/app/NotificationManager;.cancelAll:()V // method@0018 │ │ +01b05a: 1200 |0015: const/4 v0, #int 0 // #0 │ │ +01b05c: 5c80 6002 |0016: iput-boolean v0, v8, Lorg/jsl/wfwt/MainActivity;.m_exit:Z // field@0260 │ │ +01b060: 5482 6102 |0018: iget-object v2, v8, Lorg/jsl/wfwt/MainActivity;.m_listViewAdapter:Lorg/jsl/wfwt/MainActivity$ListViewAdapter; // field@0261 │ │ +01b064: 6e10 d904 0200 |001a: invoke-virtual {v2}, Lorg/jsl/wfwt/MainActivity$ListViewAdapter;.clear:()V // method@04d9 │ │ +01b06a: 6e20 f604 0800 |001d: invoke-virtual {v8, v0}, Lorg/jsl/wfwt/MainActivity;.getPreferences:(I)Landroid/content/SharedPreferences; // method@04f6 │ │ +01b070: 0c02 |0020: move-result-object v2 │ │ +01b072: 1a03 e506 |0021: const-string v3, "station_name" // string@06e5 │ │ +01b076: 1204 |0023: const/4 v4, #int 0 // #0 │ │ +01b078: 7230 2c00 3204 |0024: invoke-interface {v2, v3, v4}, Landroid/content/SharedPreferences;.getString:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; // method@002c │ │ +01b07e: 0c05 |0027: move-result-object v5 │ │ +01b080: 5b85 6602 |0028: iput-object v5, v8, Lorg/jsl/wfwt/MainActivity;.m_stationName:Ljava/lang/String; // field@0266 │ │ +01b084: 3805 0800 |002a: if-eqz v5, 0032 // +0008 │ │ +01b088: 6e10 bf00 0500 |002c: invoke-virtual {v5}, Ljava/lang/String;.isEmpty:()Z // method@00bf │ │ +01b08e: 0a05 |002f: move-result v5 │ │ +01b090: 3805 0600 |0030: if-eqz v5, 0036 // +0006 │ │ +01b094: 6205 0100 |0032: sget-object v5, Landroid/os/Build;.MODEL:Ljava/lang/String; // field@0001 │ │ +01b098: 5b85 6602 |0034: iput-object v5, v8, Lorg/jsl/wfwt/MainActivity;.m_stationName:Ljava/lang/String; // field@0266 │ │ +01b09c: 1a05 0f07 |0036: const-string v5, "use-volume-buttons-to-talk" // string@070f │ │ +01b0a0: 7230 2b00 5200 |0038: invoke-interface {v2, v5, v0}, Landroid/content/SharedPreferences;.getBoolean:(Ljava/lang/String;Z)Z // method@002b │ │ +01b0a6: 0a00 |003b: move-result v0 │ │ +01b0a8: 5c80 6702 |003c: iput-boolean v0, v8, Lorg/jsl/wfwt/MainActivity;.m_useVolumeButtonsToTalk:Z // field@0267 │ │ +01b0ac: 5480 6602 |003e: iget-object v0, v8, Lorg/jsl/wfwt/MainActivity;.m_stationName:Ljava/lang/String; // field@0266 │ │ +01b0b0: 6e10 bf00 0000 |0040: invoke-virtual {v0}, Ljava/lang/String;.isEmpty:()Z // method@00bf │ │ +01b0b6: 0a00 |0043: move-result v0 │ │ +01b0b8: 3900 2200 |0044: if-nez v0, 0066 // +0022 │ │ +01b0bc: 2200 6700 |0046: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +01b0c0: 7010 c500 0000 |0048: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ +01b0c6: 1405 0300 067f |004b: const v5, #float 1.78117e+38 // #7f060003 │ │ +01b0cc: 6e20 f804 5800 |004e: invoke-virtual {v8, v5}, Lorg/jsl/wfwt/MainActivity;.getString:(I)Ljava/lang/String; // method@04f8 │ │ +01b0d2: 0c05 |0051: move-result-object v5 │ │ +01b0d4: 6e20 cb00 5000 |0052: invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01b0da: 1a05 5100 |0055: const-string v5, ": " // string@0051 │ │ +01b0de: 6e20 cb00 5000 |0057: invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01b0e4: 5485 6602 |005a: iget-object v5, v8, Lorg/jsl/wfwt/MainActivity;.m_stationName:Ljava/lang/String; // field@0266 │ │ +01b0e8: 6e20 cb00 5000 |005c: invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01b0ee: 6e10 ce00 0000 |005f: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01b0f4: 0c00 |0062: move-result-object v0 │ │ +01b0f6: 6e20 0a05 0800 |0063: invoke-virtual {v8, v0}, Lorg/jsl/wfwt/MainActivity;.setTitle:(Ljava/lang/CharSequence;)V // method@050a │ │ +01b0fc: 1a00 f403 |0066: const-string v0, "audio" // string@03f4 │ │ +01b100: 6e20 f904 0800 |0068: invoke-virtual {v8, v0}, Lorg/jsl/wfwt/MainActivity;.getSystemService:(Ljava/lang/String;)Ljava/lang/Object; // method@04f9 │ │ +01b106: 0c00 |006b: move-result-object v0 │ │ +01b108: 1f00 2100 |006c: check-cast v0, Landroid/media/AudioManager; // type@0021 │ │ +01b10c: 1235 |006e: const/4 v5, #int 3 // #3 │ │ +01b10e: 6e20 3c00 5000 |006f: invoke-virtual {v0, v5}, Landroid/media/AudioManager;.getStreamMaxVolume:(I)I // method@003c │ │ +01b114: 0a00 |0072: move-result v0 │ │ +01b116: 5980 5b02 |0073: iput v0, v8, Lorg/jsl/wfwt/MainActivity;.m_audioMaxVolume:I // field@025b │ │ +01b11a: 1a00 1d07 |0075: const-string v0, "volume" // string@071d │ │ +01b11e: 7230 2c00 0204 |0077: invoke-interface {v2, v0, v4}, Landroid/content/SharedPreferences;.getString:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; // method@002c │ │ +01b124: 0c05 |007a: move-result-object v5 │ │ +01b126: 3805 1500 |007b: if-eqz v5, 0090 // +0015 │ │ +01b12a: 6e10 bf00 0500 |007d: invoke-virtual {v5}, Ljava/lang/String;.isEmpty:()Z // method@00bf │ │ +01b130: 0a06 |0080: move-result v6 │ │ +01b132: 3806 0300 |0081: if-eqz v6, 0084 // +0003 │ │ +01b136: 280d |0083: goto 0090 // +000d │ │ +01b138: 7110 a700 0500 |0084: invoke-static {v5}, Ljava/lang/Integer;.parseInt:(Ljava/lang/String;)I // method@00a7 │ │ +01b13e: 0a05 |0087: move-result v5 │ │ +01b140: 5985 5d02 |0088: iput v5, v8, Lorg/jsl/wfwt/MainActivity;.m_audioVolume:I // field@025d │ │ +01b144: 280a |008a: goto 0094 // +000a │ │ +01b146: 5285 5b02 |008b: iget v5, v8, Lorg/jsl/wfwt/MainActivity;.m_audioMaxVolume:I // field@025b │ │ +01b14a: 5985 5d02 |008d: iput v5, v8, Lorg/jsl/wfwt/MainActivity;.m_audioVolume:I // field@025d │ │ +01b14e: 2805 |008f: goto 0094 // +0005 │ │ +01b150: 5285 5b02 |0090: iget v5, v8, Lorg/jsl/wfwt/MainActivity;.m_audioMaxVolume:I // field@025b │ │ +01b154: 5985 5d02 |0092: iput v5, v8, Lorg/jsl/wfwt/MainActivity;.m_audioVolume:I // field@025d │ │ +01b158: 2205 1300 |0094: new-instance v5, Landroid/content/Intent; // type@0013 │ │ +01b15c: 1c06 5301 |0096: const-class v6, Lorg/jsl/wfwt/WalkieService; // type@0153 │ │ +01b160: 7030 2100 8506 |0098: invoke-direct {v5, v8, v6}, Landroid/content/Intent;.:(Landroid/content/Context;Ljava/lang/Class;)V // method@0021 │ │ +01b166: 5b85 6502 |009b: iput-object v5, v8, Lorg/jsl/wfwt/MainActivity;.m_serviceIntent:Landroid/content/Intent; // field@0265 │ │ +01b16a: 5486 6602 |009d: iget-object v6, v8, Lorg/jsl/wfwt/MainActivity;.m_stationName:Ljava/lang/String; // field@0266 │ │ +01b16e: 6e30 2500 3506 |009f: invoke-virtual {v5, v3, v6}, Landroid/content/Intent;.putExtra:(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent; // method@0025 │ │ +01b174: 5483 6502 |00a2: iget-object v3, v8, Lorg/jsl/wfwt/MainActivity;.m_serviceIntent:Landroid/content/Intent; // field@0265 │ │ +01b178: 5285 5d02 |00a4: iget v5, v8, Lorg/jsl/wfwt/MainActivity;.m_audioVolume:I // field@025d │ │ +01b17c: 6e30 2400 0305 |00a6: invoke-virtual {v3, v0, v5}, Landroid/content/Intent;.putExtra:(Ljava/lang/String;I)Landroid/content/Intent; // method@0024 │ │ +01b182: 5480 6502 |00a9: iget-object v0, v8, Lorg/jsl/wfwt/MainActivity;.m_serviceIntent:Landroid/content/Intent; // field@0265 │ │ +01b186: 6e20 0b05 0800 |00ab: invoke-virtual {v8, v0}, Lorg/jsl/wfwt/MainActivity;.startService:(Landroid/content/Intent;)Landroid/content/ComponentName; // method@050b │ │ +01b18c: 0c00 |00ae: move-result-object v0 │ │ +01b18e: 2203 2c01 |00af: new-instance v3, Lorg/jsl/wfwt/MainActivity$4; // type@012c │ │ +01b192: 7020 d004 8300 |00b1: invoke-direct {v3, v8}, Lorg/jsl/wfwt/MainActivity$4;.:(Lorg/jsl/wfwt/MainActivity;)V // method@04d0 │ │ +01b198: 5b83 6402 |00b4: iput-object v3, v8, Lorg/jsl/wfwt/MainActivity;.m_serviceConnection:Landroid/content/ServiceConnection; // field@0264 │ │ +01b19c: 5485 6502 |00b6: iget-object v5, v8, Lorg/jsl/wfwt/MainActivity;.m_serviceIntent:Landroid/content/Intent; // field@0265 │ │ +01b1a0: 1216 |00b8: const/4 v6, #int 1 // #1 │ │ +01b1a2: 6e40 f104 5863 |00b9: invoke-virtual {v8, v5, v3, v6}, Lorg/jsl/wfwt/MainActivity;.bindService:(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z // method@04f1 │ │ +01b1a8: 0a03 |00bc: move-result v3 │ │ +01b1aa: 3903 0400 |00bd: if-nez v3, 00c1 // +0004 │ │ +01b1ae: 5b84 6402 |00bf: iput-object v4, v8, Lorg/jsl/wfwt/MainActivity;.m_serviceConnection:Landroid/content/ServiceConnection; // field@0264 │ │ +01b1b2: 2205 6700 |00c1: new-instance v5, Ljava/lang/StringBuilder; // type@0067 │ │ +01b1b6: 1a07 2104 |00c3: const-string v7, "componentName=" // string@0421 │ │ +01b1ba: 7020 c600 7500 |00c5: invoke-direct {v5, v7}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ +01b1c0: 6e20 ca00 0500 |00c8: invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ +01b1c6: 1a00 0b00 |00cb: const-string v0, " bindRC=" // string@000b │ │ +01b1ca: 6e20 cb00 0500 |00cd: invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01b1d0: 6e20 cc00 3500 |00d0: invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;.append:(Z)Ljava/lang/StringBuilder; // method@00cc │ │ +01b1d6: 6e10 ce00 0500 |00d3: invoke-virtual {v5}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01b1dc: 0c00 |00d6: move-result-object v0 │ │ +01b1de: 7120 6100 0100 |00d7: invoke-static {v1, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +01b1e4: 1a00 0e04 |00da: const-string v0, "check-wifi-status" // string@040e │ │ +01b1e8: 7230 2b00 0206 |00dc: invoke-interface {v2, v0, v6}, Landroid/content/SharedPreferences;.getBoolean:(Ljava/lang/String;Z)Z // method@002b │ │ +01b1ee: 0a00 |00df: move-result v0 │ │ +01b1f0: 3800 4900 |00e0: if-eqz v0, 0129 // +0049 │ │ +01b1f4: 6e10 f404 0800 |00e2: invoke-virtual {v8}, Lorg/jsl/wfwt/MainActivity;.getApplicationContext:()Landroid/content/Context; // method@04f4 │ │ +01b1fa: 0c00 |00e5: move-result-object v0 │ │ +01b1fc: 1a01 2107 |00e6: const-string v1, "wifi" // string@0721 │ │ +01b200: 6e20 1f00 1000 |00e8: invoke-virtual {v0, v1}, Landroid/content/Context;.getSystemService:(Ljava/lang/String;)Ljava/lang/Object; // method@001f │ │ +01b206: 0c00 |00eb: move-result-object v0 │ │ +01b208: 1f00 2900 |00ec: check-cast v0, Landroid/net/wifi/WifiManager; // type@0029 │ │ +01b20c: 3800 3b00 |00ee: if-eqz v0, 0129 // +003b │ │ +01b210: 6e10 5900 0000 |00f0: invoke-virtual {v0}, Landroid/net/wifi/WifiManager;.isWifiEnabled:()Z // method@0059 │ │ +01b216: 0a01 |00f3: move-result v1 │ │ +01b218: 3901 3500 |00f4: if-nez v1, 0129 // +0035 │ │ +01b21c: 7110 6800 0800 |00f6: invoke-static {v8}, Landroid/view/LayoutInflater;.from:(Landroid/content/Context;)Landroid/view/LayoutInflater; // method@0068 │ │ +01b222: 0c01 |00f9: move-result-object v1 │ │ +01b224: 2203 0700 |00fa: new-instance v3, Landroid/app/AlertDialog$Builder; // type@0007 │ │ +01b228: 7020 0900 8300 |00fc: invoke-direct {v3, v8}, Landroid/app/AlertDialog$Builder;.:(Landroid/content/Context;)V // method@0009 │ │ +01b22e: 1405 0200 037f |00ff: const v5, #float 1.74129e+38 // #7f030002 │ │ +01b234: 6e30 6900 5104 |0102: invoke-virtual {v1, v5, v4}, Landroid/view/LayoutInflater;.inflate:(ILandroid/view/ViewGroup;)Landroid/view/View; // method@0069 │ │ +01b23a: 0c01 |0105: move-result-object v1 │ │ +01b23c: 2204 2d01 |0106: new-instance v4, Lorg/jsl/wfwt/MainActivity$5; // type@012d │ │ +01b240: 7052 d304 8410 |0108: invoke-direct {v4, v8, v0, v1, v2}, Lorg/jsl/wfwt/MainActivity$5;.:(Lorg/jsl/wfwt/MainActivity;Landroid/net/wifi/WifiManager;Landroid/view/View;Landroid/content/SharedPreferences;)V // method@04d3 │ │ +01b246: 6e20 0f00 1300 |010b: invoke-virtual {v3, v1}, Landroid/app/AlertDialog$Builder;.setView:(Landroid/view/View;)Landroid/app/AlertDialog$Builder; // method@000f │ │ +01b24c: 1400 1400 067f |010e: const v0, #float 1.78117e+38 // #7f060014 │ │ +01b252: 6e20 f804 0800 |0111: invoke-virtual {v8, v0}, Lorg/jsl/wfwt/MainActivity;.getString:(I)Ljava/lang/String; // method@04f8 │ │ +01b258: 0c00 |0114: move-result-object v0 │ │ +01b25a: 6e30 0d00 0304 |0115: invoke-virtual {v3, v0, v4}, Landroid/app/AlertDialog$Builder;.setPositiveButton:(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; // method@000d │ │ +01b260: 1400 0500 067f |0118: const v0, #float 1.78117e+38 // #7f060005 │ │ +01b266: 6e20 f804 0800 |011b: invoke-virtual {v8, v0}, Lorg/jsl/wfwt/MainActivity;.getString:(I)Ljava/lang/String; // method@04f8 │ │ +01b26c: 0c00 |011e: move-result-object v0 │ │ +01b26e: 6e30 0c00 0304 |011f: invoke-virtual {v3, v0, v4}, Landroid/app/AlertDialog$Builder;.setNegativeButton:(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; // method@000c │ │ +01b274: 6e10 0a00 0300 |0122: invoke-virtual {v3}, Landroid/app/AlertDialog$Builder;.create:()Landroid/app/AlertDialog; // method@000a │ │ +01b27a: 0c00 |0125: move-result-object v0 │ │ +01b27c: 6e10 1000 0000 |0126: invoke-virtual {v0}, Landroid/app/AlertDialog;.show:()V // method@0010 │ │ +01b282: 0e00 |0129: return-void │ │ catches : 1 │ │ 0x0084 - 0x008a │ │ Ljava/lang/NumberFormatException; -> 0x008b │ │ positions : │ │ 0x0000 line=396 │ │ 0x0007 line=397 │ │ 0x000c line=399 │ │ @@ -39339,27 +39339,27 @@ │ │ type : '(Ljava/lang/String;Z)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 5 │ │ ins : 3 │ │ outs : 4 │ │ insns size : 28 16-bit code units │ │ -01b290: |[01b290] org.jsl.wfwt.MainActivity.onStateChanged:(Ljava/lang/String;Z)V │ │ -01b2a0: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ -01b2a4: 1a01 1806 |0002: const-string v1, "onStateChanged: " // string@0618 │ │ -01b2a8: 7020 c600 1000 |0004: invoke-direct {v0, v1}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ -01b2ae: 6e20 cb00 3000 |0007: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -01b2b4: 6e10 ce00 0000 |000a: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01b2ba: 0c00 |000d: move-result-object v0 │ │ -01b2bc: 1a01 a002 |000e: const-string v1, "MainActivity" // string@02a0 │ │ -01b2c0: 7120 6100 0100 |0010: invoke-static {v1, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ -01b2c6: 2200 2a01 |0013: new-instance v0, Lorg/jsl/wfwt/MainActivity$2; // type@012a │ │ -01b2ca: 7040 cc04 2043 |0015: invoke-direct {v0, v2, v3, v4}, Lorg/jsl/wfwt/MainActivity$2;.:(Lorg/jsl/wfwt/MainActivity;Ljava/lang/String;Z)V // method@04cc │ │ -01b2d0: 6e20 0805 0200 |0018: invoke-virtual {v2, v0}, Lorg/jsl/wfwt/MainActivity;.runOnUiThread:(Ljava/lang/Runnable;)V // method@0508 │ │ -01b2d6: 0e00 |001b: return-void │ │ +01b294: |[01b294] org.jsl.wfwt.MainActivity.onStateChanged:(Ljava/lang/String;Z)V │ │ +01b2a4: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ +01b2a8: 1a01 1806 |0002: const-string v1, "onStateChanged: " // string@0618 │ │ +01b2ac: 7020 c600 1000 |0004: invoke-direct {v0, v1}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@00c6 │ │ +01b2b2: 6e20 cb00 3000 |0007: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +01b2b8: 6e10 ce00 0000 |000a: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ +01b2be: 0c00 |000d: move-result-object v0 │ │ +01b2c0: 1a01 a002 |000e: const-string v1, "MainActivity" // string@02a0 │ │ +01b2c4: 7120 6100 0100 |0010: invoke-static {v1, v0}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@0061 │ │ +01b2ca: 2200 2a01 |0013: new-instance v0, Lorg/jsl/wfwt/MainActivity$2; // type@012a │ │ +01b2ce: 7040 cc04 2043 |0015: invoke-direct {v0, v2, v3, v4}, Lorg/jsl/wfwt/MainActivity$2;.:(Lorg/jsl/wfwt/MainActivity;Ljava/lang/String;Z)V // method@04cc │ │ +01b2d4: 6e20 0805 0200 |0018: invoke-virtual {v2, v0}, Lorg/jsl/wfwt/MainActivity;.runOnUiThread:(Ljava/lang/Runnable;)V // method@0508 │ │ +01b2da: 0e00 |001b: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=294 │ │ 0x0013 line=295 │ │ locals : │ │ 0x0000 - 0x001c reg=2 this Lorg/jsl/wfwt/MainActivity; │ │ 0x0000 - 0x001c reg=3 (null) Ljava/lang/String; │ │ @@ -39370,19 +39370,19 @@ │ │ type : '([Lorg/jsl/wfwt/StationInfo;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 2 │ │ outs : 3 │ │ insns size : 9 16-bit code units │ │ -01b2d8: |[01b2d8] org.jsl.wfwt.MainActivity.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V │ │ -01b2e8: 2200 2b01 |0000: new-instance v0, Lorg/jsl/wfwt/MainActivity$3; // type@012b │ │ -01b2ec: 7030 ce04 1002 |0002: invoke-direct {v0, v1, v2}, Lorg/jsl/wfwt/MainActivity$3;.:(Lorg/jsl/wfwt/MainActivity;[Lorg/jsl/wfwt/StationInfo;)V // method@04ce │ │ -01b2f2: 6e20 0805 0100 |0005: invoke-virtual {v1, v0}, Lorg/jsl/wfwt/MainActivity;.runOnUiThread:(Ljava/lang/Runnable;)V // method@0508 │ │ -01b2f8: 0e00 |0008: return-void │ │ +01b2dc: |[01b2dc] org.jsl.wfwt.MainActivity.onStationListChanged:([Lorg/jsl/wfwt/StationInfo;)V │ │ +01b2ec: 2200 2b01 |0000: new-instance v0, Lorg/jsl/wfwt/MainActivity$3; // type@012b │ │ +01b2f0: 7030 ce04 1002 |0002: invoke-direct {v0, v1, v2}, Lorg/jsl/wfwt/MainActivity$3;.:(Lorg/jsl/wfwt/MainActivity;[Lorg/jsl/wfwt/StationInfo;)V // method@04ce │ │ +01b2f6: 6e20 0805 0100 |0005: invoke-virtual {v1, v0}, Lorg/jsl/wfwt/MainActivity;.runOnUiThread:(Ljava/lang/Runnable;)V // method@0508 │ │ +01b2fc: 0e00 |0008: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=306 │ │ locals : │ │ 0x0000 - 0x0009 reg=1 this Lorg/jsl/wfwt/MainActivity; │ │ 0x0000 - 0x0009 reg=2 (null) [Lorg/jsl/wfwt/StationInfo; │ │ │ │ @@ -39421,17 +39421,17 @@ │ │ type : '()V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -01b38c: |[01b38c] org.jsl.wfwt.Protocol$AudioFrame.:()V │ │ -01b39c: 7010 2205 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/Protocol$Message;.:()V // method@0522 │ │ -01b3a2: 0e00 |0003: return-void │ │ +01b390: |[01b390] org.jsl.wfwt.Protocol$AudioFrame.:()V │ │ +01b3a0: 7010 2205 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/Protocol$Message;.:()V // method@0522 │ │ +01b3a6: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=275 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/jsl/wfwt/Protocol$AudioFrame; │ │ │ │ #1 : (in Lorg/jsl/wfwt/Protocol$AudioFrame;) │ │ @@ -39439,29 +39439,29 @@ │ │ type : '(Lorg/jsl/collider/RetainableByteBuffer;)Lorg/jsl/collider/RetainableByteBuffer;' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 27 16-bit code units │ │ -01b344: |[01b344] org.jsl.wfwt.Protocol$AudioFrame.getAudioData:(Lorg/jsl/collider/RetainableByteBuffer;)Lorg/jsl/collider/RetainableByteBuffer; │ │ -01b354: 6e10 e802 0200 |0000: invoke-virtual {v2}, Lorg/jsl/collider/RetainableByteBuffer;.remaining:()I // method@02e8 │ │ -01b35a: 6e10 cd02 0200 |0003: invoke-virtual {v2}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:()S // method@02cd │ │ -01b360: 0a00 |0006: move-result v0 │ │ -01b362: 6e10 cd02 0200 |0007: invoke-virtual {v2}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:()S // method@02cd │ │ -01b368: 1201 |000a: const/4 v1, #int 0 // #0 │ │ -01b36a: 7110 1105 0100 |000b: invoke-static {v1}, Lorg/jsl/wfwt/Protocol$AudioFrame;.getMessageSize:(I)I // method@0511 │ │ -01b370: 0a01 |000e: move-result v1 │ │ -01b372: 3310 0400 |000f: if-ne v0, v1, 0013 // +0004 │ │ -01b376: 1202 |0011: const/4 v2, #int 0 // #0 │ │ -01b378: 1102 |0012: return-object v2 │ │ -01b37a: 6e10 cd02 0200 |0013: invoke-virtual {v2}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:()S // method@02cd │ │ -01b380: 6e10 ec02 0200 |0016: invoke-virtual {v2}, Lorg/jsl/collider/RetainableByteBuffer;.slice:()Lorg/jsl/collider/RetainableByteBuffer; // method@02ec │ │ -01b386: 0c02 |0019: move-result-object v2 │ │ -01b388: 1102 |001a: return-object v2 │ │ +01b348: |[01b348] org.jsl.wfwt.Protocol$AudioFrame.getAudioData:(Lorg/jsl/collider/RetainableByteBuffer;)Lorg/jsl/collider/RetainableByteBuffer; │ │ +01b358: 6e10 e802 0200 |0000: invoke-virtual {v2}, Lorg/jsl/collider/RetainableByteBuffer;.remaining:()I // method@02e8 │ │ +01b35e: 6e10 cd02 0200 |0003: invoke-virtual {v2}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:()S // method@02cd │ │ +01b364: 0a00 |0006: move-result v0 │ │ +01b366: 6e10 cd02 0200 |0007: invoke-virtual {v2}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:()S // method@02cd │ │ +01b36c: 1201 |000a: const/4 v1, #int 0 // #0 │ │ +01b36e: 7110 1105 0100 |000b: invoke-static {v1}, Lorg/jsl/wfwt/Protocol$AudioFrame;.getMessageSize:(I)I // method@0511 │ │ +01b374: 0a01 |000e: move-result v1 │ │ +01b376: 3310 0400 |000f: if-ne v0, v1, 0013 // +0004 │ │ +01b37a: 1202 |0011: const/4 v2, #int 0 // #0 │ │ +01b37c: 1102 |0012: return-object v2 │ │ +01b37e: 6e10 cd02 0200 |0013: invoke-virtual {v2}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:()S // method@02cd │ │ +01b384: 6e10 ec02 0200 |0016: invoke-virtual {v2}, Lorg/jsl/collider/RetainableByteBuffer;.slice:()Lorg/jsl/collider/RetainableByteBuffer; // method@02ec │ │ +01b38a: 0c02 |0019: move-result-object v2 │ │ +01b38c: 1102 |001a: return-object v2 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=300 │ │ 0x0003 line=301 │ │ 0x0007 line=304 │ │ 0x000b line=307 │ │ 0x0013 line=309 │ │ @@ -39474,25 +39474,25 @@ │ │ type : '(Lorg/jsl/collider/RetainableByteBuffer;)Z' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 16 16-bit code units │ │ -01b2fc: |[01b2fc] org.jsl.wfwt.Protocol$AudioFrame.getBatchStart:(Lorg/jsl/collider/RetainableByteBuffer;)Z │ │ -01b30c: 6e10 d302 0100 |0000: invoke-virtual {v1}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ -01b312: 0a00 |0003: move-result v0 │ │ -01b314: d800 0004 |0004: add-int/lit8 v0, v0, #int 4 // #04 │ │ -01b318: 6e20 ce02 0100 |0006: invoke-virtual {v1, v0}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:(I)S // method@02ce │ │ -01b31e: 0a01 |0009: move-result v1 │ │ -01b320: 3801 0400 |000a: if-eqz v1, 000e // +0004 │ │ -01b324: 1211 |000c: const/4 v1, #int 1 // #1 │ │ -01b326: 2802 |000d: goto 000f // +0002 │ │ -01b328: 1201 |000e: const/4 v1, #int 0 // #0 │ │ -01b32a: 0f01 |000f: return v1 │ │ +01b300: |[01b300] org.jsl.wfwt.Protocol$AudioFrame.getBatchStart:(Lorg/jsl/collider/RetainableByteBuffer;)Z │ │ +01b310: 6e10 d302 0100 |0000: invoke-virtual {v1}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ +01b316: 0a00 |0003: move-result v0 │ │ +01b318: d800 0004 |0004: add-int/lit8 v0, v0, #int 4 // #04 │ │ +01b31c: 6e20 ce02 0100 |0006: invoke-virtual {v1, v0}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:(I)S // method@02ce │ │ +01b322: 0a01 |0009: move-result v1 │ │ +01b324: 3801 0400 |000a: if-eqz v1, 000e // +0004 │ │ +01b328: 1211 |000c: const/4 v1, #int 1 // #1 │ │ +01b32a: 2802 |000d: goto 000f // +0002 │ │ +01b32c: 1201 |000e: const/4 v1, #int 0 // #0 │ │ +01b32e: 0f01 |000f: return v1 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=293 │ │ 0x0006 line=294 │ │ locals : │ │ 0x0000 - 0x0010 reg=1 (null) Lorg/jsl/collider/RetainableByteBuffer; │ │ │ │ @@ -39501,39 +39501,39 @@ │ │ type : '(I)I' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -01b32c: |[01b32c] org.jsl.wfwt.Protocol$AudioFrame.getMessageSize:(I)I │ │ -01b33c: d800 0006 |0000: add-int/lit8 v0, v0, #int 6 // #06 │ │ -01b340: 0f00 |0002: return v0 │ │ +01b330: |[01b330] org.jsl.wfwt.Protocol$AudioFrame.getMessageSize:(I)I │ │ +01b340: d800 0006 |0000: add-int/lit8 v0, v0, #int 6 // #06 │ │ +01b344: 0f00 |0002: return v0 │ │ catches : (none) │ │ positions : │ │ locals : │ │ │ │ #4 : (in Lorg/jsl/wfwt/Protocol$AudioFrame;) │ │ name : 'init' │ │ type : '(Ljava/nio/ByteBuffer;ZI)V' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 4 │ │ ins : 3 │ │ outs : 3 │ │ insns size : 14 16-bit code units │ │ -01b3a4: |[01b3a4] org.jsl.wfwt.Protocol$AudioFrame.init:(Ljava/nio/ByteBuffer;ZI)V │ │ -01b3b4: 7110 1105 0300 |0000: invoke-static {v3}, Lorg/jsl/wfwt/Protocol$AudioFrame;.getMessageSize:(I)I // method@0511 │ │ -01b3ba: 0a03 |0003: move-result v3 │ │ -01b3bc: 8f33 |0004: int-to-short v3, v3 │ │ -01b3be: 1240 |0005: const/4 v0, #int 4 // #4 │ │ -01b3c0: 7130 2705 3100 |0006: invoke-static {v1, v3, v0}, Lorg/jsl/wfwt/Protocol$Message;.init:(Ljava/nio/ByteBuffer;SS)Ljava/nio/ByteBuffer; // method@0527 │ │ -01b3c6: 8f22 |0009: int-to-short v2, v2 │ │ -01b3c8: 6e20 1a01 2100 |000a: invoke-virtual {v1, v2}, Ljava/nio/ByteBuffer;.putShort:(S)Ljava/nio/ByteBuffer; // method@011a │ │ -01b3ce: 0e00 |000d: return-void │ │ +01b3a8: |[01b3a8] org.jsl.wfwt.Protocol$AudioFrame.init:(Ljava/nio/ByteBuffer;ZI)V │ │ +01b3b8: 7110 1105 0300 |0000: invoke-static {v3}, Lorg/jsl/wfwt/Protocol$AudioFrame;.getMessageSize:(I)I // method@0511 │ │ +01b3be: 0a03 |0003: move-result v3 │ │ +01b3c0: 8f33 |0004: int-to-short v3, v3 │ │ +01b3c2: 1240 |0005: const/4 v0, #int 4 // #4 │ │ +01b3c4: 7130 2705 3100 |0006: invoke-static {v1, v3, v0}, Lorg/jsl/wfwt/Protocol$Message;.init:(Ljava/nio/ByteBuffer;SS)Ljava/nio/ByteBuffer; // method@0527 │ │ +01b3ca: 8f22 |0009: int-to-short v2, v2 │ │ +01b3cc: 6e20 1a01 2100 |000a: invoke-virtual {v1, v2}, Ljava/nio/ByteBuffer;.putShort:(S)Ljava/nio/ByteBuffer; // method@011a │ │ +01b3d2: 0e00 |000d: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=287 │ │ 0x000a line=288 │ │ locals : │ │ 0x0000 - 0x000e reg=1 (null) Ljava/nio/ByteBuffer; │ │ 0x0000 - 0x000e reg=2 (null) Z │ │ @@ -39579,17 +39579,17 @@ │ │ type : '()V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -01b4b0: |[01b4b0] org.jsl.wfwt.Protocol$HandshakeReplyFail.:()V │ │ -01b4c0: 7010 2205 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/Protocol$Message;.:()V // method@0522 │ │ -01b4c6: 0e00 |0003: return-void │ │ +01b4b4: |[01b4b4] org.jsl.wfwt.Protocol$HandshakeReplyFail.:()V │ │ +01b4c4: 7010 2205 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/Protocol$Message;.:()V // method@0522 │ │ +01b4ca: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=235 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/jsl/wfwt/Protocol$HandshakeReplyFail; │ │ │ │ #1 : (in Lorg/jsl/wfwt/Protocol$HandshakeReplyFail;) │ │ @@ -39597,37 +39597,37 @@ │ │ type : '(Ljava/lang/String;)Ljava/nio/ByteBuffer;' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 43 16-bit code units │ │ -01b448: |[01b448] org.jsl.wfwt.Protocol$HandshakeReplyFail.create:(Ljava/lang/String;)Ljava/nio/ByteBuffer; │ │ -01b458: 7100 5401 0000 |0000: invoke-static {}, Ljava/nio/charset/Charset;.defaultCharset:()Ljava/nio/charset/Charset; // method@0154 │ │ -01b45e: 0c00 |0003: move-result-object v0 │ │ -01b460: 6e10 5601 0000 |0004: invoke-virtual {v0}, Ljava/nio/charset/Charset;.newEncoder:()Ljava/nio/charset/CharsetEncoder; // method@0156 │ │ -01b466: 0c00 |0007: move-result-object v0 │ │ -01b468: 7110 2101 0200 |0008: invoke-static {v2}, Ljava/nio/CharBuffer;.wrap:(Ljava/lang/CharSequence;)Ljava/nio/CharBuffer; // method@0121 │ │ -01b46e: 0c02 |000b: move-result-object v2 │ │ -01b470: 6e20 5801 2000 |000c: invoke-virtual {v0, v2}, Ljava/nio/charset/CharsetEncoder;.encode:(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer; // method@0158 │ │ -01b476: 0c02 |000f: move-result-object v2 │ │ -01b478: 6e10 1b01 0200 |0010: invoke-virtual {v2}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ -01b47e: 0a00 |0013: move-result v0 │ │ -01b480: d800 0004 |0014: add-int/lit8 v0, v0, #int 4 // #04 │ │ -01b484: 8f00 |0016: int-to-short v0, v0 │ │ -01b486: 1231 |0017: const/4 v1, #int 3 // #3 │ │ -01b488: 7120 1505 0100 |0018: invoke-static {v1, v0}, Lorg/jsl/wfwt/Protocol$HandshakeReplyFail;.create:(SS)Ljava/nio/ByteBuffer; // method@0515 │ │ -01b48e: 0c00 |001b: move-result-object v0 │ │ -01b490: 6e10 1b01 0200 |001c: invoke-virtual {v2}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ -01b496: 0a01 |001f: move-result v1 │ │ -01b498: 8f11 |0020: int-to-short v1, v1 │ │ -01b49a: 6e20 1a01 1000 |0021: invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;.putShort:(S)Ljava/nio/ByteBuffer; // method@011a │ │ -01b4a0: 6e20 0f01 2000 |0024: invoke-virtual {v0, v2}, Ljava/nio/ByteBuffer;.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer; // method@010f │ │ -01b4a6: 6e10 1d01 0000 |0027: invoke-virtual {v0}, Ljava/nio/ByteBuffer;.rewind:()Ljava/nio/Buffer; // method@011d │ │ -01b4ac: 1100 |002a: return-object v0 │ │ +01b44c: |[01b44c] org.jsl.wfwt.Protocol$HandshakeReplyFail.create:(Ljava/lang/String;)Ljava/nio/ByteBuffer; │ │ +01b45c: 7100 5401 0000 |0000: invoke-static {}, Ljava/nio/charset/Charset;.defaultCharset:()Ljava/nio/charset/Charset; // method@0154 │ │ +01b462: 0c00 |0003: move-result-object v0 │ │ +01b464: 6e10 5601 0000 |0004: invoke-virtual {v0}, Ljava/nio/charset/Charset;.newEncoder:()Ljava/nio/charset/CharsetEncoder; // method@0156 │ │ +01b46a: 0c00 |0007: move-result-object v0 │ │ +01b46c: 7110 2101 0200 |0008: invoke-static {v2}, Ljava/nio/CharBuffer;.wrap:(Ljava/lang/CharSequence;)Ljava/nio/CharBuffer; // method@0121 │ │ +01b472: 0c02 |000b: move-result-object v2 │ │ +01b474: 6e20 5801 2000 |000c: invoke-virtual {v0, v2}, Ljava/nio/charset/CharsetEncoder;.encode:(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer; // method@0158 │ │ +01b47a: 0c02 |000f: move-result-object v2 │ │ +01b47c: 6e10 1b01 0200 |0010: invoke-virtual {v2}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ +01b482: 0a00 |0013: move-result v0 │ │ +01b484: d800 0004 |0014: add-int/lit8 v0, v0, #int 4 // #04 │ │ +01b488: 8f00 |0016: int-to-short v0, v0 │ │ +01b48a: 1231 |0017: const/4 v1, #int 3 // #3 │ │ +01b48c: 7120 1505 0100 |0018: invoke-static {v1, v0}, Lorg/jsl/wfwt/Protocol$HandshakeReplyFail;.create:(SS)Ljava/nio/ByteBuffer; // method@0515 │ │ +01b492: 0c00 |001b: move-result-object v0 │ │ +01b494: 6e10 1b01 0200 |001c: invoke-virtual {v2}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ +01b49a: 0a01 |001f: move-result v1 │ │ +01b49c: 8f11 |0020: int-to-short v1, v1 │ │ +01b49e: 6e20 1a01 1000 |0021: invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;.putShort:(S)Ljava/nio/ByteBuffer; // method@011a │ │ +01b4a4: 6e20 0f01 2000 |0024: invoke-virtual {v0, v2}, Ljava/nio/ByteBuffer;.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer; // method@010f │ │ +01b4aa: 6e10 1d01 0000 |0027: invoke-virtual {v0}, Ljava/nio/ByteBuffer;.rewind:()Ljava/nio/Buffer; // method@011d │ │ +01b4b0: 1100 |002a: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=244 │ │ 0x0008 line=245 │ │ 0x0010 line=246 │ │ 0x001c line=247 │ │ 0x0024 line=248 │ │ @@ -39640,39 +39640,39 @@ │ │ type : '(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String;' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 4 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 46 16-bit code units │ │ -01b3d0: |[01b3d0] org.jsl.wfwt.Protocol$HandshakeReplyFail.getStatusText:(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String; │ │ -01b3e0: 6e10 d302 0300 |0000: invoke-virtual {v3}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ -01b3e6: 0a00 |0003: move-result v0 │ │ -01b3e8: d801 0004 |0004: add-int/lit8 v1, v0, #int 4 // #04 │ │ -01b3ec: 6e20 d402 1300 |0006: invoke-virtual {v3, v1}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ -01b3f2: 6e10 cd02 0300 |0009: invoke-virtual {v3}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:()S // method@02cd │ │ -01b3f8: 0a01 |000c: move-result v1 │ │ -01b3fa: 3d01 1700 |000d: if-lez v1, 0024 // +0017 │ │ -01b3fe: 7100 5401 0000 |000f: invoke-static {}, Ljava/nio/charset/Charset;.defaultCharset:()Ljava/nio/charset/Charset; // method@0154 │ │ -01b404: 0c01 |0012: move-result-object v1 │ │ -01b406: 6e10 5501 0100 |0013: invoke-virtual {v1}, Ljava/nio/charset/Charset;.newDecoder:()Ljava/nio/charset/CharsetDecoder; // method@0155 │ │ -01b40c: 0c01 |0016: move-result-object v1 │ │ -01b40e: 6e10 cc02 0300 |0017: invoke-virtual {v3}, Lorg/jsl/collider/RetainableByteBuffer;.getNioByteBuffer:()Ljava/nio/ByteBuffer; // method@02cc │ │ -01b414: 0c02 |001a: move-result-object v2 │ │ -01b416: 6e20 5701 2100 |001b: invoke-virtual {v1, v2}, Ljava/nio/charset/CharsetDecoder;.decode:(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer; // method@0157 │ │ -01b41c: 0c01 |001e: move-result-object v1 │ │ -01b41e: 6e10 2001 0100 |001f: invoke-virtual {v1}, Ljava/nio/CharBuffer;.toString:()Ljava/lang/String; // method@0120 │ │ -01b424: 0c01 |0022: move-result-object v1 │ │ -01b426: 2802 |0023: goto 0025 // +0002 │ │ -01b428: 1201 |0024: const/4 v1, #int 0 // #0 │ │ -01b42a: 6e20 d402 0300 |0025: invoke-virtual {v3, v0}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ -01b430: 1101 |0028: return-object v1 │ │ -01b432: 0d01 |0029: move-exception v1 │ │ -01b434: 6e20 d402 0300 |002a: invoke-virtual {v3, v0}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ -01b43a: 2701 |002d: throw v1 │ │ +01b3d4: |[01b3d4] org.jsl.wfwt.Protocol$HandshakeReplyFail.getStatusText:(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String; │ │ +01b3e4: 6e10 d302 0300 |0000: invoke-virtual {v3}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ +01b3ea: 0a00 |0003: move-result v0 │ │ +01b3ec: d801 0004 |0004: add-int/lit8 v1, v0, #int 4 // #04 │ │ +01b3f0: 6e20 d402 1300 |0006: invoke-virtual {v3, v1}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ +01b3f6: 6e10 cd02 0300 |0009: invoke-virtual {v3}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:()S // method@02cd │ │ +01b3fc: 0a01 |000c: move-result v1 │ │ +01b3fe: 3d01 1700 |000d: if-lez v1, 0024 // +0017 │ │ +01b402: 7100 5401 0000 |000f: invoke-static {}, Ljava/nio/charset/Charset;.defaultCharset:()Ljava/nio/charset/Charset; // method@0154 │ │ +01b408: 0c01 |0012: move-result-object v1 │ │ +01b40a: 6e10 5501 0100 |0013: invoke-virtual {v1}, Ljava/nio/charset/Charset;.newDecoder:()Ljava/nio/charset/CharsetDecoder; // method@0155 │ │ +01b410: 0c01 |0016: move-result-object v1 │ │ +01b412: 6e10 cc02 0300 |0017: invoke-virtual {v3}, Lorg/jsl/collider/RetainableByteBuffer;.getNioByteBuffer:()Ljava/nio/ByteBuffer; // method@02cc │ │ +01b418: 0c02 |001a: move-result-object v2 │ │ +01b41a: 6e20 5701 2100 |001b: invoke-virtual {v1, v2}, Ljava/nio/charset/CharsetDecoder;.decode:(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer; // method@0157 │ │ +01b420: 0c01 |001e: move-result-object v1 │ │ +01b422: 6e10 2001 0100 |001f: invoke-virtual {v1}, Ljava/nio/CharBuffer;.toString:()Ljava/lang/String; // method@0120 │ │ +01b428: 0c01 |0022: move-result-object v1 │ │ +01b42a: 2802 |0023: goto 0025 // +0002 │ │ +01b42c: 1201 |0024: const/4 v1, #int 0 // #0 │ │ +01b42e: 6e20 d402 0300 |0025: invoke-virtual {v3, v0}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ +01b434: 1101 |0028: return-object v1 │ │ +01b436: 0d01 |0029: move-exception v1 │ │ +01b438: 6e20 d402 0300 |002a: invoke-virtual {v3, v0}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ +01b43e: 2701 |002d: throw v1 │ │ catches : 1 │ │ 0x0006 - 0x0023 │ │ -> 0x0029 │ │ positions : │ │ 0x0000 line=256 │ │ 0x0006 line=259 │ │ 0x0009 line=260 │ │ @@ -39725,17 +39725,17 @@ │ │ type : '()V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -01b6a8: |[01b6a8] org.jsl.wfwt.Protocol$HandshakeReplyOk.:()V │ │ -01b6b8: 7010 2205 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/Protocol$Message;.:()V // method@0522 │ │ -01b6be: 0e00 |0003: return-void │ │ +01b6ac: |[01b6ac] org.jsl.wfwt.Protocol$HandshakeReplyOk.:()V │ │ +01b6bc: 7010 2205 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/Protocol$Message;.:()V // method@0522 │ │ +01b6c2: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=162 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/jsl/wfwt/Protocol$HandshakeReplyOk; │ │ │ │ #1 : (in Lorg/jsl/wfwt/Protocol$HandshakeReplyOk;) │ │ @@ -39743,50 +39743,50 @@ │ │ type : '(Ljava/lang/String;Ljava/lang/String;)Ljava/nio/ByteBuffer;' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 5 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 67 16-bit code units │ │ -01b610: |[01b610] org.jsl.wfwt.Protocol$HandshakeReplyOk.create:(Ljava/lang/String;Ljava/lang/String;)Ljava/nio/ByteBuffer; │ │ -01b620: 7100 5401 0000 |0000: invoke-static {}, Ljava/nio/charset/Charset;.defaultCharset:()Ljava/nio/charset/Charset; // method@0154 │ │ -01b626: 0c00 |0003: move-result-object v0 │ │ -01b628: 6e10 5601 0000 |0004: invoke-virtual {v0}, Ljava/nio/charset/Charset;.newEncoder:()Ljava/nio/charset/CharsetEncoder; // method@0156 │ │ -01b62e: 0c00 |0007: move-result-object v0 │ │ -01b630: 7110 2101 0300 |0008: invoke-static {v3}, Ljava/nio/CharBuffer;.wrap:(Ljava/lang/CharSequence;)Ljava/nio/CharBuffer; // method@0121 │ │ -01b636: 0c03 |000b: move-result-object v3 │ │ -01b638: 6e20 5801 3000 |000c: invoke-virtual {v0, v3}, Ljava/nio/charset/CharsetEncoder;.encode:(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer; // method@0158 │ │ -01b63e: 0c03 |000f: move-result-object v3 │ │ -01b640: 7110 2101 0400 |0010: invoke-static {v4}, Ljava/nio/CharBuffer;.wrap:(Ljava/lang/CharSequence;)Ljava/nio/CharBuffer; // method@0121 │ │ -01b646: 0c04 |0013: move-result-object v4 │ │ -01b648: 6e20 5801 4000 |0014: invoke-virtual {v0, v4}, Ljava/nio/charset/CharsetEncoder;.encode:(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer; // method@0158 │ │ -01b64e: 0c04 |0017: move-result-object v4 │ │ -01b650: 6e10 1b01 0300 |0018: invoke-virtual {v3}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ -01b656: 0a00 |001b: move-result v0 │ │ -01b658: 1221 |001c: const/4 v1, #int 2 // #2 │ │ -01b65a: b010 |001d: add-int/2addr v0, v1 │ │ -01b65c: b010 |001e: add-int/2addr v0, v1 │ │ -01b65e: 6e10 1b01 0400 |001f: invoke-virtual {v4}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ -01b664: 0a02 |0022: move-result v2 │ │ -01b666: b020 |0023: add-int/2addr v0, v2 │ │ -01b668: 8f00 |0024: int-to-short v0, v0 │ │ -01b66a: 7120 1905 0100 |0025: invoke-static {v1, v0}, Lorg/jsl/wfwt/Protocol$HandshakeReplyOk;.create:(SS)Ljava/nio/ByteBuffer; // method@0519 │ │ -01b670: 0c00 |0028: move-result-object v0 │ │ -01b672: 6e10 1b01 0300 |0029: invoke-virtual {v3}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ -01b678: 0a01 |002c: move-result v1 │ │ -01b67a: 8f11 |002d: int-to-short v1, v1 │ │ -01b67c: 6e20 1a01 1000 |002e: invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;.putShort:(S)Ljava/nio/ByteBuffer; // method@011a │ │ -01b682: 6e20 0f01 3000 |0031: invoke-virtual {v0, v3}, Ljava/nio/ByteBuffer;.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer; // method@010f │ │ -01b688: 6e10 1b01 0400 |0034: invoke-virtual {v4}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ -01b68e: 0a03 |0037: move-result v3 │ │ -01b690: 8f33 |0038: int-to-short v3, v3 │ │ -01b692: 6e20 1a01 3000 |0039: invoke-virtual {v0, v3}, Ljava/nio/ByteBuffer;.putShort:(S)Ljava/nio/ByteBuffer; // method@011a │ │ -01b698: 6e20 0f01 4000 |003c: invoke-virtual {v0, v4}, Ljava/nio/ByteBuffer;.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer; // method@010f │ │ -01b69e: 6e10 1d01 0000 |003f: invoke-virtual {v0}, Ljava/nio/ByteBuffer;.rewind:()Ljava/nio/Buffer; // method@011d │ │ -01b6a4: 1100 |0042: return-object v0 │ │ +01b614: |[01b614] org.jsl.wfwt.Protocol$HandshakeReplyOk.create:(Ljava/lang/String;Ljava/lang/String;)Ljava/nio/ByteBuffer; │ │ +01b624: 7100 5401 0000 |0000: invoke-static {}, Ljava/nio/charset/Charset;.defaultCharset:()Ljava/nio/charset/Charset; // method@0154 │ │ +01b62a: 0c00 |0003: move-result-object v0 │ │ +01b62c: 6e10 5601 0000 |0004: invoke-virtual {v0}, Ljava/nio/charset/Charset;.newEncoder:()Ljava/nio/charset/CharsetEncoder; // method@0156 │ │ +01b632: 0c00 |0007: move-result-object v0 │ │ +01b634: 7110 2101 0300 |0008: invoke-static {v3}, Ljava/nio/CharBuffer;.wrap:(Ljava/lang/CharSequence;)Ljava/nio/CharBuffer; // method@0121 │ │ +01b63a: 0c03 |000b: move-result-object v3 │ │ +01b63c: 6e20 5801 3000 |000c: invoke-virtual {v0, v3}, Ljava/nio/charset/CharsetEncoder;.encode:(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer; // method@0158 │ │ +01b642: 0c03 |000f: move-result-object v3 │ │ +01b644: 7110 2101 0400 |0010: invoke-static {v4}, Ljava/nio/CharBuffer;.wrap:(Ljava/lang/CharSequence;)Ljava/nio/CharBuffer; // method@0121 │ │ +01b64a: 0c04 |0013: move-result-object v4 │ │ +01b64c: 6e20 5801 4000 |0014: invoke-virtual {v0, v4}, Ljava/nio/charset/CharsetEncoder;.encode:(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer; // method@0158 │ │ +01b652: 0c04 |0017: move-result-object v4 │ │ +01b654: 6e10 1b01 0300 |0018: invoke-virtual {v3}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ +01b65a: 0a00 |001b: move-result v0 │ │ +01b65c: 1221 |001c: const/4 v1, #int 2 // #2 │ │ +01b65e: b010 |001d: add-int/2addr v0, v1 │ │ +01b660: b010 |001e: add-int/2addr v0, v1 │ │ +01b662: 6e10 1b01 0400 |001f: invoke-virtual {v4}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ +01b668: 0a02 |0022: move-result v2 │ │ +01b66a: b020 |0023: add-int/2addr v0, v2 │ │ +01b66c: 8f00 |0024: int-to-short v0, v0 │ │ +01b66e: 7120 1905 0100 |0025: invoke-static {v1, v0}, Lorg/jsl/wfwt/Protocol$HandshakeReplyOk;.create:(SS)Ljava/nio/ByteBuffer; // method@0519 │ │ +01b674: 0c00 |0028: move-result-object v0 │ │ +01b676: 6e10 1b01 0300 |0029: invoke-virtual {v3}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ +01b67c: 0a01 |002c: move-result v1 │ │ +01b67e: 8f11 |002d: int-to-short v1, v1 │ │ +01b680: 6e20 1a01 1000 |002e: invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;.putShort:(S)Ljava/nio/ByteBuffer; // method@011a │ │ +01b686: 6e20 0f01 3000 |0031: invoke-virtual {v0, v3}, Ljava/nio/ByteBuffer;.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer; // method@010f │ │ +01b68c: 6e10 1b01 0400 |0034: invoke-virtual {v4}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ +01b692: 0a03 |0037: move-result v3 │ │ +01b694: 8f33 |0038: int-to-short v3, v3 │ │ +01b696: 6e20 1a01 3000 |0039: invoke-virtual {v0, v3}, Ljava/nio/ByteBuffer;.putShort:(S)Ljava/nio/ByteBuffer; // method@011a │ │ +01b69c: 6e20 0f01 4000 |003c: invoke-virtual {v0, v4}, Ljava/nio/ByteBuffer;.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer; // method@010f │ │ +01b6a2: 6e10 1d01 0000 |003f: invoke-virtual {v0}, Ljava/nio/ByteBuffer;.rewind:()Ljava/nio/Buffer; // method@011d │ │ +01b6a8: 1100 |0042: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=173 │ │ 0x0008 line=174 │ │ 0x0010 line=175 │ │ 0x0018 line=176 │ │ 0x0029 line=177 │ │ @@ -39803,47 +39803,47 @@ │ │ type : '(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String;' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 6 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 64 16-bit code units │ │ -01b4c8: |[01b4c8] org.jsl.wfwt.Protocol$HandshakeReplyOk.getAudioFormat:(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String; │ │ -01b4d8: 6e10 d302 0500 |0000: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ -01b4de: 0a00 |0003: move-result v0 │ │ -01b4e0: 6e10 cf02 0500 |0004: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.limit:()I // method@02cf │ │ -01b4e6: 0a01 |0007: move-result v1 │ │ -01b4e8: d802 0004 |0008: add-int/lit8 v2, v0, #int 4 // #04 │ │ -01b4ec: 6e20 d402 2500 |000a: invoke-virtual {v5, v2}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ -01b4f2: 6e10 cd02 0500 |000d: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:()S // method@02cd │ │ -01b4f8: 0a02 |0010: move-result v2 │ │ -01b4fa: 3d02 1f00 |0011: if-lez v2, 0030 // +001f │ │ -01b4fe: 7100 5401 0000 |0013: invoke-static {}, Ljava/nio/charset/Charset;.defaultCharset:()Ljava/nio/charset/Charset; // method@0154 │ │ -01b504: 0c03 |0016: move-result-object v3 │ │ -01b506: 6e10 5501 0300 |0017: invoke-virtual {v3}, Ljava/nio/charset/Charset;.newDecoder:()Ljava/nio/charset/CharsetDecoder; // method@0155 │ │ -01b50c: 0c03 |001a: move-result-object v3 │ │ -01b50e: 6e10 d302 0500 |001b: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ -01b514: 0a04 |001e: move-result v4 │ │ -01b516: b024 |001f: add-int/2addr v4, v2 │ │ -01b518: 6e20 d002 4500 |0020: invoke-virtual {v5, v4}, Lorg/jsl/collider/RetainableByteBuffer;.limit:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d0 │ │ -01b51e: 6e10 cc02 0500 |0023: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.getNioByteBuffer:()Ljava/nio/ByteBuffer; // method@02cc │ │ -01b524: 0c02 |0026: move-result-object v2 │ │ -01b526: 6e20 5701 2300 |0027: invoke-virtual {v3, v2}, Ljava/nio/charset/CharsetDecoder;.decode:(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer; // method@0157 │ │ -01b52c: 0c02 |002a: move-result-object v2 │ │ -01b52e: 6e10 2001 0200 |002b: invoke-virtual {v2}, Ljava/nio/CharBuffer;.toString:()Ljava/lang/String; // method@0120 │ │ -01b534: 0c02 |002e: move-result-object v2 │ │ -01b536: 2802 |002f: goto 0031 // +0002 │ │ -01b538: 1202 |0030: const/4 v2, #int 0 // #0 │ │ -01b53a: 6e20 d402 0500 |0031: invoke-virtual {v5, v0}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ -01b540: 6e20 d002 1500 |0034: invoke-virtual {v5, v1}, Lorg/jsl/collider/RetainableByteBuffer;.limit:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d0 │ │ -01b546: 1102 |0037: return-object v2 │ │ -01b548: 0d02 |0038: move-exception v2 │ │ -01b54a: 6e20 d402 0500 |0039: invoke-virtual {v5, v0}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ -01b550: 6e20 d002 1500 |003c: invoke-virtual {v5, v1}, Lorg/jsl/collider/RetainableByteBuffer;.limit:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d0 │ │ -01b556: 2702 |003f: throw v2 │ │ +01b4cc: |[01b4cc] org.jsl.wfwt.Protocol$HandshakeReplyOk.getAudioFormat:(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String; │ │ +01b4dc: 6e10 d302 0500 |0000: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ +01b4e2: 0a00 |0003: move-result v0 │ │ +01b4e4: 6e10 cf02 0500 |0004: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.limit:()I // method@02cf │ │ +01b4ea: 0a01 |0007: move-result v1 │ │ +01b4ec: d802 0004 |0008: add-int/lit8 v2, v0, #int 4 // #04 │ │ +01b4f0: 6e20 d402 2500 |000a: invoke-virtual {v5, v2}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ +01b4f6: 6e10 cd02 0500 |000d: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:()S // method@02cd │ │ +01b4fc: 0a02 |0010: move-result v2 │ │ +01b4fe: 3d02 1f00 |0011: if-lez v2, 0030 // +001f │ │ +01b502: 7100 5401 0000 |0013: invoke-static {}, Ljava/nio/charset/Charset;.defaultCharset:()Ljava/nio/charset/Charset; // method@0154 │ │ +01b508: 0c03 |0016: move-result-object v3 │ │ +01b50a: 6e10 5501 0300 |0017: invoke-virtual {v3}, Ljava/nio/charset/Charset;.newDecoder:()Ljava/nio/charset/CharsetDecoder; // method@0155 │ │ +01b510: 0c03 |001a: move-result-object v3 │ │ +01b512: 6e10 d302 0500 |001b: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ +01b518: 0a04 |001e: move-result v4 │ │ +01b51a: b024 |001f: add-int/2addr v4, v2 │ │ +01b51c: 6e20 d002 4500 |0020: invoke-virtual {v5, v4}, Lorg/jsl/collider/RetainableByteBuffer;.limit:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d0 │ │ +01b522: 6e10 cc02 0500 |0023: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.getNioByteBuffer:()Ljava/nio/ByteBuffer; // method@02cc │ │ +01b528: 0c02 |0026: move-result-object v2 │ │ +01b52a: 6e20 5701 2300 |0027: invoke-virtual {v3, v2}, Ljava/nio/charset/CharsetDecoder;.decode:(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer; // method@0157 │ │ +01b530: 0c02 |002a: move-result-object v2 │ │ +01b532: 6e10 2001 0200 |002b: invoke-virtual {v2}, Ljava/nio/CharBuffer;.toString:()Ljava/lang/String; // method@0120 │ │ +01b538: 0c02 |002e: move-result-object v2 │ │ +01b53a: 2802 |002f: goto 0031 // +0002 │ │ +01b53c: 1202 |0030: const/4 v2, #int 0 // #0 │ │ +01b53e: 6e20 d402 0500 |0031: invoke-virtual {v5, v0}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ +01b544: 6e20 d002 1500 |0034: invoke-virtual {v5, v1}, Lorg/jsl/collider/RetainableByteBuffer;.limit:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d0 │ │ +01b54a: 1102 |0037: return-object v2 │ │ +01b54c: 0d02 |0038: move-exception v2 │ │ +01b54e: 6e20 d402 0500 |0039: invoke-virtual {v5, v0}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ +01b554: 6e20 d002 1500 |003c: invoke-virtual {v5, v1}, Lorg/jsl/collider/RetainableByteBuffer;.limit:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d0 │ │ +01b55a: 2702 |003f: throw v2 │ │ catches : 1 │ │ 0x000a - 0x002f │ │ -> 0x0038 │ │ positions : │ │ 0x0000 line=188 │ │ 0x0004 line=189 │ │ 0x000a line=192 │ │ @@ -39864,51 +39864,51 @@ │ │ type : '(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String;' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 6 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 71 16-bit code units │ │ -01b564: |[01b564] org.jsl.wfwt.Protocol$HandshakeReplyOk.getStationName:(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String; │ │ -01b574: 6e10 d302 0500 |0000: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ -01b57a: 0a00 |0003: move-result v0 │ │ -01b57c: 6e10 cf02 0500 |0004: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.limit:()I // method@02cf │ │ -01b582: 0a01 |0007: move-result v1 │ │ -01b584: d802 0004 |0008: add-int/lit8 v2, v0, #int 4 // #04 │ │ -01b588: 6e20 ce02 2500 |000a: invoke-virtual {v5, v2}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:(I)S // method@02ce │ │ -01b58e: 0a03 |000d: move-result v3 │ │ -01b590: d802 0202 |000e: add-int/lit8 v2, v2, #int 2 // #02 │ │ -01b594: b032 |0010: add-int/2addr v2, v3 │ │ -01b596: 6e20 d402 2500 |0011: invoke-virtual {v5, v2}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ -01b59c: 6e10 cd02 0500 |0014: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:()S // method@02cd │ │ -01b5a2: 0a02 |0017: move-result v2 │ │ -01b5a4: 3d02 1f00 |0018: if-lez v2, 0037 // +001f │ │ -01b5a8: 7100 5401 0000 |001a: invoke-static {}, Ljava/nio/charset/Charset;.defaultCharset:()Ljava/nio/charset/Charset; // method@0154 │ │ -01b5ae: 0c03 |001d: move-result-object v3 │ │ -01b5b0: 6e10 5501 0300 |001e: invoke-virtual {v3}, Ljava/nio/charset/Charset;.newDecoder:()Ljava/nio/charset/CharsetDecoder; // method@0155 │ │ -01b5b6: 0c03 |0021: move-result-object v3 │ │ -01b5b8: 6e10 d302 0500 |0022: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ -01b5be: 0a04 |0025: move-result v4 │ │ -01b5c0: b024 |0026: add-int/2addr v4, v2 │ │ -01b5c2: 6e20 d002 4500 |0027: invoke-virtual {v5, v4}, Lorg/jsl/collider/RetainableByteBuffer;.limit:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d0 │ │ -01b5c8: 6e10 cc02 0500 |002a: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.getNioByteBuffer:()Ljava/nio/ByteBuffer; // method@02cc │ │ -01b5ce: 0c02 |002d: move-result-object v2 │ │ -01b5d0: 6e20 5701 2300 |002e: invoke-virtual {v3, v2}, Ljava/nio/charset/CharsetDecoder;.decode:(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer; // method@0157 │ │ -01b5d6: 0c02 |0031: move-result-object v2 │ │ -01b5d8: 6e10 2001 0200 |0032: invoke-virtual {v2}, Ljava/nio/CharBuffer;.toString:()Ljava/lang/String; // method@0120 │ │ -01b5de: 0c02 |0035: move-result-object v2 │ │ -01b5e0: 2802 |0036: goto 0038 // +0002 │ │ -01b5e2: 1202 |0037: const/4 v2, #int 0 // #0 │ │ -01b5e4: 6e20 d402 0500 |0038: invoke-virtual {v5, v0}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ -01b5ea: 6e20 d002 1500 |003b: invoke-virtual {v5, v1}, Lorg/jsl/collider/RetainableByteBuffer;.limit:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d0 │ │ -01b5f0: 1102 |003e: return-object v2 │ │ -01b5f2: 0d02 |003f: move-exception v2 │ │ -01b5f4: 6e20 d402 0500 |0040: invoke-virtual {v5, v0}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ -01b5fa: 6e20 d002 1500 |0043: invoke-virtual {v5, v1}, Lorg/jsl/collider/RetainableByteBuffer;.limit:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d0 │ │ -01b600: 2702 |0046: throw v2 │ │ +01b568: |[01b568] org.jsl.wfwt.Protocol$HandshakeReplyOk.getStationName:(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String; │ │ +01b578: 6e10 d302 0500 |0000: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ +01b57e: 0a00 |0003: move-result v0 │ │ +01b580: 6e10 cf02 0500 |0004: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.limit:()I // method@02cf │ │ +01b586: 0a01 |0007: move-result v1 │ │ +01b588: d802 0004 |0008: add-int/lit8 v2, v0, #int 4 // #04 │ │ +01b58c: 6e20 ce02 2500 |000a: invoke-virtual {v5, v2}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:(I)S // method@02ce │ │ +01b592: 0a03 |000d: move-result v3 │ │ +01b594: d802 0202 |000e: add-int/lit8 v2, v2, #int 2 // #02 │ │ +01b598: b032 |0010: add-int/2addr v2, v3 │ │ +01b59a: 6e20 d402 2500 |0011: invoke-virtual {v5, v2}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ +01b5a0: 6e10 cd02 0500 |0014: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:()S // method@02cd │ │ +01b5a6: 0a02 |0017: move-result v2 │ │ +01b5a8: 3d02 1f00 |0018: if-lez v2, 0037 // +001f │ │ +01b5ac: 7100 5401 0000 |001a: invoke-static {}, Ljava/nio/charset/Charset;.defaultCharset:()Ljava/nio/charset/Charset; // method@0154 │ │ +01b5b2: 0c03 |001d: move-result-object v3 │ │ +01b5b4: 6e10 5501 0300 |001e: invoke-virtual {v3}, Ljava/nio/charset/Charset;.newDecoder:()Ljava/nio/charset/CharsetDecoder; // method@0155 │ │ +01b5ba: 0c03 |0021: move-result-object v3 │ │ +01b5bc: 6e10 d302 0500 |0022: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ +01b5c2: 0a04 |0025: move-result v4 │ │ +01b5c4: b024 |0026: add-int/2addr v4, v2 │ │ +01b5c6: 6e20 d002 4500 |0027: invoke-virtual {v5, v4}, Lorg/jsl/collider/RetainableByteBuffer;.limit:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d0 │ │ +01b5cc: 6e10 cc02 0500 |002a: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.getNioByteBuffer:()Ljava/nio/ByteBuffer; // method@02cc │ │ +01b5d2: 0c02 |002d: move-result-object v2 │ │ +01b5d4: 6e20 5701 2300 |002e: invoke-virtual {v3, v2}, Ljava/nio/charset/CharsetDecoder;.decode:(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer; // method@0157 │ │ +01b5da: 0c02 |0031: move-result-object v2 │ │ +01b5dc: 6e10 2001 0200 |0032: invoke-virtual {v2}, Ljava/nio/CharBuffer;.toString:()Ljava/lang/String; // method@0120 │ │ +01b5e2: 0c02 |0035: move-result-object v2 │ │ +01b5e4: 2802 |0036: goto 0038 // +0002 │ │ +01b5e6: 1202 |0037: const/4 v2, #int 0 // #0 │ │ +01b5e8: 6e20 d402 0500 |0038: invoke-virtual {v5, v0}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ +01b5ee: 6e20 d002 1500 |003b: invoke-virtual {v5, v1}, Lorg/jsl/collider/RetainableByteBuffer;.limit:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d0 │ │ +01b5f4: 1102 |003e: return-object v2 │ │ +01b5f6: 0d02 |003f: move-exception v2 │ │ +01b5f8: 6e20 d402 0500 |0040: invoke-virtual {v5, v0}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ +01b5fe: 6e20 d002 1500 |0043: invoke-virtual {v5, v1}, Lorg/jsl/collider/RetainableByteBuffer;.limit:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d0 │ │ +01b604: 2702 |0046: throw v2 │ │ catches : 1 │ │ 0x000a - 0x0036 │ │ -> 0x003f │ │ positions : │ │ 0x0000 line=212 │ │ 0x0004 line=213 │ │ 0x000a line=216 │ │ @@ -39967,17 +39967,17 @@ │ │ type : '()V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -01b8c8: |[01b8c8] org.jsl.wfwt.Protocol$HandshakeRequest.:()V │ │ -01b8d8: 7010 2205 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/Protocol$Message;.:()V // method@0522 │ │ -01b8de: 0e00 |0003: return-void │ │ +01b8cc: |[01b8cc] org.jsl.wfwt.Protocol$HandshakeRequest.:()V │ │ +01b8dc: 7010 2205 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/Protocol$Message;.:()V // method@0522 │ │ +01b8e2: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=84 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/jsl/wfwt/Protocol$HandshakeRequest; │ │ │ │ #1 : (in Lorg/jsl/wfwt/Protocol$HandshakeRequest;) │ │ @@ -39985,52 +39985,52 @@ │ │ type : '(Ljava/lang/String;Ljava/lang/String;)Ljava/nio/ByteBuffer;' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 4 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 73 16-bit code units │ │ -01b7fc: |[01b7fc] org.jsl.wfwt.Protocol$HandshakeRequest.create:(Ljava/lang/String;Ljava/lang/String;)Ljava/nio/ByteBuffer; │ │ -01b80c: 7100 5401 0000 |0000: invoke-static {}, Ljava/nio/charset/Charset;.defaultCharset:()Ljava/nio/charset/Charset; // method@0154 │ │ -01b812: 0c00 |0003: move-result-object v0 │ │ -01b814: 6e10 5601 0000 |0004: invoke-virtual {v0}, Ljava/nio/charset/Charset;.newEncoder:()Ljava/nio/charset/CharsetEncoder; // method@0156 │ │ -01b81a: 0c00 |0007: move-result-object v0 │ │ -01b81c: 7110 2101 0200 |0008: invoke-static {v2}, Ljava/nio/CharBuffer;.wrap:(Ljava/lang/CharSequence;)Ljava/nio/CharBuffer; // method@0121 │ │ -01b822: 0c02 |000b: move-result-object v2 │ │ -01b824: 6e20 5801 2000 |000c: invoke-virtual {v0, v2}, Ljava/nio/charset/CharsetEncoder;.encode:(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer; // method@0158 │ │ -01b82a: 0c02 |000f: move-result-object v2 │ │ -01b82c: 7110 2101 0300 |0010: invoke-static {v3}, Ljava/nio/CharBuffer;.wrap:(Ljava/lang/CharSequence;)Ljava/nio/CharBuffer; // method@0121 │ │ -01b832: 0c03 |0013: move-result-object v3 │ │ -01b834: 6e20 5801 3000 |0014: invoke-virtual {v0, v3}, Ljava/nio/charset/CharsetEncoder;.encode:(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer; // method@0158 │ │ -01b83a: 0c03 |0017: move-result-object v3 │ │ -01b83c: 6e10 1b01 0200 |0018: invoke-virtual {v2}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ -01b842: 0a00 |001b: move-result v0 │ │ -01b844: d800 0004 |001c: add-int/lit8 v0, v0, #int 4 // #04 │ │ -01b848: d800 0002 |001e: add-int/lit8 v0, v0, #int 2 // #02 │ │ -01b84c: 6e10 1b01 0300 |0020: invoke-virtual {v3}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ -01b852: 0a01 |0023: move-result v1 │ │ -01b854: b010 |0024: add-int/2addr v0, v1 │ │ -01b856: 8f00 |0025: int-to-short v0, v0 │ │ -01b858: 1211 |0026: const/4 v1, #int 1 // #1 │ │ -01b85a: 7120 1e05 0100 |0027: invoke-static {v1, v0}, Lorg/jsl/wfwt/Protocol$HandshakeRequest;.create:(SS)Ljava/nio/ByteBuffer; // method@051e │ │ -01b860: 0c00 |002a: move-result-object v0 │ │ -01b862: 1231 |002b: const/4 v1, #int 3 // #3 │ │ -01b864: 6e20 1a01 1000 |002c: invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;.putShort:(S)Ljava/nio/ByteBuffer; // method@011a │ │ -01b86a: 6e10 1b01 0200 |002f: invoke-virtual {v2}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ -01b870: 0a01 |0032: move-result v1 │ │ -01b872: 8f11 |0033: int-to-short v1, v1 │ │ -01b874: 6e20 1a01 1000 |0034: invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;.putShort:(S)Ljava/nio/ByteBuffer; // method@011a │ │ -01b87a: 6e20 0f01 2000 |0037: invoke-virtual {v0, v2}, Ljava/nio/ByteBuffer;.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer; // method@010f │ │ -01b880: 6e10 1b01 0300 |003a: invoke-virtual {v3}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ -01b886: 0a02 |003d: move-result v2 │ │ -01b888: 8f22 |003e: int-to-short v2, v2 │ │ -01b88a: 6e20 1a01 2000 |003f: invoke-virtual {v0, v2}, Ljava/nio/ByteBuffer;.putShort:(S)Ljava/nio/ByteBuffer; // method@011a │ │ -01b890: 6e20 0f01 3000 |0042: invoke-virtual {v0, v3}, Ljava/nio/ByteBuffer;.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer; // method@010f │ │ -01b896: 6e10 1d01 0000 |0045: invoke-virtual {v0}, Ljava/nio/ByteBuffer;.rewind:()Ljava/nio/Buffer; // method@011d │ │ -01b89c: 1100 |0048: return-object v0 │ │ +01b800: |[01b800] org.jsl.wfwt.Protocol$HandshakeRequest.create:(Ljava/lang/String;Ljava/lang/String;)Ljava/nio/ByteBuffer; │ │ +01b810: 7100 5401 0000 |0000: invoke-static {}, Ljava/nio/charset/Charset;.defaultCharset:()Ljava/nio/charset/Charset; // method@0154 │ │ +01b816: 0c00 |0003: move-result-object v0 │ │ +01b818: 6e10 5601 0000 |0004: invoke-virtual {v0}, Ljava/nio/charset/Charset;.newEncoder:()Ljava/nio/charset/CharsetEncoder; // method@0156 │ │ +01b81e: 0c00 |0007: move-result-object v0 │ │ +01b820: 7110 2101 0200 |0008: invoke-static {v2}, Ljava/nio/CharBuffer;.wrap:(Ljava/lang/CharSequence;)Ljava/nio/CharBuffer; // method@0121 │ │ +01b826: 0c02 |000b: move-result-object v2 │ │ +01b828: 6e20 5801 2000 |000c: invoke-virtual {v0, v2}, Ljava/nio/charset/CharsetEncoder;.encode:(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer; // method@0158 │ │ +01b82e: 0c02 |000f: move-result-object v2 │ │ +01b830: 7110 2101 0300 |0010: invoke-static {v3}, Ljava/nio/CharBuffer;.wrap:(Ljava/lang/CharSequence;)Ljava/nio/CharBuffer; // method@0121 │ │ +01b836: 0c03 |0013: move-result-object v3 │ │ +01b838: 6e20 5801 3000 |0014: invoke-virtual {v0, v3}, Ljava/nio/charset/CharsetEncoder;.encode:(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer; // method@0158 │ │ +01b83e: 0c03 |0017: move-result-object v3 │ │ +01b840: 6e10 1b01 0200 |0018: invoke-virtual {v2}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ +01b846: 0a00 |001b: move-result v0 │ │ +01b848: d800 0004 |001c: add-int/lit8 v0, v0, #int 4 // #04 │ │ +01b84c: d800 0002 |001e: add-int/lit8 v0, v0, #int 2 // #02 │ │ +01b850: 6e10 1b01 0300 |0020: invoke-virtual {v3}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ +01b856: 0a01 |0023: move-result v1 │ │ +01b858: b010 |0024: add-int/2addr v0, v1 │ │ +01b85a: 8f00 |0025: int-to-short v0, v0 │ │ +01b85c: 1211 |0026: const/4 v1, #int 1 // #1 │ │ +01b85e: 7120 1e05 0100 |0027: invoke-static {v1, v0}, Lorg/jsl/wfwt/Protocol$HandshakeRequest;.create:(SS)Ljava/nio/ByteBuffer; // method@051e │ │ +01b864: 0c00 |002a: move-result-object v0 │ │ +01b866: 1231 |002b: const/4 v1, #int 3 // #3 │ │ +01b868: 6e20 1a01 1000 |002c: invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;.putShort:(S)Ljava/nio/ByteBuffer; // method@011a │ │ +01b86e: 6e10 1b01 0200 |002f: invoke-virtual {v2}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ +01b874: 0a01 |0032: move-result v1 │ │ +01b876: 8f11 |0033: int-to-short v1, v1 │ │ +01b878: 6e20 1a01 1000 |0034: invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;.putShort:(S)Ljava/nio/ByteBuffer; // method@011a │ │ +01b87e: 6e20 0f01 2000 |0037: invoke-virtual {v0, v2}, Ljava/nio/ByteBuffer;.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer; // method@010f │ │ +01b884: 6e10 1b01 0300 |003a: invoke-virtual {v3}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ +01b88a: 0a02 |003d: move-result v2 │ │ +01b88c: 8f22 |003e: int-to-short v2, v2 │ │ +01b88e: 6e20 1a01 2000 |003f: invoke-virtual {v0, v2}, Ljava/nio/ByteBuffer;.putShort:(S)Ljava/nio/ByteBuffer; // method@011a │ │ +01b894: 6e20 0f01 3000 |0042: invoke-virtual {v0, v3}, Ljava/nio/ByteBuffer;.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer; // method@010f │ │ +01b89a: 6e10 1d01 0000 |0045: invoke-virtual {v0}, Ljava/nio/ByteBuffer;.rewind:()Ljava/nio/Buffer; // method@011d │ │ +01b8a0: 1100 |0048: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=96 │ │ 0x0008 line=97 │ │ 0x0010 line=98 │ │ 0x0018 line=99 │ │ 0x002c line=100 │ │ @@ -40048,48 +40048,48 @@ │ │ type : '(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String;' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 6 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 66 16-bit code units │ │ -01b6c0: |[01b6c0] org.jsl.wfwt.Protocol$HandshakeRequest.getAudioFormat:(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String; │ │ -01b6d0: 6e10 d302 0500 |0000: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ -01b6d6: 0a00 |0003: move-result v0 │ │ -01b6d8: 6e10 cf02 0500 |0004: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.limit:()I // method@02cf │ │ -01b6de: 0a01 |0007: move-result v1 │ │ -01b6e0: d802 0004 |0008: add-int/lit8 v2, v0, #int 4 // #04 │ │ -01b6e4: d802 0202 |000a: add-int/lit8 v2, v2, #int 2 // #02 │ │ -01b6e8: 6e20 d402 2500 |000c: invoke-virtual {v5, v2}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ -01b6ee: 6e10 cd02 0500 |000f: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:()S // method@02cd │ │ -01b6f4: 0a02 |0012: move-result v2 │ │ -01b6f6: 3d02 1f00 |0013: if-lez v2, 0032 // +001f │ │ -01b6fa: 7100 5401 0000 |0015: invoke-static {}, Ljava/nio/charset/Charset;.defaultCharset:()Ljava/nio/charset/Charset; // method@0154 │ │ -01b700: 0c03 |0018: move-result-object v3 │ │ -01b702: 6e10 5501 0300 |0019: invoke-virtual {v3}, Ljava/nio/charset/Charset;.newDecoder:()Ljava/nio/charset/CharsetDecoder; // method@0155 │ │ -01b708: 0c03 |001c: move-result-object v3 │ │ -01b70a: 6e10 d302 0500 |001d: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ -01b710: 0a04 |0020: move-result v4 │ │ -01b712: b024 |0021: add-int/2addr v4, v2 │ │ -01b714: 6e20 d002 4500 |0022: invoke-virtual {v5, v4}, Lorg/jsl/collider/RetainableByteBuffer;.limit:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d0 │ │ -01b71a: 6e10 cc02 0500 |0025: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.getNioByteBuffer:()Ljava/nio/ByteBuffer; // method@02cc │ │ -01b720: 0c02 |0028: move-result-object v2 │ │ -01b722: 6e20 5701 2300 |0029: invoke-virtual {v3, v2}, Ljava/nio/charset/CharsetDecoder;.decode:(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer; // method@0157 │ │ -01b728: 0c02 |002c: move-result-object v2 │ │ -01b72a: 6e10 2001 0200 |002d: invoke-virtual {v2}, Ljava/nio/CharBuffer;.toString:()Ljava/lang/String; // method@0120 │ │ -01b730: 0c02 |0030: move-result-object v2 │ │ -01b732: 2802 |0031: goto 0033 // +0002 │ │ -01b734: 1202 |0032: const/4 v2, #int 0 // #0 │ │ -01b736: 6e20 d402 0500 |0033: invoke-virtual {v5, v0}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ -01b73c: 6e20 d002 1500 |0036: invoke-virtual {v5, v1}, Lorg/jsl/collider/RetainableByteBuffer;.limit:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d0 │ │ -01b742: 1102 |0039: return-object v2 │ │ -01b744: 0d02 |003a: move-exception v2 │ │ -01b746: 6e20 d402 0500 |003b: invoke-virtual {v5, v0}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ -01b74c: 6e20 d002 1500 |003e: invoke-virtual {v5, v1}, Lorg/jsl/collider/RetainableByteBuffer;.limit:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d0 │ │ -01b752: 2702 |0041: throw v2 │ │ +01b6c4: |[01b6c4] org.jsl.wfwt.Protocol$HandshakeRequest.getAudioFormat:(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String; │ │ +01b6d4: 6e10 d302 0500 |0000: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ +01b6da: 0a00 |0003: move-result v0 │ │ +01b6dc: 6e10 cf02 0500 |0004: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.limit:()I // method@02cf │ │ +01b6e2: 0a01 |0007: move-result v1 │ │ +01b6e4: d802 0004 |0008: add-int/lit8 v2, v0, #int 4 // #04 │ │ +01b6e8: d802 0202 |000a: add-int/lit8 v2, v2, #int 2 // #02 │ │ +01b6ec: 6e20 d402 2500 |000c: invoke-virtual {v5, v2}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ +01b6f2: 6e10 cd02 0500 |000f: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:()S // method@02cd │ │ +01b6f8: 0a02 |0012: move-result v2 │ │ +01b6fa: 3d02 1f00 |0013: if-lez v2, 0032 // +001f │ │ +01b6fe: 7100 5401 0000 |0015: invoke-static {}, Ljava/nio/charset/Charset;.defaultCharset:()Ljava/nio/charset/Charset; // method@0154 │ │ +01b704: 0c03 |0018: move-result-object v3 │ │ +01b706: 6e10 5501 0300 |0019: invoke-virtual {v3}, Ljava/nio/charset/Charset;.newDecoder:()Ljava/nio/charset/CharsetDecoder; // method@0155 │ │ +01b70c: 0c03 |001c: move-result-object v3 │ │ +01b70e: 6e10 d302 0500 |001d: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ +01b714: 0a04 |0020: move-result v4 │ │ +01b716: b024 |0021: add-int/2addr v4, v2 │ │ +01b718: 6e20 d002 4500 |0022: invoke-virtual {v5, v4}, Lorg/jsl/collider/RetainableByteBuffer;.limit:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d0 │ │ +01b71e: 6e10 cc02 0500 |0025: invoke-virtual {v5}, Lorg/jsl/collider/RetainableByteBuffer;.getNioByteBuffer:()Ljava/nio/ByteBuffer; // method@02cc │ │ +01b724: 0c02 |0028: move-result-object v2 │ │ +01b726: 6e20 5701 2300 |0029: invoke-virtual {v3, v2}, Ljava/nio/charset/CharsetDecoder;.decode:(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer; // method@0157 │ │ +01b72c: 0c02 |002c: move-result-object v2 │ │ +01b72e: 6e10 2001 0200 |002d: invoke-virtual {v2}, Ljava/nio/CharBuffer;.toString:()Ljava/lang/String; // method@0120 │ │ +01b734: 0c02 |0030: move-result-object v2 │ │ +01b736: 2802 |0031: goto 0033 // +0002 │ │ +01b738: 1202 |0032: const/4 v2, #int 0 // #0 │ │ +01b73a: 6e20 d402 0500 |0033: invoke-virtual {v5, v0}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ +01b740: 6e20 d002 1500 |0036: invoke-virtual {v5, v1}, Lorg/jsl/collider/RetainableByteBuffer;.limit:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d0 │ │ +01b746: 1102 |0039: return-object v2 │ │ +01b748: 0d02 |003a: move-exception v2 │ │ +01b74a: 6e20 d402 0500 |003b: invoke-virtual {v5, v0}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ +01b750: 6e20 d002 1500 |003e: invoke-virtual {v5, v1}, Lorg/jsl/collider/RetainableByteBuffer;.limit:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d0 │ │ +01b756: 2702 |0041: throw v2 │ │ catches : 1 │ │ 0x000c - 0x0031 │ │ -> 0x003a │ │ positions : │ │ 0x0000 line=117 │ │ 0x0004 line=118 │ │ 0x000c line=121 │ │ @@ -40110,21 +40110,21 @@ │ │ type : '(Lorg/jsl/collider/RetainableByteBuffer;)S' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 11 16-bit code units │ │ -01b8a0: |[01b8a0] org.jsl.wfwt.Protocol$HandshakeRequest.getProtocolVersion:(Lorg/jsl/collider/RetainableByteBuffer;)S │ │ -01b8b0: 6e10 d302 0100 |0000: invoke-virtual {v1}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ -01b8b6: 0a00 |0003: move-result v0 │ │ -01b8b8: d800 0004 |0004: add-int/lit8 v0, v0, #int 4 // #04 │ │ -01b8bc: 6e20 ce02 0100 |0006: invoke-virtual {v1, v0}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:(I)S // method@02ce │ │ -01b8c2: 0a01 |0009: move-result v1 │ │ -01b8c4: 0f01 |000a: return v1 │ │ +01b8a4: |[01b8a4] org.jsl.wfwt.Protocol$HandshakeRequest.getProtocolVersion:(Lorg/jsl/collider/RetainableByteBuffer;)S │ │ +01b8b4: 6e10 d302 0100 |0000: invoke-virtual {v1}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ +01b8ba: 0a00 |0003: move-result v0 │ │ +01b8bc: d800 0004 |0004: add-int/lit8 v0, v0, #int 4 // #04 │ │ +01b8c0: 6e20 ce02 0100 |0006: invoke-virtual {v1, v0}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:(I)S // method@02ce │ │ +01b8c6: 0a01 |0009: move-result v1 │ │ +01b8c8: 0f01 |000a: return v1 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=111 │ │ locals : │ │ 0x0000 - 0x000b reg=1 (null) Lorg/jsl/collider/RetainableByteBuffer; │ │ │ │ #4 : (in Lorg/jsl/wfwt/Protocol$HandshakeRequest;) │ │ @@ -40132,48 +40132,48 @@ │ │ type : '(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String;' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 5 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 63 16-bit code units │ │ -01b760: |[01b760] org.jsl.wfwt.Protocol$HandshakeRequest.getStationName:(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String; │ │ -01b770: 6e10 d302 0400 |0000: invoke-virtual {v4}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ -01b776: 0a00 |0003: move-result v0 │ │ -01b778: d801 0004 |0004: add-int/lit8 v1, v0, #int 4 // #04 │ │ -01b77c: d801 0102 |0006: add-int/lit8 v1, v1, #int 2 // #02 │ │ -01b780: 6e20 ce02 1400 |0008: invoke-virtual {v4, v1}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:(I)S // method@02ce │ │ -01b786: 0a02 |000b: move-result v2 │ │ -01b788: d801 0102 |000c: add-int/lit8 v1, v1, #int 2 // #02 │ │ -01b78c: b021 |000e: add-int/2addr v1, v2 │ │ -01b78e: 6e20 d402 1400 |000f: invoke-virtual {v4, v1}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ -01b794: 6e10 cd02 0400 |0012: invoke-virtual {v4}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:()S // method@02cd │ │ -01b79a: 0a01 |0015: move-result v1 │ │ -01b79c: 3d01 1f00 |0016: if-lez v1, 0035 // +001f │ │ -01b7a0: 7100 5401 0000 |0018: invoke-static {}, Ljava/nio/charset/Charset;.defaultCharset:()Ljava/nio/charset/Charset; // method@0154 │ │ -01b7a6: 0c02 |001b: move-result-object v2 │ │ -01b7a8: 6e10 5501 0200 |001c: invoke-virtual {v2}, Ljava/nio/charset/Charset;.newDecoder:()Ljava/nio/charset/CharsetDecoder; // method@0155 │ │ -01b7ae: 0c02 |001f: move-result-object v2 │ │ -01b7b0: 6e10 d302 0400 |0020: invoke-virtual {v4}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ -01b7b6: 0a03 |0023: move-result v3 │ │ -01b7b8: b013 |0024: add-int/2addr v3, v1 │ │ -01b7ba: 6e20 d002 3400 |0025: invoke-virtual {v4, v3}, Lorg/jsl/collider/RetainableByteBuffer;.limit:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d0 │ │ -01b7c0: 6e10 cc02 0400 |0028: invoke-virtual {v4}, Lorg/jsl/collider/RetainableByteBuffer;.getNioByteBuffer:()Ljava/nio/ByteBuffer; // method@02cc │ │ -01b7c6: 0c01 |002b: move-result-object v1 │ │ -01b7c8: 6e20 5701 1200 |002c: invoke-virtual {v2, v1}, Ljava/nio/charset/CharsetDecoder;.decode:(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer; // method@0157 │ │ -01b7ce: 0c01 |002f: move-result-object v1 │ │ -01b7d0: 6e10 2001 0100 |0030: invoke-virtual {v1}, Ljava/nio/CharBuffer;.toString:()Ljava/lang/String; // method@0120 │ │ -01b7d6: 0c01 |0033: move-result-object v1 │ │ -01b7d8: 2802 |0034: goto 0036 // +0002 │ │ -01b7da: 1201 |0035: const/4 v1, #int 0 // #0 │ │ -01b7dc: 6e20 d402 0400 |0036: invoke-virtual {v4, v0}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ -01b7e2: 1101 |0039: return-object v1 │ │ -01b7e4: 0d01 |003a: move-exception v1 │ │ -01b7e6: 6e20 d402 0400 |003b: invoke-virtual {v4, v0}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ -01b7ec: 2701 |003e: throw v1 │ │ +01b764: |[01b764] org.jsl.wfwt.Protocol$HandshakeRequest.getStationName:(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String; │ │ +01b774: 6e10 d302 0400 |0000: invoke-virtual {v4}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ +01b77a: 0a00 |0003: move-result v0 │ │ +01b77c: d801 0004 |0004: add-int/lit8 v1, v0, #int 4 // #04 │ │ +01b780: d801 0102 |0006: add-int/lit8 v1, v1, #int 2 // #02 │ │ +01b784: 6e20 ce02 1400 |0008: invoke-virtual {v4, v1}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:(I)S // method@02ce │ │ +01b78a: 0a02 |000b: move-result v2 │ │ +01b78c: d801 0102 |000c: add-int/lit8 v1, v1, #int 2 // #02 │ │ +01b790: b021 |000e: add-int/2addr v1, v2 │ │ +01b792: 6e20 d402 1400 |000f: invoke-virtual {v4, v1}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ +01b798: 6e10 cd02 0400 |0012: invoke-virtual {v4}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:()S // method@02cd │ │ +01b79e: 0a01 |0015: move-result v1 │ │ +01b7a0: 3d01 1f00 |0016: if-lez v1, 0035 // +001f │ │ +01b7a4: 7100 5401 0000 |0018: invoke-static {}, Ljava/nio/charset/Charset;.defaultCharset:()Ljava/nio/charset/Charset; // method@0154 │ │ +01b7aa: 0c02 |001b: move-result-object v2 │ │ +01b7ac: 6e10 5501 0200 |001c: invoke-virtual {v2}, Ljava/nio/charset/Charset;.newDecoder:()Ljava/nio/charset/CharsetDecoder; // method@0155 │ │ +01b7b2: 0c02 |001f: move-result-object v2 │ │ +01b7b4: 6e10 d302 0400 |0020: invoke-virtual {v4}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ +01b7ba: 0a03 |0023: move-result v3 │ │ +01b7bc: b013 |0024: add-int/2addr v3, v1 │ │ +01b7be: 6e20 d002 3400 |0025: invoke-virtual {v4, v3}, Lorg/jsl/collider/RetainableByteBuffer;.limit:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d0 │ │ +01b7c4: 6e10 cc02 0400 |0028: invoke-virtual {v4}, Lorg/jsl/collider/RetainableByteBuffer;.getNioByteBuffer:()Ljava/nio/ByteBuffer; // method@02cc │ │ +01b7ca: 0c01 |002b: move-result-object v1 │ │ +01b7cc: 6e20 5701 1200 |002c: invoke-virtual {v2, v1}, Ljava/nio/charset/CharsetDecoder;.decode:(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer; // method@0157 │ │ +01b7d2: 0c01 |002f: move-result-object v1 │ │ +01b7d4: 6e10 2001 0100 |0030: invoke-virtual {v1}, Ljava/nio/CharBuffer;.toString:()Ljava/lang/String; // method@0120 │ │ +01b7da: 0c01 |0033: move-result-object v1 │ │ +01b7dc: 2802 |0034: goto 0036 // +0002 │ │ +01b7de: 1201 |0035: const/4 v1, #int 0 // #0 │ │ +01b7e0: 6e20 d402 0400 |0036: invoke-virtual {v4, v0}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ +01b7e6: 1101 |0039: return-object v1 │ │ +01b7e8: 0d01 |003a: move-exception v1 │ │ +01b7ea: 6e20 d402 0400 |003b: invoke-virtual {v4, v0}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ +01b7f0: 2701 |003e: throw v1 │ │ catches : 1 │ │ 0x0008 - 0x0034 │ │ -> 0x003a │ │ positions : │ │ 0x0000 line=141 │ │ 0x0008 line=144 │ │ 0x000f line=145 │ │ @@ -40222,17 +40222,17 @@ │ │ type : '()V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -01ba38: |[01ba38] org.jsl.wfwt.Protocol$Ping.:()V │ │ -01ba48: 7010 2205 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/Protocol$Message;.:()V // method@0522 │ │ -01ba4e: 0e00 |0003: return-void │ │ +01ba3c: |[01ba3c] org.jsl.wfwt.Protocol$Ping.:()V │ │ +01ba4c: 7010 2205 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/Protocol$Message;.:()V // method@0522 │ │ +01ba52: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=314 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/jsl/wfwt/Protocol$Ping; │ │ │ │ #1 : (in Lorg/jsl/wfwt/Protocol$Ping;) │ │ @@ -40240,22 +40240,22 @@ │ │ type : '(I)Ljava/nio/ByteBuffer;' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 13 16-bit code units │ │ -01ba0c: |[01ba0c] org.jsl.wfwt.Protocol$Ping.create:(I)Ljava/nio/ByteBuffer; │ │ -01ba1c: 1250 |0000: const/4 v0, #int 5 // #5 │ │ -01ba1e: 1241 |0001: const/4 v1, #int 4 // #4 │ │ -01ba20: 7120 2a05 1000 |0002: invoke-static {v0, v1}, Lorg/jsl/wfwt/Protocol$Ping;.create:(SS)Ljava/nio/ByteBuffer; // method@052a │ │ -01ba26: 0c00 |0005: move-result-object v0 │ │ -01ba28: 6e20 1501 2000 |0006: invoke-virtual {v0, v2}, Ljava/nio/ByteBuffer;.putInt:(I)Ljava/nio/ByteBuffer; // method@0115 │ │ -01ba2e: 6e10 1d01 0000 |0009: invoke-virtual {v0}, Ljava/nio/ByteBuffer;.rewind:()Ljava/nio/Buffer; // method@011d │ │ -01ba34: 1100 |000c: return-object v0 │ │ +01ba10: |[01ba10] org.jsl.wfwt.Protocol$Ping.create:(I)Ljava/nio/ByteBuffer; │ │ +01ba20: 1250 |0000: const/4 v0, #int 5 // #5 │ │ +01ba22: 1241 |0001: const/4 v1, #int 4 // #4 │ │ +01ba24: 7120 2a05 1000 |0002: invoke-static {v0, v1}, Lorg/jsl/wfwt/Protocol$Ping;.create:(SS)Ljava/nio/ByteBuffer; // method@052a │ │ +01ba2a: 0c00 |0005: move-result-object v0 │ │ +01ba2c: 6e20 1501 2000 |0006: invoke-virtual {v0, v2}, Ljava/nio/ByteBuffer;.putInt:(I)Ljava/nio/ByteBuffer; // method@0115 │ │ +01ba32: 6e10 1d01 0000 |0009: invoke-virtual {v0}, Ljava/nio/ByteBuffer;.rewind:()Ljava/nio/Buffer; // method@011d │ │ +01ba38: 1100 |000c: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0002 line=322 │ │ 0x0006 line=323 │ │ 0x0009 line=324 │ │ locals : │ │ 0x0000 - 0x000d reg=2 (null) I │ │ @@ -40265,21 +40265,21 @@ │ │ type : '(Lorg/jsl/collider/RetainableByteBuffer;)I' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 11 16-bit code units │ │ -01b9e4: |[01b9e4] org.jsl.wfwt.Protocol$Ping.getId:(Lorg/jsl/collider/RetainableByteBuffer;)I │ │ -01b9f4: 6e10 d302 0100 |0000: invoke-virtual {v1}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ -01b9fa: 0a00 |0003: move-result v0 │ │ -01b9fc: d800 0004 |0004: add-int/lit8 v0, v0, #int 4 // #04 │ │ -01ba00: 6e20 c902 0100 |0006: invoke-virtual {v1, v0}, Lorg/jsl/collider/RetainableByteBuffer;.getInt:(I)I // method@02c9 │ │ -01ba06: 0a01 |0009: move-result v1 │ │ -01ba08: 0f01 |000a: return v1 │ │ +01b9e8: |[01b9e8] org.jsl.wfwt.Protocol$Ping.getId:(Lorg/jsl/collider/RetainableByteBuffer;)I │ │ +01b9f8: 6e10 d302 0100 |0000: invoke-virtual {v1}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ +01b9fe: 0a00 |0003: move-result v0 │ │ +01ba00: d800 0004 |0004: add-int/lit8 v0, v0, #int 4 // #04 │ │ +01ba04: 6e20 c902 0100 |0006: invoke-virtual {v1, v0}, Lorg/jsl/collider/RetainableByteBuffer;.getInt:(I)I // method@02c9 │ │ +01ba0a: 0a01 |0009: move-result v1 │ │ +01ba0c: 0f01 |000a: return v1 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=330 │ │ 0x0006 line=331 │ │ locals : │ │ 0x0000 - 0x000b reg=1 (null) Lorg/jsl/collider/RetainableByteBuffer; │ │ │ │ @@ -40319,17 +40319,17 @@ │ │ type : '()V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -01baa4: |[01baa4] org.jsl.wfwt.Protocol$Pong.:()V │ │ -01bab4: 7010 2205 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/Protocol$Message;.:()V // method@0522 │ │ -01baba: 0e00 |0003: return-void │ │ +01baa8: |[01baa8] org.jsl.wfwt.Protocol$Pong.:()V │ │ +01bab8: 7010 2205 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/Protocol$Message;.:()V // method@0522 │ │ +01babe: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=335 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/jsl/wfwt/Protocol$Pong; │ │ │ │ #1 : (in Lorg/jsl/wfwt/Protocol$Pong;) │ │ @@ -40337,22 +40337,22 @@ │ │ type : '(I)Ljava/nio/ByteBuffer;' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 13 16-bit code units │ │ -01ba78: |[01ba78] org.jsl.wfwt.Protocol$Pong.create:(I)Ljava/nio/ByteBuffer; │ │ -01ba88: 1260 |0000: const/4 v0, #int 6 // #6 │ │ -01ba8a: 1241 |0001: const/4 v1, #int 4 // #4 │ │ -01ba8c: 7120 2e05 1000 |0002: invoke-static {v0, v1}, Lorg/jsl/wfwt/Protocol$Pong;.create:(SS)Ljava/nio/ByteBuffer; // method@052e │ │ -01ba92: 0c00 |0005: move-result-object v0 │ │ -01ba94: 6e20 1501 2000 |0006: invoke-virtual {v0, v2}, Ljava/nio/ByteBuffer;.putInt:(I)Ljava/nio/ByteBuffer; // method@0115 │ │ -01ba9a: 6e10 1d01 0000 |0009: invoke-virtual {v0}, Ljava/nio/ByteBuffer;.rewind:()Ljava/nio/Buffer; // method@011d │ │ -01baa0: 1100 |000c: return-object v0 │ │ +01ba7c: |[01ba7c] org.jsl.wfwt.Protocol$Pong.create:(I)Ljava/nio/ByteBuffer; │ │ +01ba8c: 1260 |0000: const/4 v0, #int 6 // #6 │ │ +01ba8e: 1241 |0001: const/4 v1, #int 4 // #4 │ │ +01ba90: 7120 2e05 1000 |0002: invoke-static {v0, v1}, Lorg/jsl/wfwt/Protocol$Pong;.create:(SS)Ljava/nio/ByteBuffer; // method@052e │ │ +01ba96: 0c00 |0005: move-result-object v0 │ │ +01ba98: 6e20 1501 2000 |0006: invoke-virtual {v0, v2}, Ljava/nio/ByteBuffer;.putInt:(I)Ljava/nio/ByteBuffer; // method@0115 │ │ +01ba9e: 6e10 1d01 0000 |0009: invoke-virtual {v0}, Ljava/nio/ByteBuffer;.rewind:()Ljava/nio/Buffer; // method@011d │ │ +01baa4: 1100 |000c: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0002 line=343 │ │ 0x0006 line=344 │ │ 0x0009 line=345 │ │ locals : │ │ 0x0000 - 0x000d reg=2 (null) I │ │ @@ -40362,21 +40362,21 @@ │ │ type : '(Lorg/jsl/collider/RetainableByteBuffer;)I' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 11 16-bit code units │ │ -01ba50: |[01ba50] org.jsl.wfwt.Protocol$Pong.getId:(Lorg/jsl/collider/RetainableByteBuffer;)I │ │ -01ba60: 6e10 d302 0100 |0000: invoke-virtual {v1}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ -01ba66: 0a00 |0003: move-result v0 │ │ -01ba68: d800 0004 |0004: add-int/lit8 v0, v0, #int 4 // #04 │ │ -01ba6c: 6e20 c902 0100 |0006: invoke-virtual {v1, v0}, Lorg/jsl/collider/RetainableByteBuffer;.getInt:(I)I // method@02c9 │ │ -01ba72: 0a01 |0009: move-result v1 │ │ -01ba74: 0f01 |000a: return v1 │ │ +01ba54: |[01ba54] org.jsl.wfwt.Protocol$Pong.getId:(Lorg/jsl/collider/RetainableByteBuffer;)I │ │ +01ba64: 6e10 d302 0100 |0000: invoke-virtual {v1}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ +01ba6a: 0a00 |0003: move-result v0 │ │ +01ba6c: d800 0004 |0004: add-int/lit8 v0, v0, #int 4 // #04 │ │ +01ba70: 6e20 c902 0100 |0006: invoke-virtual {v1, v0}, Lorg/jsl/collider/RetainableByteBuffer;.getInt:(I)I // method@02c9 │ │ +01ba76: 0a01 |0009: move-result v1 │ │ +01ba78: 0f01 |000a: return v1 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=351 │ │ 0x0006 line=352 │ │ locals : │ │ 0x0000 - 0x000b reg=1 (null) Lorg/jsl/collider/RetainableByteBuffer; │ │ │ │ @@ -40420,17 +40420,17 @@ │ │ type : '()V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -01bb9c: |[01bb9c] org.jsl.wfwt.Protocol$StationName.:()V │ │ -01bbac: 7010 2205 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/Protocol$Message;.:()V // method@0522 │ │ -01bbb2: 0e00 |0003: return-void │ │ +01bba0: |[01bba0] org.jsl.wfwt.Protocol$StationName.:()V │ │ +01bbb0: 7010 2205 0000 |0000: invoke-direct {v0}, Lorg/jsl/wfwt/Protocol$Message;.:()V // method@0522 │ │ +01bbb6: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=356 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/jsl/wfwt/Protocol$StationName; │ │ │ │ #1 : (in Lorg/jsl/wfwt/Protocol$StationName;) │ │ @@ -40438,37 +40438,37 @@ │ │ type : '(Ljava/lang/String;)Lorg/jsl/collider/RetainableByteBuffer;' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 43 16-bit code units │ │ -01bb34: |[01bb34] org.jsl.wfwt.Protocol$StationName.create:(Ljava/lang/String;)Lorg/jsl/collider/RetainableByteBuffer; │ │ -01bb44: 7100 5401 0000 |0000: invoke-static {}, Ljava/nio/charset/Charset;.defaultCharset:()Ljava/nio/charset/Charset; // method@0154 │ │ -01bb4a: 0c00 |0003: move-result-object v0 │ │ -01bb4c: 6e10 5601 0000 |0004: invoke-virtual {v0}, Ljava/nio/charset/Charset;.newEncoder:()Ljava/nio/charset/CharsetEncoder; // method@0156 │ │ -01bb52: 0c00 |0007: move-result-object v0 │ │ -01bb54: 7110 2101 0200 |0008: invoke-static {v2}, Ljava/nio/CharBuffer;.wrap:(Ljava/lang/CharSequence;)Ljava/nio/CharBuffer; // method@0121 │ │ -01bb5a: 0c02 |000b: move-result-object v2 │ │ -01bb5c: 6e20 5801 2000 |000c: invoke-virtual {v0, v2}, Ljava/nio/charset/CharsetEncoder;.encode:(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer; // method@0158 │ │ -01bb62: 0c02 |000f: move-result-object v2 │ │ -01bb64: 6e10 1b01 0200 |0010: invoke-virtual {v2}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ -01bb6a: 0a00 |0013: move-result v0 │ │ -01bb6c: d800 0002 |0014: add-int/lit8 v0, v0, #int 2 // #02 │ │ -01bb70: 8f00 |0016: int-to-short v0, v0 │ │ -01bb72: 1271 |0017: const/4 v1, #int 7 // #7 │ │ -01bb74: 7120 3205 0100 |0018: invoke-static {v1, v0}, Lorg/jsl/wfwt/Protocol$StationName;.createEx:(SS)Lorg/jsl/collider/RetainableByteBuffer; // method@0532 │ │ -01bb7a: 0c00 |001b: move-result-object v0 │ │ -01bb7c: 6e10 1b01 0200 |001c: invoke-virtual {v2}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ -01bb82: 0a01 |001f: move-result v1 │ │ -01bb84: 8f11 |0020: int-to-short v1, v1 │ │ -01bb86: 6e20 e402 1000 |0021: invoke-virtual {v0, v1}, Lorg/jsl/collider/RetainableByteBuffer;.putShort:(S)Lorg/jsl/collider/RetainableByteBuffer; // method@02e4 │ │ -01bb8c: 6e20 d702 2000 |0024: invoke-virtual {v0, v2}, Lorg/jsl/collider/RetainableByteBuffer;.put:(Ljava/nio/ByteBuffer;)Lorg/jsl/collider/RetainableByteBuffer; // method@02d7 │ │ -01bb92: 6e10 eb02 0000 |0027: invoke-virtual {v0}, Lorg/jsl/collider/RetainableByteBuffer;.rewind:()Lorg/jsl/collider/RetainableByteBuffer; // method@02eb │ │ -01bb98: 1100 |002a: return-object v0 │ │ +01bb38: |[01bb38] org.jsl.wfwt.Protocol$StationName.create:(Ljava/lang/String;)Lorg/jsl/collider/RetainableByteBuffer; │ │ +01bb48: 7100 5401 0000 |0000: invoke-static {}, Ljava/nio/charset/Charset;.defaultCharset:()Ljava/nio/charset/Charset; // method@0154 │ │ +01bb4e: 0c00 |0003: move-result-object v0 │ │ +01bb50: 6e10 5601 0000 |0004: invoke-virtual {v0}, Ljava/nio/charset/Charset;.newEncoder:()Ljava/nio/charset/CharsetEncoder; // method@0156 │ │ +01bb56: 0c00 |0007: move-result-object v0 │ │ +01bb58: 7110 2101 0200 |0008: invoke-static {v2}, Ljava/nio/CharBuffer;.wrap:(Ljava/lang/CharSequence;)Ljava/nio/CharBuffer; // method@0121 │ │ +01bb5e: 0c02 |000b: move-result-object v2 │ │ +01bb60: 6e20 5801 2000 |000c: invoke-virtual {v0, v2}, Ljava/nio/charset/CharsetEncoder;.encode:(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer; // method@0158 │ │ +01bb66: 0c02 |000f: move-result-object v2 │ │ +01bb68: 6e10 1b01 0200 |0010: invoke-virtual {v2}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ +01bb6e: 0a00 |0013: move-result v0 │ │ +01bb70: d800 0002 |0014: add-int/lit8 v0, v0, #int 2 // #02 │ │ +01bb74: 8f00 |0016: int-to-short v0, v0 │ │ +01bb76: 1271 |0017: const/4 v1, #int 7 // #7 │ │ +01bb78: 7120 3205 0100 |0018: invoke-static {v1, v0}, Lorg/jsl/wfwt/Protocol$StationName;.createEx:(SS)Lorg/jsl/collider/RetainableByteBuffer; // method@0532 │ │ +01bb7e: 0c00 |001b: move-result-object v0 │ │ +01bb80: 6e10 1b01 0200 |001c: invoke-virtual {v2}, Ljava/nio/ByteBuffer;.remaining:()I // method@011b │ │ +01bb86: 0a01 |001f: move-result v1 │ │ +01bb88: 8f11 |0020: int-to-short v1, v1 │ │ +01bb8a: 6e20 e402 1000 |0021: invoke-virtual {v0, v1}, Lorg/jsl/collider/RetainableByteBuffer;.putShort:(S)Lorg/jsl/collider/RetainableByteBuffer; // method@02e4 │ │ +01bb90: 6e20 d702 2000 |0024: invoke-virtual {v0, v2}, Lorg/jsl/collider/RetainableByteBuffer;.put:(Ljava/nio/ByteBuffer;)Lorg/jsl/collider/RetainableByteBuffer; // method@02d7 │ │ +01bb96: 6e10 eb02 0000 |0027: invoke-virtual {v0}, Lorg/jsl/collider/RetainableByteBuffer;.rewind:()Lorg/jsl/collider/RetainableByteBuffer; // method@02eb │ │ +01bb9c: 1100 |002a: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=362 │ │ 0x0008 line=363 │ │ 0x0010 line=364 │ │ 0x0018 line=365 │ │ 0x001c line=366 │ │ @@ -40482,39 +40482,39 @@ │ │ type : '(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String;' │ │ access : 0x0008 (STATIC) │ │ code - │ │ registers : 4 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 46 16-bit code units │ │ -01babc: |[01babc] org.jsl.wfwt.Protocol$StationName.getStationName:(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String; │ │ -01bacc: 6e10 d302 0300 |0000: invoke-virtual {v3}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ -01bad2: 0a00 |0003: move-result v0 │ │ -01bad4: d801 0004 |0004: add-int/lit8 v1, v0, #int 4 // #04 │ │ -01bad8: 6e20 d402 1300 |0006: invoke-virtual {v3, v1}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ -01bade: 6e10 cd02 0300 |0009: invoke-virtual {v3}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:()S // method@02cd │ │ -01bae4: 0a01 |000c: move-result v1 │ │ -01bae6: 3d01 1700 |000d: if-lez v1, 0024 // +0017 │ │ -01baea: 7100 5401 0000 |000f: invoke-static {}, Ljava/nio/charset/Charset;.defaultCharset:()Ljava/nio/charset/Charset; // method@0154 │ │ -01baf0: 0c01 |0012: move-result-object v1 │ │ -01baf2: 6e10 5501 0100 |0013: invoke-virtual {v1}, Ljava/nio/charset/Charset;.newDecoder:()Ljava/nio/charset/CharsetDecoder; // method@0155 │ │ -01baf8: 0c01 |0016: move-result-object v1 │ │ -01bafa: 6e10 cc02 0300 |0017: invoke-virtual {v3}, Lorg/jsl/collider/RetainableByteBuffer;.getNioByteBuffer:()Ljava/nio/ByteBuffer; // method@02cc │ │ -01bb00: 0c02 |001a: move-result-object v2 │ │ -01bb02: 6e20 5701 2100 |001b: invoke-virtual {v1, v2}, Ljava/nio/charset/CharsetDecoder;.decode:(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer; // method@0157 │ │ -01bb08: 0c01 |001e: move-result-object v1 │ │ -01bb0a: 6e10 2001 0100 |001f: invoke-virtual {v1}, Ljava/nio/CharBuffer;.toString:()Ljava/lang/String; // method@0120 │ │ -01bb10: 0c01 |0022: move-result-object v1 │ │ -01bb12: 2802 |0023: goto 0025 // +0002 │ │ -01bb14: 1201 |0024: const/4 v1, #int 0 // #0 │ │ -01bb16: 6e20 d402 0300 |0025: invoke-virtual {v3, v0}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ -01bb1c: 1101 |0028: return-object v1 │ │ -01bb1e: 0d01 |0029: move-exception v1 │ │ -01bb20: 6e20 d402 0300 |002a: invoke-virtual {v3, v0}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ -01bb26: 2701 |002d: throw v1 │ │ +01bac0: |[01bac0] org.jsl.wfwt.Protocol$StationName.getStationName:(Lorg/jsl/collider/RetainableByteBuffer;)Ljava/lang/String; │ │ +01bad0: 6e10 d302 0300 |0000: invoke-virtual {v3}, Lorg/jsl/collider/RetainableByteBuffer;.position:()I // method@02d3 │ │ +01bad6: 0a00 |0003: move-result v0 │ │ +01bad8: d801 0004 |0004: add-int/lit8 v1, v0, #int 4 // #04 │ │ +01badc: 6e20 d402 1300 |0006: invoke-virtual {v3, v1}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ +01bae2: 6e10 cd02 0300 |0009: invoke-virtual {v3}, Lorg/jsl/collider/RetainableByteBuffer;.getShort:()S // method@02cd │ │ +01bae8: 0a01 |000c: move-result v1 │ │ +01baea: 3d01 1700 |000d: if-lez v1, 0024 // +0017 │ │ +01baee: 7100 5401 0000 |000f: invoke-static {}, Ljava/nio/charset/Charset;.defaultCharset:()Ljava/nio/charset/Charset; // method@0154 │ │ +01baf4: 0c01 |0012: move-result-object v1 │ │ +01baf6: 6e10 5501 0100 |0013: invoke-virtual {v1}, Ljava/nio/charset/Charset;.newDecoder:()Ljava/nio/charset/CharsetDecoder; // method@0155 │ │ +01bafc: 0c01 |0016: move-result-object v1 │ │ +01bafe: 6e10 cc02 0300 |0017: invoke-virtual {v3}, Lorg/jsl/collider/RetainableByteBuffer;.getNioByteBuffer:()Ljava/nio/ByteBuffer; // method@02cc │ │ +01bb04: 0c02 |001a: move-result-object v2 │ │ +01bb06: 6e20 5701 2100 |001b: invoke-virtual {v1, v2}, Ljava/nio/charset/CharsetDecoder;.decode:(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer; // method@0157 │ │ +01bb0c: 0c01 |001e: move-result-object v1 │ │ +01bb0e: 6e10 2001 0100 |001f: invoke-virtual {v1}, Ljava/nio/CharBuffer;.toString:()Ljava/lang/String; // method@0120 │ │ +01bb14: 0c01 |0022: move-result-object v1 │ │ +01bb16: 2802 |0023: goto 0025 // +0002 │ │ +01bb18: 1201 |0024: const/4 v1, #int 0 // #0 │ │ +01bb1a: 6e20 d402 0300 |0025: invoke-virtual {v3, v0}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ +01bb20: 1101 |0028: return-object v1 │ │ +01bb22: 0d01 |0029: move-exception v1 │ │ +01bb24: 6e20 d402 0300 |002a: invoke-virtual {v3, v0}, Lorg/jsl/collider/RetainableByteBuffer;.position:(I)Lorg/jsl/collider/RetainableByteBuffer; // method@02d4 │ │ +01bb2a: 2701 |002d: throw v1 │ │ catches : 1 │ │ 0x0006 - 0x0023 │ │ -> 0x0029 │ │ positions : │ │ 0x0000 line=375 │ │ 0x0006 line=378 │ │ 0x0009 line=379 │ │ @@ -41718,133 +41718,134 @@ │ │ 0x0000 - 0x0091 reg=12 (null) Lorg/jsl/collider/Session; │ │ │ │ #1 : (in Lorg/jsl/wfwt/Channel$ChannelConnector;) │ │ name : 'onException' │ │ type : '(Ljava/io/IOException;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ - registers : 5 │ │ + registers : 6 │ │ ins : 2 │ │ outs : 3 │ │ - insns size : 206 16-bit code units │ │ + insns size : 208 16-bit code units │ │ 0170a4: |[0170a4] org.jsl.wfwt.Channel$ChannelConnector.onException:(Ljava/io/IOException;)V │ │ 0170b4: 2200 6700 |0000: new-instance v0, Ljava/lang/StringBuilder; // type@0067 │ │ 0170b8: 7010 c500 0000 |0002: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -0170be: 5431 e001 |0005: iget-object v1, v3, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ +0170be: 5441 e001 |0005: iget-object v1, v4, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ 0170c2: 7110 6e04 0100 |0007: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ 0170c8: 0c01 |000a: move-result-object v1 │ │ 0170ca: 6e20 cb00 1000 |000b: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ 0170d0: 1a01 5a00 |000e: const-string v1, ": exception [" // string@005a │ │ 0170d4: 6e20 cb00 1000 |0010: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0170da: 5431 df01 |0013: iget-object v1, v3, Lorg/jsl/wfwt/Channel$ChannelConnector;.m_serviceName:Ljava/lang/String; // field@01df │ │ +0170da: 5441 df01 |0013: iget-object v1, v4, Lorg/jsl/wfwt/Channel$ChannelConnector;.m_serviceName:Ljava/lang/String; // field@01df │ │ 0170de: 6e20 cb00 1000 |0015: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ 0170e4: 1a01 9e03 |0018: const-string v1, "] " // string@039e │ │ 0170e8: 6e20 cb00 1000 |001a: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0170ee: 6e10 5c04 0300 |001d: invoke-virtual {v3}, Lorg/jsl/wfwt/Channel$ChannelConnector;.getAddr:()Ljava/net/InetSocketAddress; // method@045c │ │ +0170ee: 6e10 5c04 0400 |001d: invoke-virtual {v4}, Lorg/jsl/wfwt/Channel$ChannelConnector;.getAddr:()Ljava/net/InetSocketAddress; // method@045c │ │ 0170f4: 0c01 |0020: move-result-object v1 │ │ 0170f6: 6e20 ca00 1000 |0021: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ 0170fc: 1a01 5100 |0024: const-string v1, ": " // string@0051 │ │ 017100: 6e20 cb00 1000 |0026: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -017106: 6e10 9200 0400 |0029: invoke-virtual {v4}, Ljava/io/IOException;.toString:()Ljava/lang/String; // method@0092 │ │ -01710c: 0c04 |002c: move-result-object v4 │ │ -01710e: 6e20 cb00 4000 |002d: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ +017106: 6e10 9200 0500 |0029: invoke-virtual {v5}, Ljava/io/IOException;.toString:()Ljava/lang/String; // method@0092 │ │ +01710c: 0c05 |002c: move-result-object v5 │ │ +01710e: 6e20 cb00 5000 |002d: invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ 017114: 6e10 ce00 0000 |0030: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ -01711a: 0c04 |0033: move-result-object v4 │ │ +01711a: 0c05 |0033: move-result-object v5 │ │ 01711c: 1a00 aa00 |0034: const-string v0, "Channel" // string@00aa │ │ -017120: 7120 6400 4000 |0036: invoke-static {v0, v4}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ -017126: 5434 e001 |0039: iget-object v4, v3, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ -01712a: 7110 6f04 0400 |003b: invoke-static {v4}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ -017130: 0c04 |003e: move-result-object v4 │ │ -017132: 6e10 ae01 0400 |003f: invoke-virtual {v4}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ -017138: 5434 e001 |0042: iget-object v4, v3, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ -01713c: 7110 8504 0400 |0044: invoke-static {v4}, Lorg/jsl/wfwt/Channel;.access$800:(Lorg/jsl/wfwt/Channel;)Ljava/util/TreeMap; // method@0485 │ │ -017142: 0c04 |0047: move-result-object v4 │ │ -017144: 5431 df01 |0048: iget-object v1, v3, Lorg/jsl/wfwt/Channel$ChannelConnector;.m_serviceName:Ljava/lang/String; // field@01df │ │ -017148: 6e20 7e01 1400 |004a: invoke-virtual {v4, v1}, Ljava/util/TreeMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@017e │ │ -01714e: 0c04 |004d: move-result-object v4 │ │ -017150: 1f04 1a01 |004e: check-cast v4, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ -017154: 3904 0300 |0050: if-nez v4, 0053 // +0003 │ │ -017158: 2867 |0052: goto 00b9 // +0067 │ │ +017120: 7120 6400 5000 |0036: invoke-static {v0, v5}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ +017126: 5445 e001 |0039: iget-object v5, v4, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ +01712a: 7110 6f04 0500 |003b: invoke-static {v5}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ +017130: 0c05 |003e: move-result-object v5 │ │ +017132: 6e10 ae01 0500 |003f: invoke-virtual {v5}, Ljava/util/concurrent/locks/ReentrantLock;.lock:()V // method@01ae │ │ +017138: 5445 e001 |0042: iget-object v5, v4, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ +01713c: 7110 8504 0500 |0044: invoke-static {v5}, Lorg/jsl/wfwt/Channel;.access$800:(Lorg/jsl/wfwt/Channel;)Ljava/util/TreeMap; // method@0485 │ │ +017142: 0c05 |0047: move-result-object v5 │ │ +017144: 5441 df01 |0048: iget-object v1, v4, Lorg/jsl/wfwt/Channel$ChannelConnector;.m_serviceName:Ljava/lang/String; // field@01df │ │ +017148: 6e20 7e01 1500 |004a: invoke-virtual {v5, v1}, Ljava/util/TreeMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@017e │ │ +01714e: 0c05 |004d: move-result-object v5 │ │ +017150: 1f05 1a01 |004e: check-cast v5, Lorg/jsl/wfwt/Channel$ServiceInfo; // type@011a │ │ +017154: 3905 0300 |0050: if-nez v5, 0053 // +0003 │ │ +017158: 2869 |0052: goto 00bb // +0069 │ │ 01715a: 1201 |0053: const/4 v1, #int 0 // #0 │ │ -01715c: 5b41 e601 |0054: iput-object v1, v4, Lorg/jsl/wfwt/Channel$ServiceInfo;.connector:Lorg/jsl/collider/Connector; // field@01e6 │ │ -017160: 5431 e001 |0056: iget-object v1, v3, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ +01715c: 5b51 e601 |0054: iput-object v1, v5, Lorg/jsl/wfwt/Channel$ServiceInfo;.connector:Lorg/jsl/collider/Connector; // field@01e6 │ │ +017160: 5441 e001 |0056: iget-object v1, v4, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ 017164: 7110 8004 0100 |0058: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$400:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/CountDownLatch; // method@0480 │ │ 01716a: 0c01 |005b: move-result-object v1 │ │ -01716c: 3901 5d00 |005c: if-nez v1, 00b9 // +005d │ │ -017170: 5441 e701 |005e: iget-object v1, v4, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ +01716c: 3901 5f00 |005c: if-nez v1, 00bb // +005f │ │ +017170: 5451 e701 |005e: iget-object v1, v5, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ 017174: 3901 0e00 |0060: if-nez v1, 006e // +000e │ │ -017178: 5434 e001 |0062: iget-object v4, v3, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ -01717c: 7110 8504 0400 |0064: invoke-static {v4}, Lorg/jsl/wfwt/Channel;.access$800:(Lorg/jsl/wfwt/Channel;)Ljava/util/TreeMap; // method@0485 │ │ -017182: 0c04 |0067: move-result-object v4 │ │ -017184: 5430 df01 |0068: iget-object v0, v3, Lorg/jsl/wfwt/Channel$ChannelConnector;.m_serviceName:Ljava/lang/String; // field@01df │ │ -017188: 6e20 8101 0400 |006a: invoke-virtual {v4, v0}, Ljava/util/TreeMap;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@0181 │ │ -01718e: 284c |006d: goto 00b9 // +004c │ │ -017190: 5241 e801 |006e: iget v1, v4, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdUpdates:I // field@01e8 │ │ -017194: 3d01 4900 |0070: if-lez v1, 00b9 // +0049 │ │ -017198: 5431 e001 |0072: iget-object v1, v3, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ +017178: 5445 e001 |0062: iget-object v5, v4, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ +01717c: 7110 8504 0500 |0064: invoke-static {v5}, Lorg/jsl/wfwt/Channel;.access$800:(Lorg/jsl/wfwt/Channel;)Ljava/util/TreeMap; // method@0485 │ │ +017182: 0c05 |0067: move-result-object v5 │ │ +017184: 5440 df01 |0068: iget-object v0, v4, Lorg/jsl/wfwt/Channel$ChannelConnector;.m_serviceName:Ljava/lang/String; // field@01df │ │ +017188: 6e20 8101 0500 |006a: invoke-virtual {v5, v0}, Ljava/util/TreeMap;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@0181 │ │ +01718e: 284e |006d: goto 00bb // +004e │ │ +017190: 5251 e801 |006e: iget v1, v5, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdUpdates:I // field@01e8 │ │ +017194: 3d01 4b00 |0070: if-lez v1, 00bb // +004b │ │ +017198: 5441 e001 |0072: iget-object v1, v4, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ 01719c: 7110 8604 0100 |0074: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$900:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$ResolveListener; // method@0486 │ │ 0171a2: 0c01 |0077: move-result-object v1 │ │ -0171a4: 3901 4100 |0078: if-nez v1, 00b9 // +0041 │ │ +0171a4: 3901 4300 |0078: if-nez v1, 00bb // +0043 │ │ 0171a8: 2201 6700 |007a: new-instance v1, Ljava/lang/StringBuilder; // type@0067 │ │ 0171ac: 7010 c500 0100 |007c: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@00c5 │ │ -0171b2: 5432 e001 |007f: iget-object v2, v3, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ +0171b2: 5442 e001 |007f: iget-object v2, v4, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ 0171b6: 7110 6e04 0200 |0081: invoke-static {v2}, Lorg/jsl/wfwt/Channel;.access$000:(Lorg/jsl/wfwt/Channel;)Ljava/lang/String; // method@046e │ │ 0171bc: 0c02 |0084: move-result-object v2 │ │ 0171be: 6e20 cb00 2100 |0085: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ 0171c4: 1a02 6900 |0088: const-string v2, ": onException: " // string@0069 │ │ 0171c8: 6e20 cb00 2100 |008a: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00cb │ │ -0171ce: 5442 e701 |008d: iget-object v2, v4, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ +0171ce: 5452 e701 |008d: iget-object v2, v5, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ 0171d2: 6e20 ca00 2100 |008f: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00ca │ │ 0171d8: 6e10 ce00 0100 |0092: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ce │ │ 0171de: 0c01 |0095: move-result-object v1 │ │ 0171e0: 7120 6400 1000 |0096: invoke-static {v0, v1}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@0064 │ │ 0171e6: 1200 |0099: const/4 v0, #int 0 // #0 │ │ -0171e8: 5940 e801 |009a: iput v0, v4, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdUpdates:I // field@01e8 │ │ -0171ec: 5430 e001 |009c: iget-object v0, v3, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ +0171e8: 5950 e801 |009a: iput v0, v5, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdUpdates:I // field@01e8 │ │ +0171ec: 5440 e001 |009c: iget-object v0, v4, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ 0171f0: 2201 1901 |009e: new-instance v1, Lorg/jsl/wfwt/Channel$ResolveListener; // type@0119 │ │ -0171f4: 5432 df01 |00a0: iget-object v2, v3, Lorg/jsl/wfwt/Channel$ChannelConnector;.m_serviceName:Ljava/lang/String; // field@01df │ │ -0171f8: 7030 6404 0102 |00a2: invoke-direct {v1, v0, v2}, Lorg/jsl/wfwt/Channel$ResolveListener;.:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)V // method@0464 │ │ -0171fe: 7120 8704 1000 |00a5: invoke-static {v0, v1}, Lorg/jsl/wfwt/Channel;.access$902:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$ResolveListener;)Lorg/jsl/wfwt/Channel$ResolveListener; // method@0487 │ │ -017204: 5430 e001 |00a8: iget-object v0, v3, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ -017208: 7110 7004 0000 |00aa: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$1000:(Lorg/jsl/wfwt/Channel;)Landroid/net/nsd/NsdManager; // method@0470 │ │ -01720e: 0c00 |00ad: move-result-object v0 │ │ -017210: 5444 e701 |00ae: iget-object v4, v4, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ -017214: 5431 e001 |00b0: iget-object v1, v3, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ -017218: 7110 8604 0100 |00b2: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$900:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$ResolveListener; // method@0486 │ │ -01721e: 0c01 |00b5: move-result-object v1 │ │ -017220: 6e30 4f00 4001 |00b6: invoke-virtual {v0, v4, v1}, Landroid/net/nsd/NsdManager;.resolveService:(Landroid/net/nsd/NsdServiceInfo;Landroid/net/nsd/NsdManager$ResolveListener;)V // method@004f │ │ -017226: 5434 e001 |00b9: iget-object v4, v3, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ -01722a: 7110 6f04 0400 |00bb: invoke-static {v4}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ -017230: 0c04 |00be: move-result-object v4 │ │ -017232: 6e10 b001 0400 |00bf: invoke-virtual {v4}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -017238: 0e00 |00c2: return-void │ │ -01723a: 0d04 |00c3: move-exception v4 │ │ -01723c: 5430 e001 |00c4: iget-object v0, v3, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ -017240: 7110 6f04 0000 |00c6: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ -017246: 0c00 |00c9: move-result-object v0 │ │ -017248: 6e10 b001 0000 |00ca: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ -01724e: 2704 |00cd: throw v4 │ │ +0171f4: 5442 e001 |00a0: iget-object v2, v4, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ +0171f8: 5443 df01 |00a2: iget-object v3, v4, Lorg/jsl/wfwt/Channel$ChannelConnector;.m_serviceName:Ljava/lang/String; // field@01df │ │ +0171fc: 7030 6404 2103 |00a4: invoke-direct {v1, v2, v3}, Lorg/jsl/wfwt/Channel$ResolveListener;.:(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)V // method@0464 │ │ +017202: 7120 8704 1000 |00a7: invoke-static {v0, v1}, Lorg/jsl/wfwt/Channel;.access$902:(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$ResolveListener;)Lorg/jsl/wfwt/Channel$ResolveListener; // method@0487 │ │ +017208: 5440 e001 |00aa: iget-object v0, v4, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ +01720c: 7110 7004 0000 |00ac: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$1000:(Lorg/jsl/wfwt/Channel;)Landroid/net/nsd/NsdManager; // method@0470 │ │ +017212: 0c00 |00af: move-result-object v0 │ │ +017214: 5455 e701 |00b0: iget-object v5, v5, Lorg/jsl/wfwt/Channel$ServiceInfo;.nsdServiceInfo:Landroid/net/nsd/NsdServiceInfo; // field@01e7 │ │ +017218: 5441 e001 |00b2: iget-object v1, v4, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ +01721c: 7110 8604 0100 |00b4: invoke-static {v1}, Lorg/jsl/wfwt/Channel;.access$900:(Lorg/jsl/wfwt/Channel;)Lorg/jsl/wfwt/Channel$ResolveListener; // method@0486 │ │ +017222: 0c01 |00b7: move-result-object v1 │ │ +017224: 6e30 4f00 5001 |00b8: invoke-virtual {v0, v5, v1}, Landroid/net/nsd/NsdManager;.resolveService:(Landroid/net/nsd/NsdServiceInfo;Landroid/net/nsd/NsdManager$ResolveListener;)V // method@004f │ │ +01722a: 5445 e001 |00bb: iget-object v5, v4, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ +01722e: 7110 6f04 0500 |00bd: invoke-static {v5}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ +017234: 0c05 |00c0: move-result-object v5 │ │ +017236: 6e10 b001 0500 |00c1: invoke-virtual {v5}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +01723c: 0e00 |00c4: return-void │ │ +01723e: 0d05 |00c5: move-exception v5 │ │ +017240: 5440 e001 |00c6: iget-object v0, v4, Lorg/jsl/wfwt/Channel$ChannelConnector;.this$0:Lorg/jsl/wfwt/Channel; // field@01e0 │ │ +017244: 7110 6f04 0000 |00c8: invoke-static {v0}, Lorg/jsl/wfwt/Channel;.access$100:(Lorg/jsl/wfwt/Channel;)Ljava/util/concurrent/locks/ReentrantLock; // method@046f │ │ +01724a: 0c00 |00cb: move-result-object v0 │ │ +01724c: 6e10 b001 0000 |00cc: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;.unlock:()V // method@01b0 │ │ +017252: 2705 |00cf: throw v5 │ │ catches : 1 │ │ - 0x0042 - 0x00b9 │ │ - -> 0x00c3 │ │ + 0x0042 - 0x00bb │ │ + -> 0x00c5 │ │ positions : │ │ 0x0000 line=473 │ │ 0x0039 line=474 │ │ 0x0042 line=477 │ │ 0x0054 line=492 │ │ 0x0056 line=494 │ │ 0x005e line=496 │ │ 0x0062 line=499 │ │ 0x006e line=501 │ │ 0x0072 line=504 │ │ 0x007a line=507 │ │ 0x009a line=508 │ │ 0x009c line=509 │ │ - 0x00a8 line=510 │ │ - 0x00b9 line=518 │ │ - 0x00cd line=519 │ │ + 0x00aa line=510 │ │ + 0x00bb line=518 │ │ + 0x00cf line=519 │ │ locals : │ │ - 0x0000 - 0x00ce reg=3 this Lorg/jsl/wfwt/Channel$ChannelConnector; │ │ - 0x0000 - 0x00ce reg=4 (null) Ljava/io/IOException; │ │ + 0x0000 - 0x00d0 reg=4 this Lorg/jsl/wfwt/Channel$ChannelConnector; │ │ + 0x0000 - 0x00d0 reg=5 (null) Ljava/io/IOException; │ │ │ │ source_file_idx : 171 (Channel.java) │ ├── classes.jar │ │ ├── zipinfo {} │ │ │ @@ -1,8 +1,8 @@ │ │ │ -Zip file size: 339112 bytes, number of entries: 171 │ │ │ +Zip file size: 339127 bytes, number of entries: 171 │ │ │ ?rwxrwxr-x 2.0 unx 83 b- stor 80-Jan-01 00:00 org/jsl/collider/AcceptorImpl$1.class │ │ │ ?rwxrwxr-x 2.0 unx 773 b- stor 80-Jan-01 00:00 org/jsl/collider/Collider$Config.class │ │ │ ?rwxrwxr-x 2.0 unx 1044 b- stor 80-Jan-01 00:00 org/jsl/collider/Collider.class │ │ │ ?rwxrwxr-x 2.0 unx 83 b- stor 80-Jan-01 00:00 org/jsl/collider/ColliderImpl$1.class │ │ │ ?rwxrwxr-x 2.0 unx 156 b- stor 80-Jan-01 00:00 org/jsl/collider/ColliderImpl$ChannelHandler.class │ │ │ ?rwxrwxr-x 2.0 unx 297 b- stor 80-Jan-01 00:00 org/jsl/collider/ColliderImpl$SelectorThreadRunnable.class │ │ │ ?rwxrwxr-x 2.0 unx 748 b- stor 80-Jan-01 00:00 org/jsl/collider/ColliderImpl$SessionSharedData.class │ │ │ @@ -165,9 +165,9 @@ │ │ │ ?rwxrwxr-x 2.0 unx 252 b- stor 80-Jan-01 00:00 org/jsl/collider/RetainableByteBuffer$Impl.class │ │ │ ?rwxrwxr-x 2.0 unx 465 b- stor 80-Jan-01 00:00 org/jsl/collider/RetainableByteBuffer$Slice.class │ │ │ ?rwxrwxr-x 2.0 unx 534 b- stor 80-Jan-01 00:00 org/jsl/collider/RetainableByteBufferCache$BufferImpl.class │ │ │ ?rwxrwxr-x 2.0 unx 459 b- stor 80-Jan-01 00:00 org/jsl/collider/RetainableDataBlock$BufferImpl.class │ │ │ ?rwxrwxr-x 2.0 unx 494 b- stor 80-Jan-01 00:00 org/jsl/collider/StreamDefragger$BufferImpl.class │ │ │ ?rwxrwxr-x 2.0 unx 3702 b- stor 80-Jan-01 00:00 org/jsl/wfwt/AudioPlayer$PcmImpl.class │ │ │ ?rwxrwxr-x 2.0 unx 4433 b- stor 80-Jan-01 00:00 org/jsl/wfwt/Channel$ChannelAcceptor.class │ │ │ -?rwxrwxr-x 2.0 unx 3878 b- stor 80-Jan-01 00:00 org/jsl/wfwt/Channel$ChannelConnector.class │ │ │ -171 files, 349629 bytes uncompressed, 312032 bytes compressed: 10.8% │ │ │ +?rwxrwxr-x 2.0 unx 3893 b- stor 80-Jan-01 00:00 org/jsl/wfwt/Channel$ChannelConnector.class │ │ │ +171 files, 349644 bytes uncompressed, 312047 bytes compressed: 10.8% │ │ ├── org/jsl/wfwt/Channel$ChannelConnector.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -68,16 +68,15 @@ │ │ │ │ else if (channel$ServiceInfo.nsdUpdates > 0 && Channel.access$900(this.this$0) == null) { │ │ │ │ final StringBuilder sb2 = new StringBuilder(); │ │ │ │ sb2.append(Channel.access$000(this.this$0)); │ │ │ │ sb2.append(": onException: "); │ │ │ │ sb2.append(channel$ServiceInfo.nsdServiceInfo); │ │ │ │ Log.i(s, sb2.toString()); │ │ │ │ channel$ServiceInfo.nsdUpdates = 0; │ │ │ │ - final Channel this$0 = this.this$0; │ │ │ │ - Channel.access$902(this$0, new Channel$ResolveListener(this$0, this.m_serviceName)); │ │ │ │ + Channel.access$902(this.this$0, new Channel$ResolveListener(this.this$0, this.m_serviceName)); │ │ │ │ Channel.access$1000(this.this$0).resolveService(channel$ServiceInfo.nsdServiceInfo, (NsdManager$ResolveListener)Channel.access$900(this.this$0)); │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ finally { │ │ │ │ Channel.access$100(this.this$0).unlock(); ├── smali/org/jsl/wfwt/Channel$ChannelConnector.smali │ @@ -197,15 +197,15 @@ │ invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V │ │ .line 467 │ throw p1 │ .end method │ │ .method public onException(Ljava/io/IOException;)V │ - .locals 3 │ + .locals 4 │ │ .line 473 │ new-instance v0, Ljava/lang/StringBuilder; │ │ invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ iget-object v1, p0, Lorg/jsl/wfwt/Channel$ChannelConnector;->this$0:Lorg/jsl/wfwt/Channel; │ @@ -362,17 +362,19 @@ │ iput v0, p1, Lorg/jsl/wfwt/Channel$ServiceInfo;->nsdUpdates:I │ │ .line 509 │ iget-object v0, p0, Lorg/jsl/wfwt/Channel$ChannelConnector;->this$0:Lorg/jsl/wfwt/Channel; │ │ new-instance v1, Lorg/jsl/wfwt/Channel$ResolveListener; │ │ - iget-object v2, p0, Lorg/jsl/wfwt/Channel$ChannelConnector;->m_serviceName:Ljava/lang/String; │ + iget-object v2, p0, Lorg/jsl/wfwt/Channel$ChannelConnector;->this$0:Lorg/jsl/wfwt/Channel; │ + │ + iget-object v3, p0, Lorg/jsl/wfwt/Channel$ChannelConnector;->m_serviceName:Ljava/lang/String; │ │ - invoke-direct {v1, v0, v2}, Lorg/jsl/wfwt/Channel$ResolveListener;->(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)V │ + invoke-direct {v1, v2, v3}, Lorg/jsl/wfwt/Channel$ResolveListener;->(Lorg/jsl/wfwt/Channel;Ljava/lang/String;)V │ │ invoke-static {v0, v1}, Lorg/jsl/wfwt/Channel;->access$902(Lorg/jsl/wfwt/Channel;Lorg/jsl/wfwt/Channel$ResolveListener;)Lorg/jsl/wfwt/Channel$ResolveListener; │ │ .line 510 │ iget-object v0, p0, Lorg/jsl/wfwt/Channel$ChannelConnector;->this$0:Lorg/jsl/wfwt/Channel; │ │ invoke-static {v0}, Lorg/jsl/wfwt/Channel;->access$1000(Lorg/jsl/wfwt/Channel;)Landroid/net/nsd/NsdManager;