Use carrier service changed callbacks when flag is on

Test: FrameworksNetTests
      Note that carrierPrivilegeAuthenticatorTest is already
      an @Parameterized test with flag = on and off, so it
      already tests both.
Change-Id: I52fcfd3f21a13d7a39952ba828464ce6ef4085c2
This commit is contained in:
Chalard Jean
2023-01-31 20:41:53 +09:00
parent 5a68557438
commit 361dad3243
2 changed files with 22 additions and 7 deletions

View File

@@ -119,7 +119,7 @@ public class CarrierPrivilegeAuthenticator {
unregisterCarrierPrivilegesListeners();
mModemCount = mTelephonyManager.getActiveModemCount();
registerCarrierPrivilegesListeners(mModemCount);
updateCarrierServiceUid();
if (!mUseCallbacksForServiceChanged) updateCarrierServiceUid();
}
}
@@ -132,19 +132,26 @@ public class CarrierPrivilegeAuthenticator {
@Override public void onCarrierPrivilegesChanged(
@NonNull List<String> privilegedPackageNames,
@NonNull int[] privilegedUids) {
if (mUseCallbacksForServiceChanged) return;
// Re-trigger the synchronous check (which is also very cheap due
// to caching in CarrierPrivilegesTracker). This allows consistency
// with the onSubscriptionsChangedListener and broadcasts.
updateCarrierServiceUid();
}
@Override
public void onCarrierServiceChanged(
@Nullable final String carrierServicePackageName,
public void onCarrierServiceChanged(@Nullable final String carrierServicePackageName,
final int carrierServiceUid) {
if (!mUseCallbacksForServiceChanged) {
// Re-trigger the synchronous check (which is also very cheap due
// to caching in CarrierPrivilegesTracker). This allows consistency
// with the onSubscriptionsChangedListener and broadcasts.
updateCarrierServiceUid();
return;
}
synchronized (mLock) {
mCarrierServiceUid.put(mLogicalSlot, carrierServiceUid);
}
}
}

View File

@@ -158,6 +158,8 @@ public class CarrierPrivilegeAuthenticatorTest {
assertNotNull(initialListeners.get(1));
assertEquals(2, initialListeners.size());
initialListeners.get(0).onCarrierServiceChanged(null, mCarrierConfigPkgUid);
final NetworkCapabilities.Builder ncBuilder = new NetworkCapabilities.Builder()
.addTransportType(TRANSPORT_CELLULAR)
.setNetworkSpecifier(new TelephonyNetworkSpecifier(0));
@@ -194,6 +196,8 @@ public class CarrierPrivilegeAuthenticatorTest {
assertNotNull(newListeners.get(0));
assertEquals(1, newListeners.size());
newListeners.get(0).onCarrierServiceChanged(null, mCarrierConfigPkgUid);
final TelephonyNetworkSpecifier specifier = new TelephonyNetworkSpecifier(0);
final NetworkCapabilities nc = new NetworkCapabilities.Builder()
.addTransportType(TRANSPORT_CELLULAR)
@@ -219,6 +223,7 @@ public class CarrierPrivilegeAuthenticatorTest {
applicationInfo.uid = mCarrierConfigPkgUid + 1;
doReturn(applicationInfo).when(mPackageManager).getApplicationInfo(eq(mTestPkg), anyInt());
listener.onCarrierPrivilegesChanged(Collections.emptyList(), new int[] {});
listener.onCarrierServiceChanged(null, applicationInfo.uid);
assertFalse(mCarrierPrivilegeAuthenticator.hasCarrierPrivilegeForNetworkCapabilities(
mCarrierConfigPkgUid, nc));
@@ -228,6 +233,9 @@ public class CarrierPrivilegeAuthenticatorTest {
@Test
public void testDefaultSubscription() throws Exception {
final CarrierPrivilegesListenerShim listener = getCarrierPrivilegesListeners().get(0);
listener.onCarrierServiceChanged(null, mCarrierConfigPkgUid);
final NetworkCapabilities.Builder ncBuilder = new NetworkCapabilities.Builder();
ncBuilder.addTransportType(TRANSPORT_CELLULAR);
assertFalse(mCarrierPrivilegeAuthenticator.hasCarrierPrivilegeForNetworkCapabilities(