summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/net
diff options
context:
space:
mode:
authorBehrooz Aliabadi <behrooz.aliabadi@sonymobile.com>2013-07-16 12:12:12 +0200
committerTakeshi Aimi <takeshi.aimi@sonymobile.com>2013-12-18 09:55:45 +0000
commit524dee0fb5b381ebe2927fba9dbb025c684bc89e (patch)
tree25828a6e64f24c048cce1ada57b85af9b3ef0ec0 /src/com/android/settings/net
parente14a5ef660ebc65cad53c1e108c99d9fd98a4696 (diff)
downloadpackages_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.java24
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,