Add settings for SUW data control.

While the device is being provisioned we can default to
mobile-data-off and let the provisioning app turn mobile
data back on if the user wants it.  After provisioning
control is restored.

Settings in play:
Settings.Global.DEVICE_PROVISIONED (existing)
SystemProperty ro.com.android.mobiledata (existing)
Settings.Global.MOBILE_DATA (existing)

SystemProperty ro.com.android.prov_mobiledata (new)
Settings.Global.DEVICE_PROVISIONING_MOBILE_DATA_ENABLED (new)

If the new settings aren't used, the old behvior is used.

bug:26638209
Change-Id: I92617ed6e588a5c50cf39054412a15273a9e03ff
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 5fc2899..7a1536e 100755
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -6657,6 +6657,17 @@
        public static final String DEVICE_PROVISIONED = "device_provisioned";
 
        /**
+        * Whether mobile data should be allowed while the device is being provisioned.
+        * This allows the provisioning process to turn off mobile data before the user
+        * has an opportunity to set things up, preventing other processes from burning
+        * precious bytes before wifi is setup.
+        * (0 = false, 1 = true)
+        * @hide
+        */
+       public static final String DEVICE_PROVISIONING_MOBILE_DATA_ENABLED =
+               "device_provisioning_mobile_data";
+
+       /**
         * The saved value for WindowManagerService.setForcedDisplaySize().
         * Two integers separated by a comma.  If unset, then use the real display size.
         * @hide
diff --git a/telephony/java/com/android/internal/telephony/DctConstants.java b/telephony/java/com/android/internal/telephony/DctConstants.java
index fcb967f..ccabace 100644
--- a/telephony/java/com/android/internal/telephony/DctConstants.java
+++ b/telephony/java/com/android/internal/telephony/DctConstants.java
@@ -102,6 +102,7 @@
     public static final int CMD_NET_STAT_POLL = BASE + 40;
     public static final int EVENT_DATA_RAT_CHANGED = BASE + 41;
     public static final int CMD_CLEAR_PROVISIONING_SPINNER = BASE + 42;
+    public static final int EVENT_DEVICE_PROVISIONED_CHANGE = BASE + 43;
 
     /***** Constants *****/