Merge "DcTracker: Cleanup connections when IccRecords is destroyed." into lmp-mr1-dev
diff --git a/src/java/com/android/internal/telephony/Phone.java b/src/java/com/android/internal/telephony/Phone.java
index 3d2d304..32966ae 100644
--- a/src/java/com/android/internal/telephony/Phone.java
+++ b/src/java/com/android/internal/telephony/Phone.java
@@ -109,6 +109,7 @@
static final String REASON_CONNECTED = "connected";
static final String REASON_SINGLE_PDN_ARBITRATION = "SinglePdnArbitration";
static final String REASON_DATA_SPECIFIC_DISABLED = "specificDisabled";
+ static final String REASON_SIM_NOT_READY = "simNotReady";
// Used for band mode selection methods
static final int BM_UNSPECIFIED = 0; // selected by baseband automatically
diff --git a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
index 60bc558..5a456d0 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
@@ -1528,6 +1528,14 @@
setupDataOnConnectableApns(Phone.REASON_SIM_LOADED);
}
+ private void onSimNotReady() {
+ if (DBG) log("onSimNotReady");
+
+ cleanUpAllConnections(true, Phone.REASON_SIM_NOT_READY);
+ mAllApnSettings = null;
+ mAutoAttachOnCreationConfig = false;
+ }
+
@Override
protected void onSetDependencyMet(String apnType, boolean met) {
// don't allow users to tweak hipri to work around default dependency not met
@@ -2771,6 +2779,8 @@
mIccRecords.set(newIccRecords);
newIccRecords.registerForRecordsLoaded(
this, DctConstants.EVENT_RECORDS_LOADED, null);
+ } else {
+ onSimNotReady();
}
}
}