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
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 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 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 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 @@
             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 @@
         } 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,