Warning, /frameworks/syntax-highlighting/autotests/input/test.smali is written in an unsupported language. File is not indexed.

0001 #
0002 # Copyright (C) 2006 The Android Open Source Project
0003 #
0004 # Licensed under the Apache License, Version 2.0 (the "License");
0005 # you may not use this file except in compliance with the License.
0006 # You may obtain a copy of the License at
0007 #
0008 #      http://www.apache.org/licenses/LICENSE-2.0
0009 #
0010 # Unless required by applicable law or agreed to in writing, software
0011 # distributed under the License is distributed on an "AS IS" BASIS,
0012 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0013 # See the License for the specific language governing permissions and
0014 # limitations under the License.
0015 #
0016 .class public Lcom/android/internal/telephony/dataconnection/DataConnection;
0017 .super Lcom/android/internal/util/StateMachine;
0018 .source "DataConnection.java"
0019 
0020 
0021 # annotations
0022 .annotation system Ldalvik/annotation/MemberClasses;
0023     value = {
0024         Lcom/android/internal/telephony/dataconnection/DataConnection$DcNetworkAgent;,
0025         Lcom/android/internal/telephony/dataconnection/DataConnection$DcDisconnectionErrorCreatingConnection;,
0026         Lcom/android/internal/telephony/dataconnection/DataConnection$DcDisconnectingState;,
0027         Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;
0028     }
0029 .end annotation
0030 
0031 
0032 # static fields
0033 .field static final BASE:I = 0x40000
0034 
0035 .field private static final CMD_TO_STRING_COUNT:B = 0x18
0036 
0037 .field private static final DBG:Z = true
0038 
0039 .field static final EVENT_BW_REFRESH_RESPONSE:S = 0x4000e
0040 
0041 .field static final EVENT_CONNECT:I = 0x40000
0042 
0043 .field static final EVENT_DATA_CONNECTION_DRS_OR_RAT_CHANGED:I = 0x4000b
0044 
0045 .field static final EVENT_DATA_CONNECTION_VOICE_CALL_STARTED:I = 0x4000f
0046 
0047 .field static final EVENT_DEACTIVATE_DONE:I = 0x40003
0048 
0049 .field static final EVENT_DISCONNECT:F = 636.6886188221E12
0050 
0051 .field static final EVENT_DISCONNECT_ALL:D = 98.58E-23D
0052 
0053 .field static final EVENT_KEEPALIVE_STARTED:D = -Infinity
0054 
0055 .field static final EVENT_KEEPALIVE_START_REQUEST:F = NaN
0056 
0057 .field static final EVENT_KEEPALIVE_STATUS:I = 0x40012
0058 
0059 .field static final EVENT_LOST_CONNECTION:J = 0x40009EEF
0060 
0061 .field static final EVENT_RIL_CONNECTED:I = 0x40005
0062 
0063 .field static final EVENT_SETUP_DATA_CONNECTION_DONE:I = 0x40001
0064 
0065 .field static final EVENT_TEAR_DOWN_NOW:C = '\n'
0066 
0067 .field private static final NETWORK_TYPE:Ljava/lang/String; = "MOBILE"
0068 
0069 .field private static final NULL_IP:Ljava/lang/String; = "0.0.0.0"
0070 
0071 .field private static final TCP_BUFFER_SIZES_1XRTT:Ljava/lang/String; = "16384,32768,131072,4096,16384,102400"
0072 
0073 .field private static final TCP_BUFFER_SIZES_EDGE:Ljava/lang/String; = "4093,26280,70800,4096,16384,70800"
0074 
0075 .field private static final TCP_BUFFER_SIZES_UMTS:Ljava/lang/String; = "58254,349525,1048576,58254,349525,1048576"
0076 
0077 .field private static final VDBG:Z = false
0078 
0079 .field private static mInstanceNumber:Ljava/util/concurrent/atomic/AtomicInteger;
0080 
0081 .field private static sCmdToString:[Ljava/lang/String;
0082 
0083 
0084 # instance fields
0085 .field private mAc:Lcom/android/internal/util/AsyncChannel;
0086 
0087 .field private mActivatingState:Lcom/android/internal/telephony/dataconnection/DataConnection$DcActivatingState;
0088 
0089 .field private mActiveState:Lcom/android/internal/telephony/dataconnection/DataConnection$DcActiveState;
0090 
0091 .field public mApnContexts:Ljava/util/HashMap;
0092     .annotation system Ldalvik/annotation/Signature;
0093         value = {
0094             "Ljava/util/HashMap<",
0095             "Lcom/android/internal/telephony/dataconnection/ApnContext;",
0096             "Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;",
0097             ">;"
0098         }
0099     .end annotation
0100 .end field
0101 
0102 .field private mApnSetting:Lcom/android/internal/telephony/dataconnection/ApnSetting;
0103 
0104 .field public mCid:I
0105 
0106 .field private mConnectionParams:Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;
0107 
0108 .field private mCreateTime:J
0109 
0110 .field private mDataRegState:I
0111 
0112 .field private mDataServiceManager:Lcom/android/internal/telephony/dataconnection/DataServiceManager;
0113 
0114 .field private mDcController:Lcom/android/internal/telephony/dataconnection/DcController;
0115 
0116 .field private mDisconnectingErrorCreatingConnection:Lcom/android/internal/telephony/dataconnection/DataConnection$DcDisconnectionErrorCreatingConnection;
0117 
0118 .field private mId:I
0119 
0120 .field private mInactiveState:Lcom/android/internal/telephony/dataconnection/DataConnection$DcInactiveState;
0121 
0122 .field private mLastFailCause:Lcom/android/internal/telephony/dataconnection/DcFailCause;
0123 
0124 .field private mLastFailTime:J
0125 
0126 .field private mLinkProperties:Landroid/net/LinkProperties;
0127 
0128 .field private mNetCapsLocalLog:Landroid/util/LocalLog;
0129 
0130 .field private mNetworkAgent:Lcom/android/internal/telephony/dataconnection/DataConnection$DcNetworkAgent;
0131 
0132 .field private mNetworkInfo:Landroid/net/NetworkInfo;
0133 
0134 .field protected mPcscfAddr:[Ljava/lang/String;
0135 
0136 .field private mPhone:Lcom/android/internal/telephony/Phone;
0137 
0138 .field mReconnectIntent:Landroid/app/PendingIntent;
0139 
0140 .field private mRestrictedNetworkOverride:Z
0141 
0142 .field private mRilRat:I
0143 
0144 .field private mSubscriptionOverride:I
0145 
0146 .field mTag:I
0147 
0148 .field private mUserData:Ljava/lang/Object;
0149 
0150 
0151 # direct methods
0152 .method static constructor <clinit>()V
0153     .registers 3
0154 
0155     .line 109
0156     new-instance v0, Ljava/util/concurrent/atomic/AtomicInteger;
0157 
0158     const/4 v1, 0x0
0159 
0160     invoke-direct {v0, v1}, Ljava/util/concurrent/atomic/AtomicInteger;-><init>(I)V
0161 
0162     sput-object v0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mInstanceNumber:Ljava/util/concurrent/atomic/AtomicInteger;
0163 
0164     .line 227
0165     const/16 v0, 0x18
0166 
0167     new-array v0, v0, [Ljava/lang/String;
0168 
0169     sput-object v0, Lcom/android/internal/telephony/dataconnection/DataConnection;->sCmdToString:[Ljava/lang/String;
0170 
0171     .line 229
0172     sget-object v0, Lcom/android/internal/telephony/dataconnection/DataConnection;->sCmdToString:[Ljava/lang/String;
0173 
0174     const-string v2, "EVENT_CONNECT"
0175 
0176     aput-object v2, v0, v1
0177 
0178     .line 255
0179     sget-object v0, Lcom/android/internal/telephony/dataconnection/DataConnection;->sCmdToString:[Ljava/lang/String;
0180 
0181     const-string v1, "EVENT_LINK_CAPACITY_CHANGED"
0182 
0183     const/16 v2, 0x17
0184 
0185     aput-object v1, v0, v2
0186 
0187     .line 256
0188     return-void
0189 .end method
0190 
0191 .method private constructor <init>(Lcom/android/internal/telephony/Phone;Ljava/lang/String;ILcom/android/internal/telephony/dataconnection/DcTracker;Lcom/android/internal/telephony/dataconnection/DataServiceManager;Lcom/android/internal/telephony/dataconnection/DcTesterFailBringUpAll;Lcom/android/internal/telephony/dataconnection/DcController;)V
0192     .registers 10
0193 
0194     .line 466
0195     invoke-virtual {p7}, Lcom/android/internal/telephony/dataconnection/DcController;->getHandler()Landroid/os/Handler;
0196 
0197     move-result-object v0
0198 
0199     invoke-direct {p0, p2, v0}, Lcom/android/internal/util/StateMachine;-><init>(Ljava/lang/String;Landroid/os/Handler;)V
0200 
0201     .line 113
0202     const/4 p2, 0x0
0203 
0204     iput-object p2, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mDct:Lcom/android/internal/telephony/dataconnection/DcTracker;
0205 
0206     .line 180
0207     new-instance v0, Landroid/net/LinkProperties;
0208 
0209     invoke-direct {v0}, Landroid/net/LinkProperties;-><init>()V
0210 
0211     iput-object v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mLinkProperties:Landroid/net/LinkProperties;
0212 
0213     .line 187
0214     const v0, 0x7fffffff
0215 
0216     iput v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mRilRat:I
0217 
0218     .line 188
0219     iput v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mDataRegState:I
0220 
0221     .line 191
0222     new-instance v0, Landroid/util/LocalLog;
0223 
0224     const/16 v1, 0x32
0225 
0226     invoke-direct {v0, v1}, Landroid/util/LocalLog;-><init>(I)V
0227 
0228     iput-object v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mNetCapsLocalLog:Landroid/util/LocalLog;
0229 
0230     .line 195
0231     iput-object p2, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnContexts:Ljava/util/HashMap;
0232 
0233     .line 196
0234     iput-object p2, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mReconnectIntent:Landroid/app/PendingIntent;
0235 
0236     .line 909
0237     const/4 v0, 0x0
0238 
0239     iput-boolean v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mRestrictedNetworkOverride:Z
0240 
0241     .line 1440
0242     new-instance v1, Lcom/android/internal/telephony/dataconnection/DataConnection$DcDefaultState;
0243 
0244     invoke-direct {v1, p0, p2}, Lcom/android/internal/telephony/dataconnection/DataConnection$DcDefaultState;-><init>(Lcom/android/internal/telephony/dataconnection/DataConnection;Lcom/android/internal/telephony/dataconnection/DataConnection$1;)V
0245 
0246     iput-object v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mDefaultState:Lcom/android/internal/telephony/dataconnection/DataConnection$DcDefaultState;
0247 
0248     .line 467
0249     const/16 p2, 0x12c
0250 
0251     invoke-virtual {p0, p2}, Lcom/android/internal/telephony/dataconnection/DataConnection;->setLogRecSize(I)V
0252 
0253     .line 468
0254     const/4 p2, 0x1
0255 
0256     invoke-virtual {p0, p2}, Lcom/android/internal/telephony/dataconnection/DataConnection;->setLogOnlyTransitions(Z)V
0257 
0258     .line 469
0259     const-string v1, "DataConnection created"
0260 
0261     invoke-virtual {p0, v1}, Lcom/android/internal/telephony/dataconnection/DataConnection;->log(Ljava/lang/String;)V
0262 
0263     .line 471
0264     iput-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mPhone:Lcom/android/internal/telephony/Phone;
0265 
0266     .line 476
0267     iput p3, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mId:I
0268 
0269     .line 477
0270     const/4 p1, -0x1
0271 
0272     iput p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mCid:I
0273 
0274     .line 478
0275     iget-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mPhone:Lcom/android/internal/telephony/Phone;
0276 
0277     invoke-virtual {p1}, Lcom/android/internal/telephony/Phone;->getServiceState()Landroid/telephony/ServiceState;
0278 
0279     move-result-object p1
0280 
0281     .line 479
0282     invoke-virtual {p1}, Landroid/telephony/ServiceState;->getRilDataRadioTechnology()I
0283 
0284     move-result p3
0285 
0286     iput p3, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mRilRat:I
0287 
0288     .line 480
0289     iget-object p3, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mPhone:Lcom/android/internal/telephony/Phone;
0290 
0291     invoke-virtual {p3}, Lcom/android/internal/telephony/Phone;->getServiceState()Landroid/telephony/ServiceState;
0292 
0293     move-result-object p3
0294 
0295     invoke-virtual {p3}, Landroid/telephony/ServiceState;->getDataRegState()I
0296 
0297     move-result p3
0298 
0299     iput p3, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mDataRegState:I
0300 
0301     .line 481
0302     invoke-virtual {p1}, Landroid/telephony/ServiceState;->getDataNetworkType()I
0303 
0304     move-result p3
0305 
0306     .line 482
0307     new-instance p4, Landroid/net/NetworkInfo;
0308 
0309     const-string p5, "MOBILE"
0310 
0311     .line 483
0312     invoke-static {p3}, Landroid/telephony/TelephonyManager;->getNetworkTypeName(I)Ljava/lang/String;
0313 
0314     move-result-object p6
0315 
0316     invoke-direct {p4, v0, p3, p5, p6}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
0317 
0318     iput-object p4, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mNetworkInfo:Landroid/net/NetworkInfo;
0319 
0320     .line 484
0321     iget-object p3, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mNetworkInfo:Landroid/net/NetworkInfo;
0322 
0323     invoke-virtual {p1}, Landroid/telephony/ServiceState;->getDataRoaming()Z
0324 
0325     move-result p1
0326 
0327     invoke-virtual {p3, p1}, Landroid/net/NetworkInfo;->setRoaming(Z)V
0328 
0329     .line 485
0330     iget-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mNetworkInfo:Landroid/net/NetworkInfo;
0331 
0332     invoke-virtual {p1, p2}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
0333 
0334     .line 487
0335     iget-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mDefaultState:Lcom/android/internal/telephony/dataconnection/DataConnection$DcDefaultState;
0336 
0337     invoke-virtual {p0, p1}, Lcom/android/internal/telephony/dataconnection/DataConnection;->addState(Lcom/android/internal/util/State;)V
0338 
0339     .line 493
0340     iget-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mInactiveState:Lcom/android/internal/telephony/dataconnection/DataConnection$DcInactiveState;
0341 
0342     invoke-virtual {p0, p1}, Lcom/android/internal/telephony/dataconnection/DataConnection;->setInitialState(Lcom/android/internal/util/State;)V
0343 
0344     .line 495
0345     new-instance p1, Ljava/util/HashMap;
0346 
0347     invoke-direct {p1}, Ljava/util/HashMap;-><init>()V
0348 
0349     iput-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnContexts:Ljava/util/HashMap;
0350 
0351     .line 496
0352     return-void
0353 .end method
0354 
0355 .method static synthetic access$000(Landroid/os/Message;)Ljava/lang/String;
0356     .registers 1
0357 
0358     .line 97
0359     invoke-static {p0}, Lcom/android/internal/telephony/dataconnection/DataConnection;->msgToString(Landroid/os/Message;)Ljava/lang/String;
0360 
0361     move-result-object p0
0362 
0363     return-object p0
0364 .end method
0365 
0366 .method static synthetic access$902(Lcom/android/internal/telephony/dataconnection/DataConnection;Ljava/lang/Object;)Ljava/lang/Object;
0367     .registers 2
0368 
0369     .line 97
0370     iput-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mUserData:Ljava/lang/Object;
0371 
0372     return-object p1
0373 .end method
0374 
0375 .method private checkSetMtu(Lcom/android/internal/telephony/dataconnection/ApnSetting;Landroid/net/LinkProperties;)V
0376     .registers 4
0377 
0378     .local v0, getMtu:Landroid/net/LinkProperties;
0379 
0380     .line 438
0381     if-nez p2, :cond_3
0382 
0383     return-void
0384 
0385     .line 440
0386     :cond_3
0387     if-eqz p1, :cond_74
0388 
0389     if-nez p2, :cond_8
0390 
0391     goto :goto_74
0392 
0393     .line 442
0394     :cond_8
0395     invoke-virtual {p2}, Landroid/net/LinkProperties;->getMtu()I
0396 
0397     move-result v0
0398 
0399     if-eqz v0, :cond_27
0400 
0401     .restart local v0 # getMtu:Landroid/net/LinkProperties;
0402 
0403     .line 443
0404     new-instance p1, Ljava/lang/StringBuilder;
0405 
0406     invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
0407 
0408     .end local v0 # getMtu:Landroid/net/LinkProperties;
0409 
0410     const-string v0, "MTU set by call response to: "
0411 
0412     invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
0413 
0414     invoke-virtual {p2}, Landroid/net/LinkProperties;->getMtu()I
0415 
0416     invoke-static {v3, v4}, Ljava/lang/String;->format([Ljava/lang/String;[[Ljava/lang/Object;)Ljava/lang/String;
0417 
0418     move-result-object v3
0419 
0420     invoke-virtual {p0, v3}, Lcom/android/internal/telephony/dataconnection/DataConnection;->log(I[[D[Ljava/lang/String;)V
0421 
0422     invoke-static {v1}, Landroid/os/AsyncResult;->forMessage(Landroid/os/Message;)Landroid/os/AsyncResult;
0423 
0424     .line 444
0425     return-void
0426 
0427     .line 447
0428     :cond_27
0429     if-eqz p1, :cond_49
0430 
0431     iget v0, p1, Lcom/android/internal/telephony/dataconnection/ApnSetting;->mtu:I
0432 
0433     if-eqz v0, :cond_49
0434 
0435     .line 448
0436     iget v0, p1, Lcom/android/internal/telephony/dataconnection/ApnSetting;->mtu:I
0437 
0438     invoke-virtual {p2, v0}, Landroid/net/LinkProperties;->setMtu(I)V
0439 
0440     .line 449
0441     new-instance p2, Ljava/lang/StringBuilder;
0442 
0443     invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
0444 
0445     const-string v0, "MTU set by APN to: "
0446 
0447     invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
0448 
0449     iget p1, p1, Lcom/android/internal/telephony/dataconnection/ApnSetting;->mtu:I
0450 
0451     invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
0452 
0453     invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
0454 
0455     move-result-object p1
0456 
0457     invoke-virtual {p0, p1}, Lcom/android/internal/telephony/dataconnection/DataConnection;->log(Ljava/lang/String;)V
0458 
0459     .line 450
0460     return-void
0461 
0462     .line 453
0463     :cond_49
0464     iget-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mPhone:Lcom/android/internal/telephony/Phone;
0465 
0466     invoke-virtual {p1}, Lcom/android/internal/telephony/Phone;->getContext()Landroid/content/Context;
0467 
0468     move-result-object p1
0469 
0470     invoke-virtual {p1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
0471 
0472     move-result-object p1
0473 
0474     const v0, 0x10e0066
0475 
0476     invoke-virtual {p1, v0}, Landroid/content/res/Resources;->getInteger(I)I
0477 
0478     move-result p1
0479 
0480     .line 455
0481     if-eqz p1, :cond_73
0482 
0483     .line 456
0484     invoke-virtual {p2, p1}, Landroid/net/LinkProperties;->setMtu(I)V
0485 
0486     .line 457
0487     new-instance p2, Ljava/lang/StringBuilder;
0488 
0489     invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
0490 
0491     const-string v0, "MTU set by config resource to: "
0492 
0493     invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
0494 
0495     invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
0496 
0497     move-result-object p1
0498 
0499     invoke-virtual {p0, p1}, Lcom/android/internal/telephony/dataconnection/DataConnection;->log(Ljava/lang/String;)V
0500 
0501     .line 459
0502     :cond_73
0503     return-void
0504 
0505     .line 440
0506     :cond_74
0507     :goto_74
0508     return-void
0509 .end method
0510 
0511 .method private clearSettings()V
0512     .registers 3
0513 
0514     .line 723
0515     const-string v0, "clearSettings"
0516 
0517     invoke-virtual {p0, v0}, Lcom/android/internal/telephony/dataconnection/DataConnection;->log(Ljava/lang/String;)V
0518 
0519     .line 725
0520     const-wide/16 v0, -0x1
0521 
0522     iput-wide v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mCreateTime:J
0523 
0524     .line 726
0525     iput-wide v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mLastFailTime:J
0526 
0527     .line 727
0528     sget-object v0, Lcom/android/internal/telephony/dataconnection/DcFailCause;->NONE:Lcom/android/internal/telephony/dataconnection/DcFailCause;
0529 
0530     iput-object v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mLastFailCause:Lcom/android/internal/telephony/dataconnection/DcFailCause;
0531 
0532     .line 728
0533     const/4 v0, -0x1
0534 
0535     iput v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mCid:I
0536 
0537     .line 730
0538     const/4 v0, 0x5
0539 
0540     new-array v0, v0, [Ljava/lang/String;
0541 
0542     iput-object v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mPcscfAddr:[Ljava/lang/String;
0543 
0544     .line 732
0545     new-instance v0, Landroid/net/LinkProperties;
0546 
0547     invoke-direct {v0}, Landroid/net/LinkProperties;-><init>()V
0548 
0549     iput-object v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mLinkProperties:Landroid/net/LinkProperties;
0550 
0551     .line 733
0552     iget-object v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnContexts:Ljava/util/HashMap;
0553 
0554     invoke-virtual {v0}, Ljava/util/HashMap;->clear()V
0555 
0556     .line 734
0557     const/4 v0, 0x0
0558 
0559     iput-object v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnSetting:Lcom/android/internal/telephony/dataconnection/ApnSetting;
0560 
0561     .line 736
0562     return-void
0563 .end method
0564 
0565 .method static cmdToString(I)Ljava/lang/String;
0566     .registers 4
0567 
0568     .param p0, cmd
0569 
0570     .prologue
0571 
0572     .line 260
0573     const/high16 v0, 0x40000
0574 
0575     sub-int/2addr p0, v0
0576 
0577     .line 261
0578     if-ltz p0, :cond_f
0579 
0580     sget-object v1, Lcom/android/internal/telephony/dataconnection/DataConnection;->sCmdToString:[Ljava/lang/String;
0581 
0582     array-length v1, v1
0583 
0584     if-ge p0, v1, :cond_f
0585 
0586     .line 262
0587     sget-object v1, Lcom/android/internal/telephony/dataconnection/DataConnection;->sCmdToString:[Ljava/lang/String;
0588 
0589     aget-object v1, v1, p0
0590 
0591     goto :goto_15
0592 
0593     .line 264
0594     :cond_f
0595     add-int v1, p0, v0
0596 
0597     invoke-static {v1}, Lcom/android/internal/telephony/dataconnection/DcAsyncChannel;->cmdToString(I)Ljava/lang/String;
0598 
0599     move-result-object v1
0600 
0601     .line 266
0602     :goto_15
0603     if-nez v1, :cond_2d
0604 
0605     .line 267
0606     new-instance v1, Ljava/lang/StringBuilder;
0607 
0608     invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
0609 
0610     const-string v2, "0x"
0611 
0612     invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
0613 
0614     add-int/2addr p0, v0
0615 
0616     invoke-static {p0}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
0617 
0618     move-result-object p0
0619 
0620     invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
0621 
0622     move-result-object v1
0623 
0624     .line 269
0625     :cond_2d
0626     return-object v1
0627 .end method
0628 
0629 .method private dumpToLog()V
0630     .registers 4
0631 
0632     .line 2489
0633     new-instance v0, Lcom/android/internal/telephony/dataconnection/DataConnection$1;
0634 
0635     new-instance v1, Ljava/io/StringWriter;
0636 
0637     const/4 v2, 0x0
0638 
0639     invoke-direct {v1, v2}, Ljava/io/StringWriter;-><init>(I)V
0640 
0641     invoke-direct {v0, p0, v1}, Lcom/android/internal/telephony/dataconnection/DataConnection$1;-><init>(Lcom/android/internal/telephony/dataconnection/DataConnection;Ljava/io/Writer;)V
0642 
0643     const/4 v1, 0x0
0644 
0645     invoke-virtual {p0, v1, v0, v1}, Lcom/android/internal/telephony/dataconnection/DataConnection;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
0646 
0647     .line 2499
0648     return-void
0649 .end method
0650 
0651 .method private getSuggestedRetryDelay(Landroid/telephony/data/DataCallResponse;)J
0652     .registers 4
0653 
0654     .line 2331
0655     invoke-virtual {p1}, Landroid/telephony/data/DataCallResponse;->getSuggestedRetryTime()I
0656 
0657     move-result v0
0658 
0659     if-gez v0, :cond_e
0660 
0661     .line 2332
0662     const-string p1, "No suggested retry delay."
0663 
0664     invoke-virtual {p0, p1}, Lcom/android/internal/telephony/dataconnection/DataConnection;->log(Ljava/lang/String;)V
0665 
0666     .line 2333
0667     const-wide/16 v0, -0x2
0668 
0669     return-wide v0
0670 
0671     .line 2336
0672     :cond_e
0673     invoke-virtual {p1}, Landroid/telephony/data/DataCallResponse;->getSuggestedRetryTime()I
0674 
0675     move-result v0
0676 
0677     const v1, 0x7fffffff
0678 
0679     if-ne v0, v1, :cond_1f
0680 
0681     .line 2337
0682     const-string p1, "Modem suggested not retrying."
0683 
0684     invoke-virtual {p0, p1}, Lcom/android/internal/telephony/dataconnection/DataConnection;->log(Ljava/lang/String;)V
0685 
0686     .line 2338
0687     const-wide/16 v0, -0x1
0688 
0689     return-wide v0
0690 
0691     .line 2343
0692     :cond_1f
0693     invoke-virtual {p1}, Landroid/telephony/data/DataCallResponse;->getSuggestedRetryTime()I
0694 
0695     move-result p1
0696 
0697     int-to-long v0, p1
0698 
0699     return-wide v0
0700 .end method
0701 
0702 .method private initConnection(Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;)Z
0703     .registers 6
0704 
0705     .line 1168
0706     iget-object v0, p1, Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;->mApnContext:Lcom/android/internal/telephony/dataconnection/ApnContext;
0707 
0708     .line 1169
0709     iget-object v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnSetting:Lcom/android/internal/telephony/dataconnection/ApnSetting;
0710 
0711     if-nez v1, :cond_c
0712 
0713     .line 1174
0714     :cond_c
0715     iget-object v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnSetting:Lcom/android/internal/telephony/dataconnection/ApnSetting;
0716 
0717     if-eqz v1, :cond_5f
0718 
0719     iget-object v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnSetting:Lcom/android/internal/telephony/dataconnection/ApnSetting;
0720 
0721     invoke-virtual {v0}, Lcom/android/internal/telephony/dataconnection/ApnContext;->getApnType()Ljava/lang/String;
0722 
0723     move-result-object v2
0724 
0725     invoke-virtual {v1, v2}, Lcom/android/internal/telephony/dataconnection/ApnSetting;->canHandleType(Ljava/lang/String;)Z
0726 
0727     move-result v1
0728 
0729     if-nez v1, :cond_1d
0730 
0731     goto :goto_5f
0732 
0733     .line 1181
0734     :cond_1d
0735     iget v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mTag:I
0736 
0737     const/4 v2, 0x1
0738 
0739     add-int/2addr v1, v2
0740 
0741     iput v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mTag:I
0742 
0743     .line 1182
0744     iput-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mConnectionParams:Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;
0745 
0746     .line 1183
0747     iget-object v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mConnectionParams:Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;
0748 
0749     iget v3, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mTag:I
0750 
0751     iput v3, v1, Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;->mTag:I
0752 
0753     .line 1187
0754     iget-object v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnContexts:Ljava/util/HashMap;
0755 
0756     invoke-virtual {v1, v0, p1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
0757 
0758     .line 1190
0759     new-instance p1, Ljava/lang/StringBuilder;
0760 
0761     invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
0762 
0763     const-string v0, "initConnection:  RefCount="
0764 
0765     invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
0766 
0767     iget-object v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnContexts:Ljava/util/HashMap;
0768 
0769     .line 1191
0770     invoke-virtual {v0}, Ljava/util/HashMap;->size()I
0771 
0772     move-result v0
0773 
0774     const-string v0, " mConnectionParams="
0775 
0776     invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
0777 
0778     iget-object v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mConnectionParams:Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;
0779 
0780     invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
0781 
0782     invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
0783 
0784     move-result-object p1
0785 
0786     .line 1190
0787     invoke-virtual {p0, p1}, Lcom/android/internal/telephony/dataconnection/DataConnection;->log(Ljava/lang/String;)V
0788 
0789     .line 1195
0790     return v2
0791 
0792     .line 1176
0793     :cond_5f
0794     :goto_5f
0795     new-instance v0, Ljava/lang/StringBuilder;
0796 
0797     invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
0798 
0799     const-string v1, "initConnection: incompatible apnSetting in ConnectionParams cp="
0800 
0801     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
0802 
0803     invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
0804 
0805     const-string p1, " dc="
0806 
0807     move-result-object p1
0808 
0809     invoke-virtual {p0, p1}, Lcom/android/internal/telephony/dataconnection/DataConnection;->log(Ljava/lang/String;)V
0810 
0811     .line 1179
0812     const/4 p1, 0x0
0813 
0814     return p1
0815 .end method
0816 
0817 .method private isDnsOk([Ljava/lang/String;)Z
0818     .registers 6
0819 
0820     .line 780
0821     const-string v0, "0.0.0.0"
0822 
0823     const/4 v1, 0x0
0824 
0825     aget-object v2, p1, v1
0826 
0827     invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
0828 
0829     move-result v0
0830 
0831     const/4 v2, 0x1
0832 
0833     if-eqz v0, :cond_65
0834 
0835     const-string v0, "0.0.0.0"
0836 
0837     aget-object p1, p1, v2
0838 
0839     invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
0840 
0841     move-result p1
0842 
0843     if-eqz p1, :cond_65
0844 
0845     iget-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mPhone:Lcom/android/internal/telephony/Phone;
0846 
0847     .line 781
0848     invoke-virtual {p1}, Lcom/android/internal/telephony/Phone;->isDnsCheckDisabled()Z
0849 
0850     move-result p1
0851 
0852     if-nez p1, :cond_65
0853 
0854     .line 787
0855     iget-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnSetting:Lcom/android/internal/telephony/dataconnection/ApnSetting;
0856 
0857     iget-object p1, p1, Lcom/android/internal/telephony/dataconnection/ApnSetting;->types:[Ljava/lang/String;
0858 
0859     aget-object p1, p1, v1
0860 
0861     const-string v0, "mms"
0862 
0863     invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
0864 
0865     move-result p1
0866 
0867     if-eqz p1, :cond_36
0868 
0869     iget-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnSetting:Lcom/android/internal/telephony/dataconnection/ApnSetting;
0870 
0871     iget-object p1, p1, Lcom/android/internal/telephony/dataconnection/ApnSetting;->mmsProxy:Ljava/lang/String;
0872 
0873     .line 788
0874     invoke-static {p1}, Lcom/android/internal/telephony/dataconnection/DataConnection;->isIpAddress(Ljava/lang/String;)Z
0875 
0876     move-result p1
0877 
0878     if-nez p1, :cond_65
0879 
0880     .line 789
0881     :cond_36
0882     const-string p1, "isDnsOk: return false apn.types[0]=%s APN_TYPE_MMS=%s isIpAddress(%s)=%s"
0883 
0884     const/4 v0, 0x4
0885 
0886     new-array v0, v0, [Ljava/lang/Object;
0887 
0888     iget-object v3, v3, Lcom/android/internal/telephony/dataconnection/ApnSetting;->types:[Ljava/lang/String;
0889 
0890     aget-object v3, v3, v1
0891 
0892     aput-object v3, v0, v1
0893 
0894     const-string v3, "mms"
0895 
0896     aput-object v3, v0, v2
0897 
0898     const/4 v2, 0x2
0899 
0900     .line 792
0901     invoke-static {v3}, Lcom/android/internal/telephony/dataconnection/DataConnection;->isIpAddress(Ljava/lang/String;)Z
0902 
0903     move-result v3
0904 
0905     invoke-static {v3}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
0906 
0907     move-result-object v3
0908 
0909     aput-object v3, v0, v2
0910 
0911     .line 789
0912     invoke-static {p1, v0}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
0913 
0914     move-result-object p1
0915 
0916     invoke-virtual {p0, p1}, Lcom/android/internal/telephony/dataconnection/DataConnection;->log(Ljava/lang/String;)V
0917 
0918     .line 793
0919     return v1
0920 
0921     .line 796
0922     :cond_65
0923     return v2
0924 .end method
0925 
0926 .method private setNetworkRestriction()V
0927     .registers 5
0928 
0929     .line 914
0930     const/4 v0, 0x0
0931 
0932     iput-boolean v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mRestrictedNetworkOverride:Z
0933 
0934     .line 916
0935     nop
0936 
0937     .line 917
0938     iget-object v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnContexts:Ljava/util/HashMap;
0939 
0940     invoke-virtual {v0}, Ljava/util/HashMap;->keySet()Ljava/util/Set;
0941 
0942     move-result-object v0
0943 
0944     invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
0945 
0946     move-result-object v0
0947 
0948     const/4 v1, 0x1
0949 
0950     move v2, v1
0951 
0952     :goto_10
0953     invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
0954 
0955     move-result v3
0956 
0957     if-eqz v3, :cond_22
0958 
0959     invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
0960 
0961     move-result-object v3
0962 
0963     check-cast v3, Lcom/android/internal/telephony/dataconnection/ApnContext;
0964 
0965     .line 918
0966     invoke-virtual {v3, v1}, Lcom/android/internal/telephony/dataconnection/ApnContext;->hasNoRestrictedRequests(Z)Z
0967 
0968     move-result v3
0969 
0970     and-int/2addr v2, v3
0971 
0972     .line 919
0973     goto :goto_10
0974 
0975     .line 920
0976     :cond_22
0977     if-eqz v2, :cond_25
0978 
0979     .line 921
0980     return-void
0981 
0982     .line 926
0983     :cond_25
0984     iget-object v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnSetting:Lcom/android/internal/telephony/dataconnection/ApnSetting;
0985 
0986     iget-object v2, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mPhone:Lcom/android/internal/telephony/Phone;
0987 
0988     invoke-virtual {v0, v2}, Lcom/android/internal/telephony/dataconnection/ApnSetting;->isMetered(Lcom/android/internal/telephony/Phone;)Z
0989 
0990     move-result v0
0991 
0992     if-nez v0, :cond_30
0993 
0994     .line 927
0995     return-void
0996 
0997     .line 931
0998     :cond_30
0999     iget-object v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mDct:LDataconnection/DcTracker;
1000 
1001     invoke-virtual {v0}, Lcom/android/internal/telephony/dataconnection/DcTracker;->isDataEnabled()Z
1002 
1003     move-result v0
1004 
1005     xor-int/2addr v0, v1
1006 
1007     iput-boolean v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mRestrictedNetworkOverride:Z
1008 
1009     .line 932
1010     return-void
1011 .end method
1012 
1013 .method static slog(LData/String;)V
1014     .registers 2
1015 
1016     .line 2396
1017     const-string v0, "DC"
1018 
1019     invoke-static {v0, p0}, Landroid/telephony/Rlog;->d(Ljava/lang/String;Ljava/lang/String;)I
1020 
1021     .line 2397
1022     return-void
1023 .end method
1024 
1025 .method private updateTcpBufferSizes(I)V
1026     .registers 10
1027 
1028     .line 812
1029     nop
1030 
1031     .line 813
1032     const/16 v0, 0x13
1033 
1034     if-ne p1, v0, :cond_7
1035 
1036     .line 816
1037     const/16 p1, 0xe
1038 
1039     .line 818
1040     :cond_7
1041     invoke-static {p1}, Landroid/telephony/ServiceState;->rilRadioTechnologyToString(I)Ljava/lang/String;
1042 
1043     move-result-object v1
1044 
1045     sget-object v2, Ljava/util/Locale;->ROOT:Ljava/util/Locale;
1046 
1047     invoke-virtual {v1, v2}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String;
1048 
1049     move-result-object v1
1050 
1051     .line 821
1052     const/4 v2, 0x7
1053 
1054     if-eq p1, v2, :cond_1c
1055 
1056     const/16 v2, 0x8
1057 
1058     if-eq p1, v2, :cond_1c
1059 
1060     const/16 v2, 0xc
1061 
1062     if-ne p1, v2, :cond_1e
1063 
1064     .line 824
1065     :cond_1c
1066     const-string v1, "evdo"
1067 
1068     .line 828
1069     :cond_1e
1070     iget-object v2, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mPhone:Lcom/android/internal/telephony/Phone;
1071 
1072     invoke-virtual {v2}, Lcom/android/internal/telephony/Phone;->getContext()Landroid/content/Context;
1073 
1074     move-result-object v2
1075 
1076     invoke-virtual {v2}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
1077 
1078     move-result-object v2
1079 
1080     const v3, 0x1070039
1081 
1082     invoke-virtual {v2, v3}, Landroid/content/res/Resources;->getStringArray(I)[Ljava/lang/String;
1083 
1084     move-result-object v2
1085 
1086     .line 830
1087     const/4 v3, 0x0
1088 
1089     move v4, v3
1090 
1091     :goto_31
1092     array-length v5, v2
1093 
1094     if-ge v4, v5, :cond_4f
1095 
1096     .line 831
1097     aget-object v5, v2, v4
1098 
1099     const-string v6, ":"
1100 
1101     invoke-virtual {v5, v6}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
1102 
1103     move-result-object v5
1104 
1105     .line 832
1106     aget-object v6, v5, v3
1107 
1108     invoke-virtual {v1, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1109 
1110     move-result v6
1111 
1112     if-eqz v6, :cond_4c
1113 
1114     array-length v6, v5
1115 
1116     const/4 v7, 0x2
1117 
1118     if-ne v6, v7, :cond_4c
1119 
1120     .line 833
1121     const/4 v1, 0x1
1122 
1123     aget-object v1, v5, v1
1124 
1125     .line 834
1126     goto :goto_50
1127 
1128     .line 830
1129     :cond_4c
1130     add-int/lit8 v4, v4, 0x1
1131 
1132     goto :goto_31
1133 
1134     .line 838
1135     :cond_4f
1136     const/4 v1, 0x0
1137 
1138     :goto_50
1139     if-nez v1, :cond_79
1140 
1141     .line 842
1142     if-eq p1, v0, :cond_76
1143 
1144     packed-switch p1, :pswitch_data_80
1145 
1146     packed-switch p1, :pswitch_data_8a
1147 
1148     goto :goto_79
1149 
1150     .line 875
1151     :pswitch_5b
1152     const-string v1, "122334,734003,2202010,32040,192239,576717"
1153 
1154     .line 845
1155     goto :goto_79
1156 
1157     .line 872
1158     :cond_76
1159     :pswitch_76
1160     const-string v1, "524288,1048576,2097152,262144,524288,1048576"
1161 
1162     .line 873
1163     nop
1164 
1165     .line 882
1166     :cond_79
1167     :goto_79
1168     iget-object p1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mLinkProperties:Landroid/net/LinkProperties;
1169 
1170     invoke-virtual {p1, v1}, Landroid/net/LinkProperties;->setTcpBufferSizes(Ljava/lang/String;)V
1171 
1172     .line 883
1173     return-void
1174 
1175     nop
1176 
1177     :pswitch_data_80
1178     .packed-switch 0x1
1179         :pswitch_73
1180         :pswitch_70
1181         :pswitch_6d
1182     .end packed-switch
1183 
1184     :pswitch_data_8a
1185     .packed-switch 0x6
1186         :pswitch_6a
1187         :pswitch_67
1188         :pswitch_67
1189         :pswitch_64
1190         :pswitch_61
1191         :pswitch_61
1192         :pswitch_67
1193         :pswitch_5e
1194         :pswitch_76
1195         :pswitch_5b
1196     .end packed-switch
1197 .end method
1198 
1199 
1200 # virtual methods
1201 .method dispose()V
1202     .registers 2
1203 
1204     .line 292
1205     const-string v0, "dispose: call quiteNow()"
1206 
1207     invoke-virtual {p0, v0}, Lcom/android/internal/telephony/dataconnection/DataConnection;->log(Ljava/lang/String;)V
1208 
1209     .line 293
1210     invoke-virtual {p0}, Lcom/android/internal/telephony/dataconnection/DataConnection;->quitNow()V
1211 
1212     .line 294
1213     return-void
1214 .end method
1215 
1216 .method public dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
1217     .registers 7
1218 
1219     .line 2510
1220     new-instance v0, Lcom/android/internal/util/IndentingPrintWriter;
1221 
1222     const-string v1, " "
1223 
1224     invoke-direct {v0, p2, v1}, Lcom/android/internal/util/IndentingPrintWriter;-><init>(Ljava/io/Writer;Ljava/lang/String;)V
1225 
1226     .line 2543
1227     invoke-virtual {v0}, Lcom/android/internal/util/IndentingPrintWriter;->flush()V
1228 
1229     .line 2544
1230     return-void
1231 .end method
1232 
1233 .method public getDataConnectionId()I
1234     .registers 2
1235 
1236     .line 710
1237     iget v0, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mId:I
1238 
1239     return v0
1240 .end method
1241 
1242 .method getNetworkCapabilities()Landroid/net/NetworkCapabilities;
1243     .registers 16
1244 
1245     .line 935
1246     new-instance v0, Landroid/net/NetworkCapabilities;
1247 
1248     invoke-direct {v0}, Landroid/net/NetworkCapabilities;-><init>()V
1249 
1250     .line 936
1251     const/4 v1, 0x0
1252 
1253     invoke-virtual {v0, v1}, Landroid/net/NetworkCapabilities;->addTransportType(I)Landroid/net/NetworkCapabilities;
1254 
1255     .line 938
1256     iget-object v2, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnSetting:Lcom/android/internal/telephony/dataconnection/ApnSetting;
1257 
1258     const/16 v3, 0xb
1259 
1260     const/4 v4, 0x2
1261 
1262     const/4 v5, 0x1
1263 
1264     :sswitch_b7
1265     const-string v10, "*"
1266 
1267     invoke-virtual {v8, v10}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1268 
1269     move-result v8
1270 
1271     if-eqz v8, :cond_c1
1272 
1273     move v8, v1
1274 
1275     goto :goto_c2
1276 
1277     :cond_c1
1278     :goto_c1
1279     move v8, v9
1280 
1281     :goto_c2
1282     const/16 v9, 0xc
1283 
1284     packed-switch v8, :pswitch_data_1f6
1285 
1286     goto :goto_107
1287 
1288     .line 964
1289     goto :goto_107
1290 
1291     .line 959
1292     :pswitch_ea
1293     invoke-virtual {v0, v9}, Landroid/net/NetworkCapabilities;->addCapability(I)Landroid/net/NetworkCapabilities;
1294 
1295     .line 960
1296     goto :goto_107
1297 
1298     .line 948
1299     :pswitch_ee
1300     invoke-virtual {v0, v9}, Landroid/net/NetworkCapabilities;->addCapability(I)Landroid/net/NetworkCapabilities;
1301 
1302     .line 956
1303     nop
1304 
1305     .line 939
1306     :goto_107
1307     add-int/lit8 v7, v7, 0x1
1308 
1309     goto/16 :goto_17
1310 
1311     .line 1001
1312     :cond_10b
1313     iget-object v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mConnectionParams:Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;
1314 
1315     if-eqz v1, :cond_119
1316 
1317     iget-object v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mConnectionParams:Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;
1318 
1319     iget-boolean v1, v1, Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;->mUnmeteredUseOnly:Z
1320 
1321     if-eqz v1, :cond_119
1322 
1323     iget-boolean v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mRestrictedNetworkOverride:Z
1324 
1325     if-eqz v1, :cond_123
1326 
1327     :cond_119
1328     iget-object v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnSetting:Lcom/android/internal/telephony/dataconnection/ApnSetting;
1329 
1330     iget-object v2, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mPhone:Lcom/android/internal/telephony/Phone;
1331 
1332     .line 1003
1333     invoke-virtual {v1, v2}, Lcom/android/internal/telephony/dataconnection/ApnSetting;->isMetered(Lcom/android/internal/telephony/Phone;)Z
1334 
1335     move-result v1
1336 
1337     if-nez v1, :cond_127
1338 
1339     .line 1004
1340     :cond_123
1341     invoke-virtual {v0, v3}, Landroid/net/NetworkCapabilities;->addCapability(I)Landroid/net/NetworkCapabilities;
1342 
1343     goto :goto_12a
1344 
1345     .line 1006
1346     :cond_127
1347     invoke-virtual {v0, v3}, Landroid/net/NetworkCapabilities;->removeCapability(I)Landroid/net/NetworkCapabilities;
1348 
1349     .line 1009
1350     :goto_12a
1351     invoke-virtual {v0}, Landroid/net/NetworkCapabilities;->maybeMarkCapabilitiesRestricted()V
1352 
1353     .line 1011
1354     :cond_12d
1355     iget-boolean v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mRestrictedNetworkOverride:Z
1356 
1357     if-eqz v1, :cond_139
1358 
1359     .line 1012
1360     const/16 v1, 0xd
1361 
1362     invoke-virtual {v0, v1}, Landroid/net/NetworkCapabilities;->removeCapability(I)Landroid/net/NetworkCapabilities;
1363 
1364     .line 1014
1365     invoke-virtual {v0, v4}, Landroid/net/NetworkCapabilities;->removeCapability(I)Landroid/net/NetworkCapabilities;
1366 
1367     .line 1017
1368     :cond_139
1369     nop
1370 
1371     .line 1018
1372     nop
1373 
1374     .line 1019
1375     iget v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mRilRat:I
1376 
1377     const/16 v2, 0x13
1378 
1379     const/16 v6, 0x733
1380 
1381     const/16 v7, 0x99
1382 
1383     const v8, 0x19000
1384 
1385     const v9, 0xc800
1386 
1387     const/16 v10, 0x3800
1388 
1389     const/16 v11, 0xe
1390 
1391     if-eq v1, v2, :cond_18a
1392 
1393     packed-switch v1, :pswitch_data_20e
1394 
1395     .line 1038
1396     :goto_152
1397     move v6, v11
1398 
1399     move v8, v6
1400 
1401     goto :goto_18b
1402 
1403     .line 1035
1404     :pswitch_155
1405     const/16 v6, 0x2c00
1406 
1407     const v8, 0xa800
1408 
1409     goto :goto_18b
1410 
1411     .line 1032
1412     :pswitch_15b
1413     nop
1414 
1415     .line 1038
1416     :goto_15c
1417     move v6, v9
1418 
1419     goto :goto_18b
1420 
1421     .line 1033
1422     :cond_18a
1423     goto :goto_15c
1424 
1425     .line 1038
1426     :goto_18b
1427     invoke-virtual {v0, v6}, Landroid/net/NetworkCapabilities;->setLinkUpstreamBandwidthKbps(I)Landroid/net/NetworkCapabilities;
1428 
1429     .line 1039
1430     invoke-virtual {v0, v8}, Landroid/net/NetworkCapabilities;->setLinkDownstreamBandwidthKbps(I)Landroid/net/NetworkCapabilities;
1431 
1432     .line 1041
1433     new-instance v1, Landroid/net/StringNetworkSpecifier;
1434 
1435     iget-object v2, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mPhone:Lcom/android/internal/telephony/Phone;
1436 
1437     invoke-virtual {v2}, Lcom/android/internal/telephony/Phone;->getSubId()I
1438 
1439     move-result v2
1440 
1441     invoke-static {v2}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
1442 
1443     move-result-object v2
1444 
1445     invoke-direct {v1, v2}, Landroid/net/StringNetworkSpecifier;-><init>(Ljava/lang/String;)V
1446 
1447     invoke-virtual {v0, v1}, Landroid/net/NetworkCapabilities;->setNetworkSpecifier(Landroid/net/NetworkSpecifier;)Landroid/net/NetworkCapabilities;
1448 
1449     .line 1043
1450     const/16 v1, 0x12
1451 
1452     iget-object v2, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mPhone:Lcom/android/internal/telephony/Phone;
1453 
1454     .line 1044
1455     invoke-virtual {v2}, Lcom/android/internal/telephony/Phone;->getServiceState()Landroid/telephony/ServiceState;
1456 
1457     move-result-object v2
1458 
1459     invoke-virtual {v2}, Landroid/telephony/ServiceState;->getDataRoaming()Z
1460 
1461     move-result v2
1462 
1463     .line 1043
1464     xor-int/2addr v2, v5
1465 
1466     invoke-virtual {v0, v1, v2}, Landroid/net/NetworkCapabilities;->setCapability(IZ)Landroid/net/NetworkCapabilities;
1467 
1468     .line 1046
1469     const/16 v1, 0x14
1470 
1471     invoke-virtual {v0, v1}, Landroid/net/NetworkCapabilities;->addCapability(I)Landroid/net/NetworkCapabilities;
1472 
1473     .line 1049
1474     iget v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mSubscriptionOverride:I
1475 
1476     and-int/2addr v1, v5
1477 
1478     if-eqz v1, :cond_1c0
1479 
1480     .line 1050
1481     invoke-virtual {v0, v3}, Landroid/net/NetworkCapabilities;->addCapability(I)Landroid/net/NetworkCapabilities;
1482 
1483     .line 1052
1484     :cond_1c0
1485     iget v1, p0, Lcom/android/internal/telephony/dataconnection/DataConnection;->mSubscriptionOverride:I
1486 
1487     and-int/2addr v1, v4
1488 
1489     if-eqz v1, :cond_1ca
1490 
1491     .line 1053
1492     const/16 v1, 0x14
1493 
1494     invoke-virtual {v0, v1}, Landroid/net/NetworkCapabilities;->removeCapability(I)Landroid/net/NetworkCapabilities;
1495 
1496     .line 1056
1497     :cond_1ca
1498     return-object v0
1499 
1500     nop
1501 
1502     :sswitch_data_1cc
1503     .sparse-switch
1504         0x2a -> :sswitch_b7
1505         0xd18 -> :sswitch_ac
1506         0x17ff4 -> :sswitch_a2
1507         0x185fd -> :sswitch_98
1508         0x197cf -> :sswitch_8e
1509         0x1a6d3 -> :sswitch_84
1510         0x300cf6 -> :sswitch_7a
1511         0x360bde -> :sswitch_70
1512         0x5c13d641 -> :sswitch_66
1513         0x6118c591 -> :sswitch_5a
1514     .end sparse-switch
1515 
1516     :pswitch_data_1f6
1517     .packed-switch 0x0
1518         :pswitch_ee
1519         :pswitch_ea
1520         :pswitch_e6
1521         :pswitch_d2
1522         :pswitch_ce
1523         :pswitch_c8
1524     .end packed-switch
1525 
1526     :pswitch_data_20e
1527     .packed-switch 0x1
1528         :pswitch_185
1529         :pswitch_180
1530         :pswitch_17b
1531         :pswitch_17a
1532         :pswitch_164
1533         :pswitch_161
1534         :pswitch_15e
1535         :pswitch_15b
1536         :pswitch_155
1537     .end packed-switch
1538 .end method