Merge "Change to not dump PII in IsimUiccRecords." into mnc-dev
diff --git a/src/java/com/android/internal/telephony/PhoneBase.java b/src/java/com/android/internal/telephony/PhoneBase.java
index 570f863..4037392 100644
--- a/src/java/com/android/internal/telephony/PhoneBase.java
+++ b/src/java/com/android/internal/telephony/PhoneBase.java
@@ -1314,6 +1314,7 @@
* @return the original list with CDMA lat/long cleared if necessary
*/
private List<CellInfo> privatizeCellInfoList(List<CellInfo> cellInfoList) {
+ if (cellInfoList == null) return null;
int mode = Settings.Secure.getInt(getContext().getContentResolver(),
Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF);
if (mode == Settings.Secure.LOCATION_MODE_OFF) {
diff --git a/src/java/com/android/internal/telephony/dataconnection/DcController.java b/src/java/com/android/internal/telephony/dataconnection/DcController.java
index 39c25ff..98d1c3b 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DcController.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DcController.java
@@ -379,28 +379,28 @@
}
}
- // Temporary notification until RIL implementation is complete.
- if (mOverallDataConnectionActiveState != newOverallDataConnectionActiveState) {
- mOverallDataConnectionActiveState = newOverallDataConnectionActiveState;
- long time = SystemClock.elapsedRealtimeNanos();
- int dcPowerState;
- switch (mOverallDataConnectionActiveState) {
- case DATA_CONNECTION_ACTIVE_PH_LINK_INACTIVE:
- case DATA_CONNECTION_ACTIVE_PH_LINK_DORMANT:
- dcPowerState = DataConnectionRealTimeInfo.DC_POWER_STATE_LOW;
- break;
- case DATA_CONNECTION_ACTIVE_PH_LINK_UP:
- dcPowerState = DataConnectionRealTimeInfo.DC_POWER_STATE_HIGH;
- break;
- default:
- dcPowerState = DataConnectionRealTimeInfo.DC_POWER_STATE_UNKNOWN;
- break;
- }
- DataConnectionRealTimeInfo dcRtInfo =
- new DataConnectionRealTimeInfo(time , dcPowerState);
- log("onDataStateChanged: notify DcRtInfo changed dcRtInfo=" + dcRtInfo);
- mPhone.notifyDataConnectionRealTimeInfo(dcRtInfo);
- }
+ // TODO: b/23319188 Enable/Disable this based on enable/disable of dormancy indications
+ //if (mOverallDataConnectionActiveState != newOverallDataConnectionActiveState) {
+ // mOverallDataConnectionActiveState = newOverallDataConnectionActiveState;
+ // long time = SystemClock.elapsedRealtimeNanos();
+ // int dcPowerState;
+ // switch (mOverallDataConnectionActiveState) {
+ // case DATA_CONNECTION_ACTIVE_PH_LINK_INACTIVE:
+ // case DATA_CONNECTION_ACTIVE_PH_LINK_DORMANT:
+ // dcPowerState = DataConnectionRealTimeInfo.DC_POWER_STATE_LOW;
+ // break;
+ // case DATA_CONNECTION_ACTIVE_PH_LINK_UP:
+ // dcPowerState = DataConnectionRealTimeInfo.DC_POWER_STATE_HIGH;
+ // break;
+ // default:
+ // dcPowerState = DataConnectionRealTimeInfo.DC_POWER_STATE_UNKNOWN;
+ // break;
+ // }
+ // DataConnectionRealTimeInfo dcRtInfo =
+ // new DataConnectionRealTimeInfo(time , dcPowerState);
+ // log("onDataStateChanged: notify DcRtInfo changed dcRtInfo=" + dcRtInfo);
+ // mPhone.notifyDataConnectionRealTimeInfo(dcRtInfo);
+ //}
if (DBG) {
lr("onDataStateChanged: dcsToRetry=" + dcsToRetry
diff --git a/src/java/com/android/internal/telephony/dataconnection/DcSwitchStateMachine.java b/src/java/com/android/internal/telephony/dataconnection/DcSwitchStateMachine.java
index c11cd5b..68d3f50 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DcSwitchStateMachine.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DcSwitchStateMachine.java
@@ -193,6 +193,13 @@
final PhoneBase pb = (PhoneBase)((PhoneProxy)mPhone).getActivePhone();
pb.mCi.setDataAllowed(true, obtainMessage(EVENT_DATA_ALLOWED,
++mCurrentAllowedSequence, 0));
+ // if we're on a carrier that unattaches us if we're idle for too long
+ // (on wifi) and they won't re-attach until we poke them. Poke them!
+ // essentially react as Attached does here in Attaching.
+ if (pb.mDcTracker.getAutoAttachOnCreation()) {
+ if (DBG) log("AttachingState executeAll due to autoAttach");
+ DctController.getInstance().executeAllRequests(mId);
+ }
}
@Override
@@ -205,11 +212,16 @@
apnRequest.log("DcSwitchStateMachine.AttachingState: REQ_CONNECT");
if (DBG) log("AttachingState: REQ_CONNECT, apnRequest=" + apnRequest);
- // do nothing - wait til we attach and then we'll execute all requests
+ final PhoneBase pb = (PhoneBase)((PhoneProxy)mPhone).getActivePhone();
+ if (pb.mDcTracker.getAutoAttachOnCreation() == false) {
+ // do nothing - wait til we attach and then we'll execute all requests
+ } else {
+ apnRequest.log("DcSwitchStateMachine processing due to autoAttach");
+ DctController.getInstance().executeRequest(apnRequest);
+ }
retVal = HANDLED;
break;
}
-
case EVENT_DATA_ALLOWED: {
AsyncResult ar = (AsyncResult)msg.obj;
if (mCurrentAllowedSequence != msg.arg1) {
@@ -253,6 +265,14 @@
if (DBG) {
log("AttachingState: REQ_DISCONNECT_ALL" );
}
+ final PhoneBase pb = (PhoneBase)((PhoneProxy)mPhone).getActivePhone();
+ if (pb.mDcTracker.getAutoAttachOnCreation()) {
+ // if AutoAttachOnCreation, then we may have executed requests
+ // without ever actually getting to Attached, so release the request
+ // here in that case.
+ if (DBG) log("releasingAll due to autoAttach");
+ DctController.getInstance().releaseAllRequests(mId);
+ }
// modem gets unhappy if we try to detach while attaching
// wait til attach finishes.
diff --git a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
index 8d02de9..0a453b0 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
@@ -695,7 +695,7 @@
notifyOffApnsOfAvailability(Phone.REASON_DATA_ATTACHED);
}
if (mAutoAttachOnCreationConfig) {
- mAutoAttachOnCreation = true;
+ mAutoAttachOnCreation.set(true);
}
setupDataOnConnectableApns(Phone.REASON_DATA_ATTACHED);
}
@@ -742,7 +742,7 @@
state = mPhone.getCallTracker().getState();
}
boolean allowed =
- (attachedState || mAutoAttachOnCreation) &&
+ (attachedState || mAutoAttachOnCreation.get()) &&
recordsLoaded &&
(state == PhoneConstants.State.IDLE ||
mPhone.getServiceStateTracker().isConcurrentVoiceAndDataAllowed()) &&
@@ -754,7 +754,7 @@
desiredPowerState;
if (!allowed && DBG) {
String reason = "";
- if (!(attachedState || mAutoAttachOnCreation)) {
+ if (!(attachedState || mAutoAttachOnCreation.get())) {
reason += " - Attached= " + attachedState;
}
if (!recordsLoaded) reason += " - SIM not loaded";
@@ -1313,8 +1313,8 @@
Message msg = obtainMessage();
msg.what = DctConstants.EVENT_DATA_SETUP_COMPLETE;
msg.obj = apnContext;
- dcac.bringUp(apnContext, getInitialMaxRetry(), profileId, radioTech, mAutoAttachOnCreation,
- msg);
+ dcac.bringUp(apnContext, getInitialMaxRetry(), profileId, radioTech,
+ mAutoAttachOnCreation.get(), msg);
if (DBG) log("setupData: initing!");
return true;
diff --git a/src/java/com/android/internal/telephony/dataconnection/DcTrackerBase.java b/src/java/com/android/internal/telephony/dataconnection/DcTrackerBase.java
index 8d1323a..5c0226e 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DcTrackerBase.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DcTrackerBase.java
@@ -71,6 +71,7 @@
import java.util.Map.Entry;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
import java.util.PriorityQueue;
@@ -235,7 +236,7 @@
// When false we will not auto attach and manually attaching is required.
protected boolean mAutoAttachOnCreationConfig = false;
- protected boolean mAutoAttachOnCreation = false;
+ protected AtomicBoolean mAutoAttachOnCreation = new AtomicBoolean(false);
// State of screen
// (TODO: Reconsider tying directly to screen, maybe this is
@@ -617,7 +618,7 @@
}
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(mPhone.getContext());
- mAutoAttachOnCreation = sp.getBoolean(PhoneBase.DATA_DISABLED_ON_BOOT_KEY, false);
+ mAutoAttachOnCreation.set(sp.getBoolean(PhoneBase.DATA_DISABLED_ON_BOOT_KEY, false));
mSubscriptionManager = SubscriptionManager.from(mPhone.getContext());
mSubscriptionManager
@@ -1914,6 +1915,10 @@
sendMessage(msg);
}
+ public boolean getAutoAttachOnCreation() {
+ return mAutoAttachOnCreation.get();
+ }
+
public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
pw.println("DcTrackerBase:");
pw.println(" RADIO_TESTS=" + RADIO_TESTS);
@@ -1943,7 +1948,7 @@
pw.println(" mIsWifiConnected=" + mIsWifiConnected);
pw.println(" mReconnectIntent=" + mReconnectIntent);
pw.println(" mCidActive=" + mCidActive);
- pw.println(" mAutoAttachOnCreation=" + mAutoAttachOnCreation);
+ pw.println(" mAutoAttachOnCreation=" + mAutoAttachOnCreation.get());
pw.println(" mIsScreenOn=" + mIsScreenOn);
pw.println(" mUniqueIdGenerator=" + mUniqueIdGenerator);
pw.flush();
diff --git a/src/java/com/android/internal/telephony/uicc/IccRecords.java b/src/java/com/android/internal/telephony/uicc/IccRecords.java
index 4049d4b..d91c4e7 100644
--- a/src/java/com/android/internal/telephony/uicc/IccRecords.java
+++ b/src/java/com/android/internal/telephony/uicc/IccRecords.java
@@ -25,6 +25,8 @@
import android.telephony.Rlog;
import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+
import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.uicc.IccCardApplicationStatus.AppState;
@@ -713,7 +715,11 @@
pw.println(" mRecordsToLoad=" + mRecordsToLoad);
pw.println(" mRdnCache=" + mAdnCache);
pw.println(" iccid=" + mIccId);
- pw.println(" mMsisdn=" + mMsisdn);
+ if (TextUtils.isEmpty(mMsisdn)) {
+ pw.println(" mMsisdn=null");
+ } else {
+ pw.println(" mMsisdn=" + (VDBG ? mMsisdn : "XXX"));
+ }
pw.println(" mMsisdnTag=" + mMsisdnTag);
pw.println(" mVoiceMailNum=" + mVoiceMailNum);
pw.println(" mVoiceMailTag=" + mVoiceMailTag);