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:
@@ -119,7 +119,7 @@ public class CarrierPrivilegeAuthenticator {
|
|||||||
unregisterCarrierPrivilegesListeners();
|
unregisterCarrierPrivilegesListeners();
|
||||||
mModemCount = mTelephonyManager.getActiveModemCount();
|
mModemCount = mTelephonyManager.getActiveModemCount();
|
||||||
registerCarrierPrivilegesListeners(mModemCount);
|
registerCarrierPrivilegesListeners(mModemCount);
|
||||||
updateCarrierServiceUid();
|
if (!mUseCallbacksForServiceChanged) updateCarrierServiceUid();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -132,19 +132,26 @@ public class CarrierPrivilegeAuthenticator {
|
|||||||
@Override public void onCarrierPrivilegesChanged(
|
@Override public void onCarrierPrivilegesChanged(
|
||||||
@NonNull List<String> privilegedPackageNames,
|
@NonNull List<String> privilegedPackageNames,
|
||||||
@NonNull int[] privilegedUids) {
|
@NonNull int[] privilegedUids) {
|
||||||
|
if (mUseCallbacksForServiceChanged) return;
|
||||||
// Re-trigger the synchronous check (which is also very cheap due
|
// Re-trigger the synchronous check (which is also very cheap due
|
||||||
// to caching in CarrierPrivilegesTracker). This allows consistency
|
// to caching in CarrierPrivilegesTracker). This allows consistency
|
||||||
// with the onSubscriptionsChangedListener and broadcasts.
|
// with the onSubscriptionsChangedListener and broadcasts.
|
||||||
updateCarrierServiceUid();
|
updateCarrierServiceUid();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCarrierServiceChanged(
|
public void onCarrierServiceChanged(@Nullable final String carrierServicePackageName,
|
||||||
@Nullable final String carrierServicePackageName,
|
|
||||||
final int carrierServiceUid) {
|
final int carrierServiceUid) {
|
||||||
|
if (!mUseCallbacksForServiceChanged) {
|
||||||
// Re-trigger the synchronous check (which is also very cheap due
|
// Re-trigger the synchronous check (which is also very cheap due
|
||||||
// to caching in CarrierPrivilegesTracker). This allows consistency
|
// to caching in CarrierPrivilegesTracker). This allows consistency
|
||||||
// with the onSubscriptionsChangedListener and broadcasts.
|
// with the onSubscriptionsChangedListener and broadcasts.
|
||||||
updateCarrierServiceUid();
|
updateCarrierServiceUid();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
synchronized (mLock) {
|
||||||
|
mCarrierServiceUid.put(mLogicalSlot, carrierServiceUid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -158,6 +158,8 @@ public class CarrierPrivilegeAuthenticatorTest {
|
|||||||
assertNotNull(initialListeners.get(1));
|
assertNotNull(initialListeners.get(1));
|
||||||
assertEquals(2, initialListeners.size());
|
assertEquals(2, initialListeners.size());
|
||||||
|
|
||||||
|
initialListeners.get(0).onCarrierServiceChanged(null, mCarrierConfigPkgUid);
|
||||||
|
|
||||||
final NetworkCapabilities.Builder ncBuilder = new NetworkCapabilities.Builder()
|
final NetworkCapabilities.Builder ncBuilder = new NetworkCapabilities.Builder()
|
||||||
.addTransportType(TRANSPORT_CELLULAR)
|
.addTransportType(TRANSPORT_CELLULAR)
|
||||||
.setNetworkSpecifier(new TelephonyNetworkSpecifier(0));
|
.setNetworkSpecifier(new TelephonyNetworkSpecifier(0));
|
||||||
@@ -194,6 +196,8 @@ public class CarrierPrivilegeAuthenticatorTest {
|
|||||||
assertNotNull(newListeners.get(0));
|
assertNotNull(newListeners.get(0));
|
||||||
assertEquals(1, newListeners.size());
|
assertEquals(1, newListeners.size());
|
||||||
|
|
||||||
|
newListeners.get(0).onCarrierServiceChanged(null, mCarrierConfigPkgUid);
|
||||||
|
|
||||||
final TelephonyNetworkSpecifier specifier = new TelephonyNetworkSpecifier(0);
|
final TelephonyNetworkSpecifier specifier = new TelephonyNetworkSpecifier(0);
|
||||||
final NetworkCapabilities nc = new NetworkCapabilities.Builder()
|
final NetworkCapabilities nc = new NetworkCapabilities.Builder()
|
||||||
.addTransportType(TRANSPORT_CELLULAR)
|
.addTransportType(TRANSPORT_CELLULAR)
|
||||||
@@ -219,6 +223,7 @@ public class CarrierPrivilegeAuthenticatorTest {
|
|||||||
applicationInfo.uid = mCarrierConfigPkgUid + 1;
|
applicationInfo.uid = mCarrierConfigPkgUid + 1;
|
||||||
doReturn(applicationInfo).when(mPackageManager).getApplicationInfo(eq(mTestPkg), anyInt());
|
doReturn(applicationInfo).when(mPackageManager).getApplicationInfo(eq(mTestPkg), anyInt());
|
||||||
listener.onCarrierPrivilegesChanged(Collections.emptyList(), new int[] {});
|
listener.onCarrierPrivilegesChanged(Collections.emptyList(), new int[] {});
|
||||||
|
listener.onCarrierServiceChanged(null, applicationInfo.uid);
|
||||||
|
|
||||||
assertFalse(mCarrierPrivilegeAuthenticator.hasCarrierPrivilegeForNetworkCapabilities(
|
assertFalse(mCarrierPrivilegeAuthenticator.hasCarrierPrivilegeForNetworkCapabilities(
|
||||||
mCarrierConfigPkgUid, nc));
|
mCarrierConfigPkgUid, nc));
|
||||||
@@ -228,6 +233,9 @@ public class CarrierPrivilegeAuthenticatorTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testDefaultSubscription() throws Exception {
|
public void testDefaultSubscription() throws Exception {
|
||||||
|
final CarrierPrivilegesListenerShim listener = getCarrierPrivilegesListeners().get(0);
|
||||||
|
listener.onCarrierServiceChanged(null, mCarrierConfigPkgUid);
|
||||||
|
|
||||||
final NetworkCapabilities.Builder ncBuilder = new NetworkCapabilities.Builder();
|
final NetworkCapabilities.Builder ncBuilder = new NetworkCapabilities.Builder();
|
||||||
ncBuilder.addTransportType(TRANSPORT_CELLULAR);
|
ncBuilder.addTransportType(TRANSPORT_CELLULAR);
|
||||||
assertFalse(mCarrierPrivilegeAuthenticator.hasCarrierPrivilegeForNetworkCapabilities(
|
assertFalse(mCarrierPrivilegeAuthenticator.hasCarrierPrivilegeForNetworkCapabilities(
|
||||||
|
|||||||
Reference in New Issue
Block a user