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