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