diff options
author | Behrooz Aliabadi <behrooz.aliabadi@sonymobile.com> | 2013-07-16 12:12:12 +0200 |
---|---|---|
committer | Takeshi Aimi <takeshi.aimi@sonymobile.com> | 2013-12-18 09:55:45 +0000 |
commit | 524dee0fb5b381ebe2927fba9dbb025c684bc89e (patch) | |
tree | 25828a6e64f24c048cce1ada57b85af9b3ef0ec0 /src/com/android/settings/net | |
parent | e14a5ef660ebc65cad53c1e108c99d9fd98a4696 (diff) | |
download | packages_apps_Settings-524dee0fb5b381ebe2927fba9dbb025c684bc89e.zip packages_apps_Settings-524dee0fb5b381ebe2927fba9dbb025c684bc89e.tar.gz packages_apps_Settings-524dee0fb5b381ebe2927fba9dbb025c684bc89e.tar.bz2 |
Fix null pointer exceptions in NetworkPolicyEditor
This upload fixes a null pointer exception issue.
After this fix the modified methods return
their corresponding default values instead of null.
Change-Id: Idb94f8b808b8dd18be5e3fc92cc5560ce0f81c4f
Diffstat (limited to 'src/com/android/settings/net')
-rw-r--r-- | src/com/android/settings/net/NetworkPolicyEditor.java | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/src/com/android/settings/net/NetworkPolicyEditor.java b/src/com/android/settings/net/NetworkPolicyEditor.java index 82bd385..ad2afa0 100644 --- a/src/com/android/settings/net/NetworkPolicyEditor.java +++ b/src/com/android/settings/net/NetworkPolicyEditor.java @@ -160,7 +160,8 @@ public class NetworkPolicyEditor { } public int getPolicyCycleDay(NetworkTemplate template) { - return getPolicy(template).cycleDay; + final NetworkPolicy policy = getPolicy(template); + return (policy != null) ? policy.cycleDay : -1; } public void setPolicyCycleDay(NetworkTemplate template, int cycleDay, String cycleTimezone) { @@ -173,7 +174,8 @@ public class NetworkPolicyEditor { } public long getPolicyWarningBytes(NetworkTemplate template) { - return getPolicy(template).warningBytes; + final NetworkPolicy policy = getPolicy(template); + return (policy != null) ? policy.warningBytes : WARNING_DISABLED; } public void setPolicyWarningBytes(NetworkTemplate template, long warningBytes) { @@ -185,7 +187,8 @@ public class NetworkPolicyEditor { } public long getPolicyLimitBytes(NetworkTemplate template) { - return getPolicy(template).limitBytes; + final NetworkPolicy policy = getPolicy(template); + return (policy != null) ? policy.limitBytes : LIMIT_DISABLED; } public void setPolicyLimitBytes(NetworkTemplate template, long limitBytes) { @@ -309,8 +312,16 @@ public class NetworkPolicyEditor { final NetworkPolicy policy3g = getPolicy(template3g); final NetworkPolicy policy4g = getPolicy(template4g); - final NetworkPolicy restrictive = policy3g.compareTo(policy4g) < 0 ? policy3g - : policy4g; + NetworkPolicy restrictive = null; + if ((policy3g == null) && (policy4g == null)) { + return false; + } else if (policy3g == null) { + restrictive = policy4g; + } else if (policy4g == null) { + restrictive = policy3g; + } else { + restrictive = policy3g.compareTo(policy4g) < 0 ? policy3g : policy4g; + } mPolicies.remove(policy3g); mPolicies.remove(policy4g); mPolicies.add(new NetworkPolicy(templateAll, restrictive.cycleDay, @@ -321,6 +332,9 @@ public class NetworkPolicyEditor { } else if (!beforeSplit && split) { // duplicate existing policy into two rules final NetworkPolicy policyAll = getPolicy(templateAll); + if (policyAll == null) { + return false; + } mPolicies.remove(policyAll); mPolicies.add(new NetworkPolicy(template3g, policyAll.cycleDay, policyAll.cycleTimezone, policyAll.warningBytes, policyAll.limitBytes, SNOOZE_NEVER, SNOOZE_NEVER, |