Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 368336fe authored by Suprabh Shukla's avatar Suprabh Shukla
Browse files

Deprecate NetworkPolicyCallback and related APIs

The callback is no longer used by any client modules since Android VIC.
The definition is kept to maintain source compatibility with older
versions.

Flag: android.net.platform.flags.deprecate_network_policy_callback

Test: N/A

Bug: 353342610
Change-Id: I3242924c032e9fe9738f0b03c34e2ce4054293ef
parent 88d75700
Loading
Loading
Loading
Loading
+4 −4
Original line number Original line Diff line number Diff line
@@ -271,12 +271,12 @@ package android.net {
    method @RequiresPermission(android.Manifest.permission.OBSERVE_NETWORK_POLICY) public boolean isUidRestrictedOnMeteredNetworks(int);
    method @RequiresPermission(android.Manifest.permission.OBSERVE_NETWORK_POLICY) public boolean isUidRestrictedOnMeteredNetworks(int);
    method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void notifyStatsProviderLimitReached();
    method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void notifyStatsProviderLimitReached();
    method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void notifyStatsProviderWarningReached();
    method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void notifyStatsProviderWarningReached();
    method @RequiresPermission(android.Manifest.permission.OBSERVE_NETWORK_POLICY) public void registerNetworkPolicyCallback(@Nullable java.util.concurrent.Executor, @NonNull android.net.NetworkPolicyManager.NetworkPolicyCallback);
    method @Deprecated @FlaggedApi("android.net.platform.flags.deprecate_network_policy_callback") @RequiresPermission(android.Manifest.permission.OBSERVE_NETWORK_POLICY) public void registerNetworkPolicyCallback(@Nullable java.util.concurrent.Executor, @NonNull android.net.NetworkPolicyManager.NetworkPolicyCallback);
    method @RequiresPermission(android.Manifest.permission.OBSERVE_NETWORK_POLICY) public void unregisterNetworkPolicyCallback(@NonNull android.net.NetworkPolicyManager.NetworkPolicyCallback);
    method @Deprecated @FlaggedApi("android.net.platform.flags.deprecate_network_policy_callback") @RequiresPermission(android.Manifest.permission.OBSERVE_NETWORK_POLICY) public void unregisterNetworkPolicyCallback(@NonNull android.net.NetworkPolicyManager.NetworkPolicyCallback);
  }
  }


  public static interface NetworkPolicyManager.NetworkPolicyCallback {
  @Deprecated @FlaggedApi("android.net.platform.flags.deprecate_network_policy_callback") public static interface NetworkPolicyManager.NetworkPolicyCallback {
    method public default void onUidBlockedReasonChanged(int, int);
    method @Deprecated public default void onUidBlockedReasonChanged(int, int);
  }
  }


  public class NetworkWatchlistManager {
  public class NetworkWatchlistManager {
+38 −0
Original line number Original line Diff line number Diff line
@@ -21,6 +21,7 @@ import static android.app.ActivityManager.PROCESS_STATE_UNKNOWN;
import static android.app.ActivityManager.procStateToString;
import static android.app.ActivityManager.procStateToString;
import static android.content.pm.PackageManager.GET_SIGNATURES;
import static android.content.pm.PackageManager.GET_SIGNATURES;


import android.annotation.FlaggedApi;
import android.annotation.IntDef;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.Nullable;
@@ -36,6 +37,7 @@ import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.Signature;
import android.content.pm.Signature;
import android.net.platform.flags.Flags;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiInfo;
import android.os.Build;
import android.os.Build;
@@ -954,11 +956,24 @@ public class NetworkPolicyManager {
     * @param executor The {@link Executor} to run the callback on.
     * @param executor The {@link Executor} to run the callback on.
     * @param callback The {@link NetworkPolicyCallback} to be registered.
     * @param callback The {@link NetworkPolicyCallback} to be registered.
     * @hide
     * @hide
     *
     * @deprecated This API is only supported up to Android version
     * {@link Build.VERSION_CODES#VANILLA_ICE_CREAM}. On later versions,
     * {@link android.net.ConnectivityManager.NetworkCallback} should be used wherever possible.
     *
     * @throws UnsupportedOperationException when called on Android versions after
     *                                       {@link Build.VERSION_CODES#VANILLA_ICE_CREAM}.
     */
     */
    @Deprecated
    @FlaggedApi(Flags.FLAG_DEPRECATE_NETWORK_POLICY_CALLBACK)
    @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
    @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
    @RequiresPermission(android.Manifest.permission.OBSERVE_NETWORK_POLICY)
    @RequiresPermission(android.Manifest.permission.OBSERVE_NETWORK_POLICY)
    public void registerNetworkPolicyCallback(@Nullable Executor executor,
    public void registerNetworkPolicyCallback(@Nullable Executor executor,
            @NonNull NetworkPolicyCallback callback) {
            @NonNull NetworkPolicyCallback callback) {
        if (Flags.deprecateNetworkPolicyCallback()) {
            throw new UnsupportedOperationException("NetworkPolicyCallback is no longer supported."
                    + " Please use ConnectivityManager APIs instead");
        }
        if (callback == null) {
        if (callback == null) {
            throw new NullPointerException("Callback cannot be null.");
            throw new NullPointerException("Callback cannot be null.");
        }
        }
@@ -974,10 +989,23 @@ public class NetworkPolicyManager {
     *
     *
     * @param callback The {@link NetworkPolicyCallback} to be unregistered.
     * @param callback The {@link NetworkPolicyCallback} to be unregistered.
     * @hide
     * @hide
     *
     * @deprecated This API is only supported up to Android version
     * {@link Build.VERSION_CODES#VANILLA_ICE_CREAM}. On later versions,
     * {@link android.net.ConnectivityManager.NetworkCallback} should be used wherever possible.
     *
     * @throws UnsupportedOperationException when called on Android versions after
     *                                       {@link Build.VERSION_CODES#VANILLA_ICE_CREAM}.
     */
     */
    @Deprecated
    @FlaggedApi(Flags.FLAG_DEPRECATE_NETWORK_POLICY_CALLBACK)
    @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
    @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
    @RequiresPermission(android.Manifest.permission.OBSERVE_NETWORK_POLICY)
    @RequiresPermission(android.Manifest.permission.OBSERVE_NETWORK_POLICY)
    public void unregisterNetworkPolicyCallback(@NonNull NetworkPolicyCallback callback) {
    public void unregisterNetworkPolicyCallback(@NonNull NetworkPolicyCallback callback) {
        if (Flags.deprecateNetworkPolicyCallback()) {
            throw new UnsupportedOperationException("NetworkPolicyCallback is no longer supported."
                    + " Please use ConnectivityManager APIs instead");
        }
        if (callback == null) {
        if (callback == null) {
            throw new NullPointerException("Callback cannot be null.");
            throw new NullPointerException("Callback cannot be null.");
        }
        }
@@ -990,8 +1018,18 @@ public class NetworkPolicyManager {
    /**
    /**
     * Interface for the callback to listen for changes to network blocked status of apps.
     * Interface for the callback to listen for changes to network blocked status of apps.
     *
     *
     * @deprecated This API is only supported up to Android version
     * {@link Build.VERSION_CODES#VANILLA_ICE_CREAM}. On later versions, this callback will
     * <b>not</b> be called when the network blocked status of an app changes. Instead,
     * {@link android.net.ConnectivityManager.NetworkCallback} should be used wherever possible.
     *
     * @see #registerNetworkPolicyCallback(Executor, NetworkPolicyCallback)
     * @see #unregisterNetworkPolicyCallback(NetworkPolicyCallback)
     *
     * @hide
     * @hide
     */
     */
    @FlaggedApi(Flags.FLAG_DEPRECATE_NETWORK_POLICY_CALLBACK)
    @Deprecated
    @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
    @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
    public interface NetworkPolicyCallback {
    public interface NetworkPolicyCallback {
        /**
        /**
+10 −0
Original line number Original line Diff line number Diff line
@@ -25,3 +25,13 @@ flag {
  description: "Flag for registerOffloadEngine API in NsdManager"
  description: "Flag for registerOffloadEngine API in NsdManager"
  bug: "294777050"
  bug: "294777050"
}
}

flag {
  name: "deprecate_network_policy_callback"
  namespace: "backstage_power"
  description: "Flag for deprecating NetworkPolicyCallback and related APIs"
  bug: "353342610"
  metadata {
    purpose: PURPOSE_BUGFIX
  }
}