[DU04]Remove NetworkPolicyManagerInternal from NetworkStatsService

NetworkStatsService is using NetworkPolicyManagerInternal APIs, which
cannot be accessed after moving into the mainline module. So, replace
and remove those hidden API usages.

Bug: 211843446
Test: atest NetworkStatsServiceTest NetworkPolicyManagerTest
            NetworkPolicyManagerServiceTest
Change-Id: I0f3f02d1dc014967fab27ffcf37dd1918dbef5e0
This commit is contained in:
lifr
2021-12-27 13:24:35 +08:00
committed by Frank
parent df5586619e
commit 23aebe33af

View File

@@ -96,6 +96,7 @@ import android.net.Network;
import android.net.NetworkCapabilities; import android.net.NetworkCapabilities;
import android.net.NetworkIdentity; import android.net.NetworkIdentity;
import android.net.NetworkIdentitySet; import android.net.NetworkIdentitySet;
import android.net.NetworkPolicyManager;
import android.net.NetworkSpecifier; import android.net.NetworkSpecifier;
import android.net.NetworkStack; import android.net.NetworkStack;
import android.net.NetworkStateSnapshot; import android.net.NetworkStateSnapshot;
@@ -850,7 +851,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
if (LOGD) Log.d(TAG, "Resolving plan for " + template); if (LOGD) Log.d(TAG, "Resolving plan for " + template);
final long token = Binder.clearCallingIdentity(); final long token = Binder.clearCallingIdentity();
try { try {
plan = LocalServices.getService(NetworkPolicyManagerInternal.class) plan = mContext.getSystemService(NetworkPolicyManager.class)
.getSubscriptionPlan(template); .getSubscriptionPlan(template);
} finally { } finally {
Binder.restoreCallingIdentity(token); Binder.restoreCallingIdentity(token);
@@ -2021,10 +2022,12 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK); NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK);
Objects.requireNonNull(provider, "provider is null"); Objects.requireNonNull(provider, "provider is null");
Objects.requireNonNull(tag, "tag is null"); Objects.requireNonNull(tag, "tag is null");
final NetworkPolicyManager netPolicyManager = mContext
.getSystemService(NetworkPolicyManager.class);
try { try {
NetworkStatsProviderCallbackImpl callback = new NetworkStatsProviderCallbackImpl( NetworkStatsProviderCallbackImpl callback = new NetworkStatsProviderCallbackImpl(
tag, provider, mStatsProviderSem, mAlertObserver, tag, provider, mStatsProviderSem, mAlertObserver,
mStatsProviderCbList); mStatsProviderCbList, netPolicyManager);
mStatsProviderCbList.add(callback); mStatsProviderCbList.add(callback);
Log.d(TAG, "registerNetworkStatsProvider from " + callback.mTag + " uid/pid=" Log.d(TAG, "registerNetworkStatsProvider from " + callback.mTag + " uid/pid="
+ getCallingUid() + "/" + getCallingPid()); + getCallingUid() + "/" + getCallingPid());
@@ -2066,6 +2069,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
@NonNull private final Semaphore mSemaphore; @NonNull private final Semaphore mSemaphore;
@NonNull final AlertObserver mAlertObserver; @NonNull final AlertObserver mAlertObserver;
@NonNull final CopyOnWriteArrayList<NetworkStatsProviderCallbackImpl> mStatsProviderCbList; @NonNull final CopyOnWriteArrayList<NetworkStatsProviderCallbackImpl> mStatsProviderCbList;
@NonNull final NetworkPolicyManager mNetworkPolicyManager;
@NonNull private final Object mProviderStatsLock = new Object(); @NonNull private final Object mProviderStatsLock = new Object();
@@ -2079,7 +2083,8 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
@NonNull String tag, @NonNull INetworkStatsProvider provider, @NonNull String tag, @NonNull INetworkStatsProvider provider,
@NonNull Semaphore semaphore, @NonNull Semaphore semaphore,
@NonNull AlertObserver alertObserver, @NonNull AlertObserver alertObserver,
@NonNull CopyOnWriteArrayList<NetworkStatsProviderCallbackImpl> cbList) @NonNull CopyOnWriteArrayList<NetworkStatsProviderCallbackImpl> cbList,
@NonNull NetworkPolicyManager networkPolicyManager)
throws RemoteException { throws RemoteException {
mTag = tag; mTag = tag;
mProvider = provider; mProvider = provider;
@@ -2087,6 +2092,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
mSemaphore = semaphore; mSemaphore = semaphore;
mAlertObserver = alertObserver; mAlertObserver = alertObserver;
mStatsProviderCbList = cbList; mStatsProviderCbList = cbList;
mNetworkPolicyManager = networkPolicyManager;
} }
@NonNull @NonNull
@@ -2133,8 +2139,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
public void notifyWarningOrLimitReached() { public void notifyWarningOrLimitReached() {
Log.d(TAG, mTag + ": notifyWarningOrLimitReached"); Log.d(TAG, mTag + ": notifyWarningOrLimitReached");
BinderUtils.withCleanCallingIdentity(() -> BinderUtils.withCleanCallingIdentity(() ->
LocalServices.getService(NetworkPolicyManagerInternal.class) mNetworkPolicyManager.onStatsProviderWarningOrLimitReached());
.onStatsProviderWarningOrLimitReached(mTag));
} }
@Override @Override