From 3a66cf3e86f351f0957188a4b874a3e65edfa40f Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Tue, 20 Mar 2012 17:00:01 -0700 Subject: [PATCH] Avoid data usage notifications in airplane mode. Only for mobile networks. Bug: 5995839 Change-Id: I6a6dba8cfe98c8e72861f90665c3e41da6d9a474 --- .../server/net/NetworkPolicyManagerService.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/services/java/com/android/server/net/NetworkPolicyManagerService.java b/services/java/com/android/server/net/NetworkPolicyManagerService.java index a0e28cae6df17..0e04d59b025b8 100644 --- a/services/java/com/android/server/net/NetworkPolicyManagerService.java +++ b/services/java/com/android/server/net/NetworkPolicyManagerService.java @@ -524,6 +524,11 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { case MATCH_MOBILE_3G_LOWER: case MATCH_MOBILE_4G: case MATCH_MOBILE_ALL: + // mobile templates aren't relevant in airplane mode + if (isAirplaneModeOn(mContext)) { + return false; + } + // mobile templates are relevant when subscriberid is active return Objects.equal(getActiveSubscriberId(), template.getSubscriberId()); } @@ -1723,6 +1728,11 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { mHandler.getLooper().getQueue().addIdleHandler(handler); } + public static boolean isAirplaneModeOn(Context context) { + return Settings.System.getInt( + context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) != 0; + } + private static void collectKeys(SparseIntArray source, SparseBooleanArray target) { final int size = source.size(); for (int i = 0; i < size; i++) {