Merge "Add more data stall recovery info"
diff --git a/src/java/com/android/internal/telephony/GsmCdmaPhone.java b/src/java/com/android/internal/telephony/GsmCdmaPhone.java
index 1e41b38..8fdd16b 100644
--- a/src/java/com/android/internal/telephony/GsmCdmaPhone.java
+++ b/src/java/com/android/internal/telephony/GsmCdmaPhone.java
@@ -44,6 +44,7 @@
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
+import android.os.Looper;
import android.os.Message;
import android.os.PersistableBundle;
import android.os.PowerManager;
@@ -265,6 +266,7 @@
private final SettingsObserver mSettingsObserver;
private final ImsManagerFactory mImsManagerFactory;
+ private final CarrierPrivilegesTracker mCarrierPrivilegesTracker;
// Constructors
@@ -329,6 +331,7 @@
mCarrierResolver = mTelephonyComponentFactory.inject(CarrierResolver.class.getName())
.makeCarrierResolver(this);
+ mCarrierPrivilegesTracker = new CarrierPrivilegesTracker(Looper.myLooper(), this, context);
getCarrierActionAgent().registerForCarrierAction(
CarrierActionAgent.CARRIER_ACTION_SET_METERED_APNS_ENABLED, this,
@@ -1051,6 +1054,11 @@
return mCT.mRingingCall;
}
+ @Override
+ public CarrierPrivilegesTracker getCarrierPrivilegesTracker() {
+ return mCarrierPrivilegesTracker;
+ }
+
/**
* ImsService reports "IN_SERVICE" for its voice registration state even if the device
* has lost the physical link to the tower. This helper method merges the IMS and modem
diff --git a/src/java/com/android/internal/telephony/Phone.java b/src/java/com/android/internal/telephony/Phone.java
index 8fea92f..9e07362 100644
--- a/src/java/com/android/internal/telephony/Phone.java
+++ b/src/java/com/android/internal/telephony/Phone.java
@@ -453,7 +453,6 @@
protected boolean mIsCarrierNrSupported = false;
private boolean mUnitTestMode;
- private CarrierPrivilegesTracker mCarrierPrivilegesTracker = null;
protected VoiceCallSessionStats mVoiceCallSessionStats;
protected SmsStats mSmsStats;
@@ -614,7 +613,6 @@
mSimActivationTracker = mTelephonyComponentFactory
.inject(SimActivationTracker.class.getName())
.makeSimActivationTracker(this);
- mCarrierPrivilegesTracker = new CarrierPrivilegesTracker(mLooper, this, mContext);
if (getPhoneType() != PhoneConstants.PHONE_TYPE_SIP) {
mCi.registerForSrvccStateChanged(this, EVENT_SRVCC_STATE_CHANGED, null);
}
@@ -4718,7 +4716,7 @@
/** @hide */
public CarrierPrivilegesTracker getCarrierPrivilegesTracker() {
- return mCarrierPrivilegesTracker;
+ return null;
}
public boolean useSsOverIms(Message onComplete) {
diff --git a/src/java/com/android/internal/telephony/ServiceStateTracker.java b/src/java/com/android/internal/telephony/ServiceStateTracker.java
index d036721..241d510 100755
--- a/src/java/com/android/internal/telephony/ServiceStateTracker.java
+++ b/src/java/com/android/internal/telephony/ServiceStateTracker.java
@@ -581,19 +581,17 @@
private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
- if (intent.getAction().equals(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED)) {
+ final String action = intent.getAction();
+ if (action.equals(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED)) {
int phoneId = intent.getExtras().getInt(CarrierConfigManager.EXTRA_SLOT_INDEX);
// Ignore the carrier config changed if the phoneId is not matched.
if (phoneId == mPhone.getPhoneId()) {
sendEmptyMessage(EVENT_CARRIER_CONFIG_CHANGED);
}
- return;
- }
-
- if (intent.getAction().equals(Intent.ACTION_LOCALE_CHANGED)) {
+ } else if (action.equals(Intent.ACTION_LOCALE_CHANGED)) {
// Update emergency string or operator name, polling service state.
pollState();
- } else if (intent.getAction().equals(TelephonyManager.ACTION_NETWORK_COUNTRY_CHANGED)) {
+ } else if (action.equals(TelephonyManager.ACTION_NETWORK_COUNTRY_CHANGED)) {
String lastKnownNetworkCountry = intent.getStringExtra(
TelephonyManager.EXTRA_LAST_KNOWN_NETWORK_COUNTRY);
if (!mLastKnownNetworkCountry.equals(lastKnownNetworkCountry)) {
diff --git a/src/java/com/android/internal/telephony/dataconnection/DataConnection.java b/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
index 8af800c..0551086 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
@@ -79,6 +79,7 @@
import android.util.TimeUtils;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.telephony.CarrierPrivilegesTracker;
import com.android.internal.telephony.CarrierSignalAgent;
import com.android.internal.telephony.DctConstants;
import com.android.internal.telephony.Phone;
@@ -2575,9 +2576,11 @@
// this connection are going away.
mRestrictedNetworkOverride = shouldRestrictNetwork();
- mPhone.getCarrierPrivilegesTracker()
- .registerCarrierPrivilegesListener(
+ CarrierPrivilegesTracker carrierPrivTracker = mPhone.getCarrierPrivilegesTracker();
+ if (carrierPrivTracker != null) {
+ carrierPrivTracker.registerCarrierPrivilegesListener(
getHandler(), EVENT_CARRIER_PRIVILEGED_UIDS_CHANGED, null);
+ }
notifyDataConnectionState();
mDataCallSessionStats.onSetupDataCall(apnTypeBitmask);
}
@@ -2920,7 +2923,10 @@
mVcnManager.removeVcnNetworkPolicyChangeListener(mVcnPolicyChangeListener);
- mPhone.getCarrierPrivilegesTracker().unregisterCarrierPrivilegesListener(getHandler());
+ CarrierPrivilegesTracker carrierPrivTracker = mPhone.getCarrierPrivilegesTracker();
+ if (carrierPrivTracker != null) {
+ carrierPrivTracker.unregisterCarrierPrivilegesListener(getHandler());
+ }
}
@Override
diff --git a/src/java/com/android/internal/telephony/imsphone/ImsPhone.java b/src/java/com/android/internal/telephony/imsphone/ImsPhone.java
index be4cbae..209646d 100644
--- a/src/java/com/android/internal/telephony/imsphone/ImsPhone.java
+++ b/src/java/com/android/internal/telephony/imsphone/ImsPhone.java
@@ -95,6 +95,7 @@
import com.android.internal.telephony.CallForwardInfo;
import com.android.internal.telephony.CallStateException;
import com.android.internal.telephony.CallTracker;
+import com.android.internal.telephony.CarrierPrivilegesTracker;
import com.android.internal.telephony.CommandException;
import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.Connection;
@@ -627,6 +628,11 @@
return mCT.isImsServiceReady();
}
+ @Override
+ public CarrierPrivilegesTracker getCarrierPrivilegesTracker() {
+ return mDefaultPhone.getCarrierPrivilegesTracker();
+ }
+
/**
* Hold the currently active call, possibly unholding a currently held call.
* @throws CallStateException