Merge "Update TelephonySubscriptionTracker to use new CPCallback interface" am: f146ee5a1b

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2037586

Change-Id: I7150a2bf374e0e655c362cb63de0ad88d26ef939
This commit is contained in:
Rambo Wang
2022-03-23 19:55:57 +00:00
committed by Automerger Merge Worker
2 changed files with 40 additions and 40 deletions

View File

@@ -39,7 +39,7 @@ import android.telephony.SubscriptionManager;
import android.telephony.SubscriptionManager.OnSubscriptionsChangedListener;
import android.telephony.TelephonyCallback;
import android.telephony.TelephonyManager;
import android.telephony.TelephonyManager.CarrierPrivilegesListener;
import android.telephony.TelephonyManager.CarrierPrivilegesCallback;
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.Slog;
@@ -98,8 +98,7 @@ public class TelephonySubscriptionTracker extends BroadcastReceiver {
@NonNull private final OnSubscriptionsChangedListener mSubscriptionChangedListener;
@NonNull
private final List<CarrierPrivilegesListener> mCarrierPrivilegesChangedListeners =
new ArrayList<>();
private final List<CarrierPrivilegesCallback> mCarrierPrivilegesCallbacks = new ArrayList<>();
@NonNull private TelephonySubscriptionSnapshot mCurrentSnapshot;
@@ -151,20 +150,21 @@ public class TelephonySubscriptionTracker extends BroadcastReceiver {
executor, mSubscriptionChangedListener);
mTelephonyManager.registerTelephonyCallback(executor, mActiveDataSubIdListener);
registerCarrierPrivilegesListeners();
registerCarrierPrivilegesCallbacks();
}
private void registerCarrierPrivilegesListeners() {
// TODO(b/221306368): Refactor with the new onCarrierServiceChange in the new CPCallback
private void registerCarrierPrivilegesCallbacks() {
final HandlerExecutor executor = new HandlerExecutor(mHandler);
final int modemCount = mTelephonyManager.getActiveModemCount();
try {
for (int i = 0; i < modemCount; i++) {
CarrierPrivilegesListener carrierPrivilegesListener =
new CarrierPrivilegesListener() {
CarrierPrivilegesCallback carrierPrivilegesCallback =
new CarrierPrivilegesCallback() {
@Override
public void onCarrierPrivilegesChanged(
@NonNull List<String> privilegedPackageNames,
@NonNull int[] privilegedUids) {
@NonNull Set<String> privilegedPackageNames,
@NonNull Set<Integer> privilegedUids) {
// Re-trigger the synchronous check (which is also very cheap due
// to caching in CarrierPrivilegesTracker). This allows consistency
// with the onSubscriptionsChangedListener and broadcasts.
@@ -172,9 +172,9 @@ public class TelephonySubscriptionTracker extends BroadcastReceiver {
}
};
mTelephonyManager.addCarrierPrivilegesListener(
i, executor, carrierPrivilegesListener);
mCarrierPrivilegesChangedListeners.add(carrierPrivilegesListener);
mTelephonyManager.registerCarrierPrivilegesCallback(
i, executor, carrierPrivilegesCallback);
mCarrierPrivilegesCallbacks.add(carrierPrivilegesCallback);
}
} catch (IllegalArgumentException e) {
Slog.wtf(TAG, "Encounted exception registering carrier privileges listeners", e);
@@ -191,15 +191,15 @@ public class TelephonySubscriptionTracker extends BroadcastReceiver {
mSubscriptionManager.removeOnSubscriptionsChangedListener(mSubscriptionChangedListener);
mTelephonyManager.unregisterTelephonyCallback(mActiveDataSubIdListener);
unregisterCarrierPrivilegesListeners();
unregisterCarrierPrivilegesCallbacks();
}
private void unregisterCarrierPrivilegesListeners() {
for (CarrierPrivilegesListener carrierPrivilegesListener :
mCarrierPrivilegesChangedListeners) {
mTelephonyManager.removeCarrierPrivilegesListener(carrierPrivilegesListener);
private void unregisterCarrierPrivilegesCallbacks() {
for (CarrierPrivilegesCallback carrierPrivilegesCallback :
mCarrierPrivilegesCallbacks) {
mTelephonyManager.unregisterCarrierPrivilegesCallback(carrierPrivilegesCallback);
}
mCarrierPrivilegesChangedListeners.clear();
mCarrierPrivilegesCallbacks.clear();
}
/**
@@ -283,7 +283,7 @@ public class TelephonySubscriptionTracker extends BroadcastReceiver {
}
private void handleActionMultiSimConfigChanged(Context context, Intent intent) {
unregisterCarrierPrivilegesListeners();
unregisterCarrierPrivilegesCallbacks();
// Clear invalid slotIds from the mReadySubIdsBySlotId map.
final int modemCount = mTelephonyManager.getActiveModemCount();
@@ -296,7 +296,7 @@ public class TelephonySubscriptionTracker extends BroadcastReceiver {
}
}
registerCarrierPrivilegesListeners();
registerCarrierPrivilegesCallbacks();
handleSubscriptionsChanged();
}

View File

@@ -60,7 +60,7 @@ import android.telephony.SubscriptionManager;
import android.telephony.SubscriptionManager.OnSubscriptionsChangedListener;
import android.telephony.TelephonyCallback;
import android.telephony.TelephonyManager;
import android.telephony.TelephonyManager.CarrierPrivilegesListener;
import android.telephony.TelephonyManager.CarrierPrivilegesCallback;
import android.util.ArrayMap;
import android.util.ArraySet;
@@ -187,11 +187,11 @@ public class TelephonySubscriptionTrackerTest {
return captor.getValue();
}
private List<CarrierPrivilegesListener> getCarrierPrivilegesListeners() {
final ArgumentCaptor<CarrierPrivilegesListener> captor =
ArgumentCaptor.forClass(CarrierPrivilegesListener.class);
private List<CarrierPrivilegesCallback> getCarrierPrivilegesCallbacks() {
final ArgumentCaptor<CarrierPrivilegesCallback> captor =
ArgumentCaptor.forClass(CarrierPrivilegesCallback.class);
verify(mTelephonyManager, atLeastOnce())
.addCarrierPrivilegesListener(anyInt(), any(), captor.capture());
.registerCarrierPrivilegesCallback(anyInt(), any(), captor.capture());
return captor.getAllValues();
}
@@ -270,12 +270,12 @@ public class TelephonySubscriptionTrackerTest {
assertNotNull(getOnSubscriptionsChangedListener());
verify(mTelephonyManager, times(2))
.addCarrierPrivilegesListener(anyInt(), any(HandlerExecutor.class), any());
.registerCarrierPrivilegesCallback(anyInt(), any(HandlerExecutor.class), any());
verify(mTelephonyManager)
.addCarrierPrivilegesListener(eq(0), any(HandlerExecutor.class), any());
.registerCarrierPrivilegesCallback(eq(0), any(HandlerExecutor.class), any());
verify(mTelephonyManager)
.addCarrierPrivilegesListener(eq(1), any(HandlerExecutor.class), any());
assertEquals(2, getCarrierPrivilegesListeners().size());
.registerCarrierPrivilegesCallback(eq(1), any(HandlerExecutor.class), any());
assertEquals(2, getCarrierPrivilegesCallbacks().size());
}
@Test
@@ -287,10 +287,10 @@ public class TelephonySubscriptionTrackerTest {
final OnSubscriptionsChangedListener listener = getOnSubscriptionsChangedListener();
verify(mSubscriptionManager).removeOnSubscriptionsChangedListener(eq(listener));
for (CarrierPrivilegesListener carrierPrivilegesListener :
getCarrierPrivilegesListeners()) {
for (CarrierPrivilegesCallback carrierPrivilegesCallback :
getCarrierPrivilegesCallbacks()) {
verify(mTelephonyManager)
.removeCarrierPrivilegesListener(eq(carrierPrivilegesListener));
.unregisterCarrierPrivilegesCallback(eq(carrierPrivilegesCallback));
}
}
@@ -303,15 +303,15 @@ public class TelephonySubscriptionTrackerTest {
mTelephonySubscriptionTracker.setReadySubIdsBySlotId(readySubIdsBySlotId);
doReturn(1).when(mTelephonyManager).getActiveModemCount();
List<CarrierPrivilegesListener> carrierPrivilegesListeners =
getCarrierPrivilegesListeners();
List<CarrierPrivilegesCallback> carrierPrivilegesCallbacks =
getCarrierPrivilegesCallbacks();
mTelephonySubscriptionTracker.onReceive(mContext, buildTestMultiSimConfigBroadcastIntent());
mTestLooper.dispatchAll();
for (CarrierPrivilegesListener carrierPrivilegesListener : carrierPrivilegesListeners) {
for (CarrierPrivilegesCallback carrierPrivilegesCallback : carrierPrivilegesCallbacks) {
verify(mTelephonyManager)
.removeCarrierPrivilegesListener(eq(carrierPrivilegesListener));
.unregisterCarrierPrivilegesCallback(eq(carrierPrivilegesCallback));
}
// Expect cache cleared for inactive slots.
@@ -323,9 +323,9 @@ public class TelephonySubscriptionTrackerTest {
// Expect a new CarrierPrivilegesListener to have been registered for slot 0, and none other
// (2 previously registered during startup, for slots 0 & 1)
verify(mTelephonyManager, times(3))
.addCarrierPrivilegesListener(anyInt(), any(HandlerExecutor.class), any());
.registerCarrierPrivilegesCallback(anyInt(), any(HandlerExecutor.class), any());
verify(mTelephonyManager, times(2))
.addCarrierPrivilegesListener(eq(0), any(HandlerExecutor.class), any());
.registerCarrierPrivilegesCallback(eq(0), any(HandlerExecutor.class), any());
// Verify that this triggers a re-evaluation
verify(mCallback).onNewSnapshot(eq(buildExpectedSnapshot(TEST_PRIVILEGED_PACKAGES)));
@@ -391,8 +391,8 @@ public class TelephonySubscriptionTrackerTest {
public void testOnCarrierPrivilegesChanged() throws Exception {
setupReadySubIds();
final CarrierPrivilegesListener listener = getCarrierPrivilegesListeners().get(0);
listener.onCarrierPrivilegesChanged(Collections.emptyList(), new int[] {});
final CarrierPrivilegesCallback callback = getCarrierPrivilegesCallbacks().get(0);
callback.onCarrierPrivilegesChanged(Collections.emptySet(), Collections.emptySet());
mTestLooper.dispatchAll();
verify(mCallback).onNewSnapshot(eq(buildExpectedSnapshot(TEST_PRIVILEGED_PACKAGES)));