summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/datausage
diff options
context:
space:
mode:
authorAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-01-09 06:35:41 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-01-09 06:35:41 +0000
commitdc047e574654b222949520cd6267557c024b5e77 (patch)
tree24bd270f4a5954f8e1b3553b025196924513db28 /src/com/android/settings/datausage
parent824095f728ae62c4d977eef541a808c6e426d722 (diff)
parentc0b35513101c903d195e543b1f4feb5750632cf0 (diff)
downloadpackages_apps_Settings-dc047e574654b222949520cd6267557c024b5e77.tar.gz
packages_apps_Settings-dc047e574654b222949520cd6267557c024b5e77.tar.bz2
packages_apps_Settings-dc047e574654b222949520cd6267557c024b5e77.zip
Merge "[Settings] Avoid from accessing createManageSubscriptionIntent(int)" am: d792d20001 am: 77cc57d9c2 am: c0b3551310
Change-Id: I340af8aee92498660f7bc65cdf5540d37a2fa148
Diffstat (limited to 'src/com/android/settings/datausage')
-rw-r--r--src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java46
1 files changed, 44 insertions, 2 deletions
diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java
index 600b9e8236..a26e3591cb 100644
--- a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java
+++ b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java
@@ -19,8 +19,11 @@ package com.android.settings.datausage;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.net.INetworkPolicyManager;
import android.net.NetworkPolicyManager;
import android.net.NetworkTemplate;
+import android.os.ServiceManager;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.SubscriptionPlan;
@@ -296,12 +299,51 @@ public class DataUsageSummaryPreferenceController extends BasePreferenceControll
mSnapshotTime = primaryPlan.getDataUsageTime();
}
}
- mManageSubscriptionIntent =
- mSubscriptionManager.createManageSubscriptionIntent(mSubscriptionId);
+ mManageSubscriptionIntent = createManageSubscriptionIntent(mSubscriptionId);
Log.i(TAG, "Have " + mDataplanCount + " plans, dflt sub-id " + mSubscriptionId
+ ", intent " + mManageSubscriptionIntent);
}
+ /**
+ * Create an {@link Intent} that can be launched towards the carrier app
+ * that is currently defining the billing relationship plan through
+ * {@link INetworkPolicyManager#setSubscriptionPlans(int, SubscriptionPlan [], String)}.
+ *
+ * @return ready to launch Intent targeted towards the carrier app, or
+ * {@code null} if no carrier app is defined, or if the defined
+ * carrier app provides no management activity.
+ */
+ private Intent createManageSubscriptionIntent(int subId) {
+ final INetworkPolicyManager iNetPolicyManager = INetworkPolicyManager.Stub.asInterface(
+ ServiceManager.getService(Context.NETWORK_POLICY_SERVICE));
+ String owner = "";
+ try {
+ owner = iNetPolicyManager.getSubscriptionPlansOwner(subId);
+ } catch (Exception ex) {
+ Log.w(TAG, "Fail to get subscription plan owner for subId " + subId, ex);
+ }
+
+ if (TextUtils.isEmpty(owner)) {
+ return null;
+ }
+
+ final List<SubscriptionPlan> plans = mSubscriptionManager.getSubscriptionPlans(subId);
+ if (plans.isEmpty()) {
+ return null;
+ }
+
+ final Intent intent = new Intent(SubscriptionManager.ACTION_MANAGE_SUBSCRIPTION_PLANS);
+ intent.setPackage(owner);
+ intent.putExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX, subId);
+
+ if (mActivity.getPackageManager().queryIntentActivities(intent,
+ PackageManager.MATCH_DEFAULT_ONLY).isEmpty()) {
+ return null;
+ }
+
+ return intent;
+ }
+
public static SubscriptionPlan getPrimaryPlan(SubscriptionManager subManager, int primaryId) {
List<SubscriptionPlan> plans = subManager.getSubscriptionPlans(primaryId);
if (CollectionUtils.isEmpty(plans)) {