Merge "Bind qualified network serice without waiting carrier config loaded"
diff --git a/src/java/com/android/internal/telephony/IccProvider.java b/src/java/com/android/internal/telephony/IccProvider.java
index 76af170..0c0044d 100644
--- a/src/java/com/android/internal/telephony/IccProvider.java
+++ b/src/java/com/android/internal/telephony/IccProvider.java
@@ -17,24 +17,24 @@
package com.android.internal.telephony;
import android.content.ContentProvider;
-import android.content.UriMatcher;
import android.content.ContentValues;
+import android.content.UriMatcher;
import android.database.Cursor;
-import android.database.MergeCursor;
import android.database.MatrixCursor;
+import android.database.MergeCursor;
import android.net.Uri;
import android.os.RemoteException;
import android.os.ServiceManager;
+import android.telephony.Rlog;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.text.TextUtils;
-import android.telephony.Rlog;
-
-import java.util.List;
import com.android.internal.telephony.uicc.AdnRecord;
import com.android.internal.telephony.uicc.IccConstants;
+import java.util.List;
+
/**
* {@hide}
@@ -121,7 +121,8 @@
private Cursor loadAllSimContacts(int efType) {
Cursor [] result;
- List<SubscriptionInfo> subInfoList = mSubscriptionManager.getActiveSubscriptionInfoList();
+ List<SubscriptionInfo> subInfoList = mSubscriptionManager
+ .getActiveSubscriptionInfoList(false);
if ((subInfoList == null) || (subInfoList.size() == 0)) {
result = new Cursor[0];
diff --git a/src/java/com/android/internal/telephony/PhoneFactory.java b/src/java/com/android/internal/telephony/PhoneFactory.java
index 043de1c..065b201 100644
--- a/src/java/com/android/internal/telephony/PhoneFactory.java
+++ b/src/java/com/android/internal/telephony/PhoneFactory.java
@@ -27,7 +27,7 @@
import android.preference.PreferenceManager;
import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException;
-import android.telephony.DebugEventReporter;
+import android.telephony.AnomalyReporter;
import android.telephony.Rlog;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
@@ -556,7 +556,7 @@
pw.println("DebugEvents:");
pw.increaseIndent();
try {
- DebugEventReporter.dump(fd, pw, args);
+ AnomalyReporter.dump(fd, pw, args);
} catch (Exception e) {
e.printStackTrace();
}
diff --git a/src/java/com/android/internal/telephony/PhoneSwitcher.java b/src/java/com/android/internal/telephony/PhoneSwitcher.java
index d455cb4..c3fba00 100644
--- a/src/java/com/android/internal/telephony/PhoneSwitcher.java
+++ b/src/java/com/android/internal/telephony/PhoneSwitcher.java
@@ -905,6 +905,10 @@
return mPreferredDataSubId;
}
+ public int getPreferredDataPhoneId() {
+ return mPreferredDataPhoneId;
+ }
+
private void log(String l) {
Rlog.d(LOG_TAG, l);
mLocalLog.log(l);
diff --git a/src/java/com/android/internal/telephony/ServiceStateTracker.java b/src/java/com/android/internal/telephony/ServiceStateTracker.java
old mode 100644
new mode 100755
index fd0b011..562d2d7
--- a/src/java/com/android/internal/telephony/ServiceStateTracker.java
+++ b/src/java/com/android/internal/telephony/ServiceStateTracker.java
@@ -422,6 +422,7 @@
public static final int CS_NORMAL_ENABLED = 1005; // Access Control blocks normal voice/sms service
public static final int CS_EMERGENCY_ENABLED = 1006; // Access Control blocks emergency call service
public static final int CS_REJECT_CAUSE_ENABLED = 2001; // Notify MM rejection cause
+ public static final int CS_REJECT_CAUSE_DISABLED = 2002; // Cancel MM rejection cause
/** Notification id. */
public static final int PS_NOTIFICATION = 888; // Id to update and cancel PS restricted
public static final int CS_NOTIFICATION = 999; // Id to update and cancel CS restricted
@@ -3873,6 +3874,8 @@
Context context = mPhone.getContext();
+ boolean autoCancelCsRejectNotification = false;
+
CarrierConfigManager configManager = (CarrierConfigManager)
context.getSystemService(Context.CARRIER_CONFIG_SERVICE);
if (configManager != null) {
@@ -3886,6 +3889,8 @@
if (DBG) log("Voice/emergency call barred notification disabled");
return;
}
+ autoCancelCsRejectNotification = bundle.getBoolean(
+ CarrierConfigManager.KEY_AUTO_CANCEL_CS_REJECT_NOTIFICATION, false);
}
}
@@ -3946,8 +3951,12 @@
notificationId = CS_REJECT_CAUSE_NOTIFICATION;
int resId = selectResourceForRejectCode(mRejectCode, multipleSubscriptions);
if (0 == resId) {
- loge("setNotification: mRejectCode=" + mRejectCode + " is not handled.");
- return;
+ if (autoCancelCsRejectNotification) {
+ notifyType = CS_REJECT_CAUSE_DISABLED;
+ } else {
+ loge("setNotification: mRejectCode=" + mRejectCode + " is not handled.");
+ return;
+ }
} else {
icon = com.android.internal.R.drawable.stat_notify_mmcc_indication_icn;
// if using the single SIM resource, simNumber will be ignored
@@ -3978,7 +3987,8 @@
NotificationManager notificationManager = (NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE);
- if (notifyType == PS_DISABLED || notifyType == CS_DISABLED) {
+ if (notifyType == PS_DISABLED || notifyType == CS_DISABLED
+ || notifyType == CS_REJECT_CAUSE_DISABLED) {
// cancel previous post notification
notificationManager.cancel(Integer.toString(mSubId), notificationId);
} else {
diff --git a/src/java/com/android/internal/telephony/SubscriptionController.java b/src/java/com/android/internal/telephony/SubscriptionController.java
index 858331e..f8b58ff 100644
--- a/src/java/com/android/internal/telephony/SubscriptionController.java
+++ b/src/java/com/android/internal/telephony/SubscriptionController.java
@@ -2268,12 +2268,30 @@
return allSubs;
}
+ private boolean isInvisibleSubscription(int subId) {
+ for (SubscriptionInfo info : mCacheOpportunisticSubInfoList) {
+ if (info.getSubscriptionId() == subId) {
+ return SubscriptionManager.isInvisibleSubscription(info);
+ }
+ }
+
+ return false;
+ }
+
+
/**
* @return the list of subId's that are active, is never null but the length maybe 0.
*/
@Override
- public int[] getActiveSubIdList() {
- ArrayList<Integer> allSubs = getActiveSubIdArrayList();
+ public int[] getActiveSubIdList(boolean visibleOnly) {
+ List<Integer> allSubs = getActiveSubIdArrayList();
+
+ if (visibleOnly) {
+ // Grouped opportunistic subscriptions should be hidden.
+ allSubs = allSubs.stream().filter(subId -> isInvisibleSubscription(subId))
+ .collect(Collectors.toList());
+ }
+
int[] subIdArr = new int[allSubs.size()];
int i = 0;
for (int sub : allSubs) {
diff --git a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
index da6922b..e900617 100755
--- a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
@@ -17,6 +17,9 @@
package com.android.internal.telephony.dataconnection;
import static android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE;
+import static android.telephony.TelephonyManager.NETWORK_TYPE_LTE;
+import static android.telephony.TelephonyManager.NETWORK_TYPE_LTE_CA;
+import static android.telephony.TelephonyManager.NETWORK_TYPE_NR;
import static com.android.internal.telephony.RILConstants.DATA_PROFILE_DEFAULT;
import static com.android.internal.telephony.RILConstants.DATA_PROFILE_INVALID;
@@ -93,6 +96,7 @@
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneConstants;
import com.android.internal.telephony.PhoneFactory;
+import com.android.internal.telephony.PhoneSwitcher;
import com.android.internal.telephony.RILConstants;
import com.android.internal.telephony.SettingsObserver;
import com.android.internal.telephony.TelephonyIntents;
@@ -579,7 +583,7 @@
// When false we will not auto attach and manually attaching is required.
private boolean mAutoAttachOnCreationConfig = false;
- private AtomicBoolean mAutoAttachOnCreation = new AtomicBoolean(false);
+ private AtomicBoolean mAutoAttachEnabled = new AtomicBoolean(false);
// State of screen
// (TODO: Reconsider tying directly to screen, maybe this is
@@ -703,7 +707,7 @@
mPhone.getContext().registerReceiver(mIntentReceiver, filter, null, mPhone);
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(mPhone.getContext());
- mAutoAttachOnCreation.set(sp.getBoolean(Phone.DATA_DISABLED_ON_BOOT_KEY, false));
+ mAutoAttachEnabled.set(sp.getBoolean(Phone.DATA_DISABLED_ON_BOOT_KEY, false));
mSubscriptionManager = SubscriptionManager.from(mPhone.getContext());
mSubscriptionManager.addOnSubscriptionsChangedListener(mOnSubscriptionsChangedListener);
@@ -1201,7 +1205,7 @@
mPhone.notifyDataConnection();
}
if (mAutoAttachOnCreationConfig) {
- mAutoAttachOnCreation.set(true);
+ mAutoAttachEnabled.set(true);
}
setupDataOnConnectableApns(Phone.REASON_DATA_ATTACHED, RetryFailures.ALWAYS);
}
@@ -1300,7 +1304,7 @@
reasons.add(DataDisallowedReasonType.IN_ECBM);
}
- if (!(attachedState || mAutoAttachOnCreation.get())) {
+ if (!(attachedState || mAutoAttachEnabled.get())) {
reasons.add(DataDisallowedReasonType.NOT_ATTACHED);
}
if (!recordsLoaded) {
@@ -2175,8 +2179,8 @@
}
}
- public boolean getAutoAttachOnCreation() {
- return mAutoAttachOnCreation.get();
+ public boolean getAutoAttachEnabled() {
+ return mAutoAttachEnabled.get();
}
private void onRecordsLoadedOrSubIdChanged() {
@@ -2198,7 +2202,7 @@
mAllApnSettings.clear();
mAutoAttachOnCreationConfig = false;
// Clear auto attach as modem is expected to do a new attach once SIM is ready
- mAutoAttachOnCreation.set(false);
+ mAutoAttachEnabled.set(false);
mOnSubscriptionsChangedListener.mPreviousSubId.set(
SubscriptionManager.INVALID_SUBSCRIPTION_ID);
// In no-sim case, we should still send the emergency APN to the modem, if there is any.
@@ -2660,7 +2664,7 @@
mReregisterOnReconnectFailure = false;
// Clear auto attach as modem is expected to do a new attach
- mAutoAttachOnCreation.set(false);
+ mAutoAttachEnabled.set(false);
if (mPhone.getSimulatedRadioControl() != null) {
// Assume data is connected on the simulator
@@ -3869,11 +3873,34 @@
log("update(): Active DDS, register for all events now!");
onUpdateIcc();
- mAutoAttachOnCreation.set(false);
+ updateAutoAttachOnCreation();
mPhone.updateCurrentCarrierInProvider();
}
+ /**
+ * For non DDS phone, mAutoAttachEnabled should be true because it may be detached
+ * automatically from network only because it's idle for too long. In this case, we should
+ * try setting up data call even if it's not attached for 2G or 3G networks. And doing so will
+ * trigger PS attach if possible.
+ */
+ public void updateAutoAttachOnCreation() {
+ PhoneSwitcher phoneSwitcher = PhoneSwitcher.getInstance();
+ ServiceState serviceState = mPhone.getServiceState();
+ if (PhoneSwitcher.getInstance() == null || serviceState == null) {
+ mAutoAttachEnabled.set(false);
+ return;
+ }
+
+ // If it's non DDS phone, and voice is registered on 2G or 3G network, we set
+ // mAutoAttachEnabled to true.
+ mAutoAttachEnabled.set(mPhone.getPhoneId() != phoneSwitcher.getPreferredDataPhoneId()
+ && serviceState.getVoiceRegState() == ServiceState.STATE_IN_SERVICE
+ && serviceState.getVoiceNetworkType() != NETWORK_TYPE_LTE
+ && serviceState.getVoiceNetworkType() != NETWORK_TYPE_LTE_CA
+ && serviceState.getVoiceNetworkType() != NETWORK_TYPE_NR);
+ }
+
private void notifyAllDataDisconnected() {
sEnableFailFastRefCounter = 0;
mFailFast = false;
@@ -3954,7 +3981,7 @@
pw.println(" mNoRecvPollCount=" + mNoRecvPollCount);
pw.println(" mResolver=" + mResolver);
pw.println(" mReconnectIntent=" + mReconnectIntent);
- pw.println(" mAutoAttachOnCreation=" + mAutoAttachOnCreation.get());
+ pw.println(" mAutoAttachEnabled=" + mAutoAttachEnabled.get());
pw.println(" mIsScreenOn=" + mIsScreenOn);
pw.println(" mUniqueIdGenerator=" + mUniqueIdGenerator);
pw.println(" mDataServiceBound=" + mDataServiceBound);
diff --git a/src/java/com/android/internal/telephony/dataconnection/TelephonyNetworkFactory.java b/src/java/com/android/internal/telephony/dataconnection/TelephonyNetworkFactory.java
index 1dbfe1a..888c16a 100644
--- a/src/java/com/android/internal/telephony/dataconnection/TelephonyNetworkFactory.java
+++ b/src/java/com/android/internal/telephony/dataconnection/TelephonyNetworkFactory.java
@@ -219,6 +219,12 @@
// apply or revoke requests if our active-ness changes
private void onActivePhoneSwitch() {
+ // For non DDS phone, mAutoAttachOnCreation should be true because it may be detached
+ // automatically from network only because it's idle for too long. In this case, we should
+ // try setting up data call even if it's not attached. And doing so will trigger PS attach
+ // if possible.
+ mPhone.getDcTracker(TransportType.WWAN).updateAutoAttachOnCreation();
+
for (HashMap.Entry<NetworkRequest, Integer> entry : mNetworkRequests.entrySet()) {
NetworkRequest networkRequest = entry.getKey();
boolean applied = entry.getValue() != TransportType.INVALID;
diff --git a/src/java/com/android/internal/telephony/euicc/EuiccController.java b/src/java/com/android/internal/telephony/euicc/EuiccController.java
index e35d11b..083f9ee 100644
--- a/src/java/com/android/internal/telephony/euicc/EuiccController.java
+++ b/src/java/com/android/internal/telephony/euicc/EuiccController.java
@@ -1163,7 +1163,8 @@
// Checks whether the caller can manage the active embedded subscription on the SIM with the
// given cardId.
private boolean canManageActiveSubscriptionOnTargetSim(int cardId, String callingPackage) {
- List<SubscriptionInfo> subInfoList = mSubscriptionManager.getActiveSubscriptionInfoList();
+ List<SubscriptionInfo> subInfoList = mSubscriptionManager
+ .getActiveSubscriptionInfoList(/* userVisibleonly */false);
if (subInfoList == null || subInfoList.size() == 0) {
// No active subscription on any SIM.
return false;
@@ -1190,7 +1191,8 @@
// For a single-active subscription phone, checks whether the caller can manage any active
// embedded subscription.
private boolean canManageSubscriptionOnTargetSim(int cardId, String callingPackage) {
- List<SubscriptionInfo> subInfoList = mSubscriptionManager.getActiveSubscriptionInfoList();
+ List<SubscriptionInfo> subInfoList = mSubscriptionManager
+ .getActiveSubscriptionInfoList(/* userVisibleonly */false);
// No active subscription on any SIM.
if (subInfoList == null || subInfoList.size() == 0) {
return false;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/SubscriptionControllerTest.java b/tests/telephonytests/src/com/android/internal/telephony/SubscriptionControllerTest.java
index 38ebf4e..0a683b0 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/SubscriptionControllerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/SubscriptionControllerTest.java
@@ -148,7 +148,7 @@
testInsertSim();
/* Get SUB ID */
- int[] subIds = mSubscriptionControllerUT.getActiveSubIdList();
+ int[] subIds = mSubscriptionControllerUT.getActiveSubIdList(/*visibleOnly*/false);
assertTrue(subIds != null && subIds.length != 0);
int subID = subIds[0];
@@ -189,7 +189,7 @@
testInsertSim();
/* Get SUB ID */
- int[] subIds = mSubscriptionControllerUT.getActiveSubIdList();
+ int[] subIds = mSubscriptionControllerUT.getActiveSubIdList(/*visibleOnly*/false);
assertTrue(subIds != null && subIds.length != 0);
int subID = subIds[0];
@@ -300,7 +300,7 @@
@SmallTest
public void testMigrateImsSettings() throws Exception {
testInsertSim();
- int[] subIds = mSubscriptionControllerUT.getActiveSubIdList();
+ int[] subIds = mSubscriptionControllerUT.getActiveSubIdList(/*visibleOnly*/false);
assertTrue(subIds != null && subIds.length != 0);
int subID = subIds[0];
@@ -554,7 +554,7 @@
/* insert some sims */
testInsertMultipleRemoteSims();
assertEquals(1, mSubscriptionControllerUT.getDefaultSubId());
- int[] subIdsArray = mSubscriptionControllerUT.getActiveSubIdList();
+ int[] subIdsArray = mSubscriptionControllerUT.getActiveSubIdList(/*visibleOnly*/false);
assertTrue(subIdsArray.length > 0);
int len = subIdsArray.length;
@@ -564,7 +564,7 @@
assertTrue(result > 0);
// now check the number of subs left. should be one less than earlier
- int[] newSubIdsArray = mSubscriptionControllerUT.getActiveSubIdList();
+ int[] newSubIdsArray = mSubscriptionControllerUT.getActiveSubIdList(/*visibleOnly*/false);
assertTrue(newSubIdsArray.length > 0);
assertEquals(len - 1, newSubIdsArray.length);
@@ -802,8 +802,8 @@
mSubscriptionControllerUT.addSubInfoRecord("123", 1); // sub 1
mSubscriptionControllerUT.addSubInfoRecord("456", 0); // sub 2
+ int[] subIds = mSubscriptionControllerUT.getActiveSubIdList(/*visibleOnly*/false);
// Make sure the return sub ids are sorted by slot index
- assertTrue("active sub ids = " + mSubscriptionControllerUT.getActiveSubIdList(),
- Arrays.equals(mSubscriptionControllerUT.getActiveSubIdList(), new int[]{2, 1}));
+ assertTrue("active sub ids = " + subIds, Arrays.equals(subIds, new int[]{2, 1}));
}
}
diff --git a/tests/telephonytests/src/com/android/internal/telephony/SubscriptionInfoUpdaterTest.java b/tests/telephonytests/src/com/android/internal/telephony/SubscriptionInfoUpdaterTest.java
index c804cd0..52a0cb1 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/SubscriptionInfoUpdaterTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/SubscriptionInfoUpdaterTest.java
@@ -151,7 +151,8 @@
((MockContentResolver) mContext.getContentResolver()).addProvider(
SubscriptionManager.CONTENT_URI.getAuthority(),
new FakeSubscriptionContentProvider());
- doReturn(new int[]{}).when(mSubscriptionController).getActiveSubIdList();
+ doReturn(new int[]{}).when(mSubscriptionController)
+ .getActiveSubIdList(/*visibleOnly*/false);
mIccRecord = mUiccProfile.getIccRecords();
mSubscriptionInfoUpdaterHandlerThread = new SubscriptionInfoUpdaterHandlerThread(TAG);
@@ -170,7 +171,8 @@
public void testSimAbsent() throws Exception {
doReturn(Arrays.asList(mSubInfo)).when(mSubscriptionController)
.getSubInfoUsingSlotIndexPrivileged(eq(FAKE_SUB_ID_1), anyBoolean());
- doReturn(new int[]{FAKE_SUB_ID_1}).when(mSubscriptionController).getActiveSubIdList();
+ doReturn(new int[]{FAKE_SUB_ID_1}).when(mSubscriptionController)
+ .getActiveSubIdList(/*visibleOnly*/false);
mUpdater.updateInternalIccState(
IccCardConstants.INTENT_VALUE_ICC_ABSENT, null, FAKE_SUB_ID_1);
diff --git a/tests/telephonytests/src/com/android/internal/telephony/dataconnection/DcTrackerTest.java b/tests/telephonytests/src/com/android/internal/telephony/dataconnection/DcTrackerTest.java
index 29fc9fa..e220d30 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/dataconnection/DcTrackerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/dataconnection/DcTrackerTest.java
@@ -878,10 +878,10 @@
verifyDataConnected(FAKE_APN1);
- assertTrue(mDct.getAutoAttachOnCreation());
+ assertTrue(mDct.getAutoAttachEnabled());
mDct.update();
// The auto attach flag should be reset after update
- assertFalse(mDct.getAutoAttachOnCreation());
+ assertFalse(mDct.getAutoAttachEnabled());
verify(mSST, times(1)).registerForDataConnectionDetached(eq(TransportType.WWAN), eq(mDct),
intArgumentCaptor.capture(), eq(null));
diff --git a/tests/telephonytests/src/com/android/internal/telephony/euicc/EuiccControllerTest.java b/tests/telephonytests/src/com/android/internal/telephony/euicc/EuiccControllerTest.java
index e14931c..a4b3b58 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/euicc/EuiccControllerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/euicc/EuiccControllerTest.java
@@ -983,7 +983,7 @@
false, "", false, false, 0, 0, 0);
when(mSubscriptionManager.canManageSubscription(subInfo, PACKAGE_NAME)).thenReturn(
hasPrivileges);
- when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
+ when(mSubscriptionManager.getActiveSubscriptionInfoList(anyBoolean())).thenReturn(
Collections.singletonList(subInfo));
}
@@ -1011,7 +1011,7 @@
when(mSubscriptionManager.canManageSubscription(subInfo2, PACKAGE_NAME)).thenReturn(
hasPrivileges);
ArrayList<SubscriptionInfo> subInfos = new ArrayList<>(Arrays.asList(subInfo1, subInfo2));
- when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(subInfos);
+ when(mSubscriptionManager.getActiveSubscriptionInfoList(anyBoolean())).thenReturn(subInfos);
}
private void prepareOperationSubscription(boolean hasPrivileges) throws Exception {
diff --git a/tests/telephonytests/src/com/android/internal/telephony/ims/MmTelFeatureConnectionTest.java b/tests/telephonytests/src/com/android/internal/telephony/ims/MmTelFeatureConnectionTest.java
index 0acb694..26afbe3 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/ims/MmTelFeatureConnectionTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/ims/MmTelFeatureConnectionTest.java
@@ -19,6 +19,7 @@
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
@@ -193,7 +194,7 @@
// Simulate subscriptions changed, where testSub1 is no longer active
doReturn(createSubscriptionInfoList(new int[] {testSub2, testSub3}))
- .when(mSubscriptionManager).getActiveSubscriptionInfoList();
+ .when(mSubscriptionManager).getActiveSubscriptionInfoList(anyBoolean());
mCallbackManagerUT.mSubChangedListener.onSubscriptionsChanged();
assertFalse(mCallbackManagerUT.doesCallbackExist(testCallback1));
// verify that the subscription changed listener is not removed, since we still have a
@@ -220,7 +221,7 @@
// Simulate subscriptions changed, where testSub1 is no longer active
doReturn(createSubscriptionInfoList(new int[] {testSub2}))
- .when(mSubscriptionManager).getActiveSubscriptionInfoList();
+ .when(mSubscriptionManager).getActiveSubscriptionInfoList(anyBoolean());
mCallbackManagerUT.mSubChangedListener.onSubscriptionsChanged();
assertFalse(mCallbackManagerUT.doesCallbackExist(testCallback1));
// verify that the subscription listener is removed, since the only active callback has been
diff --git a/tests/telephonytests/src/com/android/internal/telephony/mocks/SubscriptionControllerMock.java b/tests/telephonytests/src/com/android/internal/telephony/mocks/SubscriptionControllerMock.java
index 411ed1d..2007dca 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/mocks/SubscriptionControllerMock.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/mocks/SubscriptionControllerMock.java
@@ -259,7 +259,7 @@
throw new RuntimeException("not implemented");
}
@Override
- public int[] getActiveSubIdList() {
+ public int[] getActiveSubIdList(boolean visibleOnly) {
throw new RuntimeException("not implemented");
}
@Override