Add setSubscriptionPlans() and getSubscriptionPlans() @SystemApi
Add two interfaces to communicate with NetworkPolicyManagerService
and make them @SystemApi for mainline support.
Bug: 138306002
Test: atest FrameworksNetTests
atest FrameworksTelephonyTests
Change-Id: I9f1168bbc70dce9b2b107e1f946737b1d85599c7
Merged-In: I9f1168bbc70dce9b2b107e1f946737b1d85599c7
diff --git a/api/system-current.txt b/api/system-current.txt
index 1ec7bef..de1072a 100755
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -4602,7 +4602,9 @@
}
public class NetworkPolicyManager {
+ method @NonNull public android.telephony.SubscriptionPlan[] getSubscriptionPlans(int, @NonNull String);
method public void setSubscriptionOverride(int, int, int, long, @NonNull String);
+ method public void setSubscriptionPlans(int, @NonNull android.telephony.SubscriptionPlan[], @NonNull String);
field public static final int SUBSCRIPTION_OVERRIDE_CONGESTED = 2; // 0x2
field public static final int SUBSCRIPTION_OVERRIDE_UNMETERED = 1; // 0x1
}
diff --git a/core/java/android/net/NetworkPolicyManager.java b/core/java/android/net/NetworkPolicyManager.java
index 32e6a6d..0f66c79 100644
--- a/core/java/android/net/NetworkPolicyManager.java
+++ b/core/java/android/net/NetworkPolicyManager.java
@@ -337,7 +337,6 @@
* requested state until explicitly cleared, or the next reboot,
* whichever happens first
* @param callingPackage the name of the package making the call.
- *
*/
public void setSubscriptionOverride(int subId, @SubscriptionOverrideMask int overrideMask,
@SubscriptionOverrideMask int overrideValue, long timeoutMillis,
@@ -351,6 +350,37 @@
}
/**
+ * Set the subscription plans for a specific subscriber.
+ *
+ * @param subId the subscriber this relationship applies to.
+ * @param plans the list of plans.
+ * @param callingPackage the name of the package making the call
+ */
+ public void setSubscriptionPlans(int subId, @NonNull SubscriptionPlan[] plans,
+ @NonNull String callingPackage) {
+ try {
+ mService.setSubscriptionPlans(subId, plans, callingPackage);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+
+ /**
+ * Get subscription plans for the given subscription id.
+ *
+ * @param subId the subscriber to get the subscription plans for.
+ * @param callingPackage the name of the package making the call.
+ */
+ @NonNull
+ public SubscriptionPlan[] getSubscriptionPlans(int subId, @NonNull String callingPackage) {
+ try {
+ return mService.getSubscriptionPlans(subId, callingPackage);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+
+ /**
* Resets network policy settings back to factory defaults.
*
* @hide