Handle provisioning APN by turning off/on data.

This is a start and two tests succeed:

Tested expired AT&T SIM and waiting 15min for alarm to fire.
Tested a provisioned Verizon SIM and works normally.

I've NOT tested AT&T where I've properly completed the provisioning.
I've NOT tested T-Mobile SIM either provisioned or not-provisioned.
I've NOT tested provisioning over WiFi.
I've NOT tested that WiFi <-> Mobile works
I've NOT tested voice calls, SMS, MMS
...

The current bug is below, but it is poorly named either it should be
renamed or a new bug created.

Bug: 13190133
Change-Id: I0a09f642614cd27a8655e9dae764b8999ce485b8
diff --git a/src/java/com/android/internal/telephony/dataconnection/DcTrackerBase.java b/src/java/com/android/internal/telephony/dataconnection/DcTrackerBase.java
index a8050a6..40eba11 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DcTrackerBase.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DcTrackerBase.java
@@ -849,10 +849,6 @@
                 break;
             }
             case DctConstants.CMD_ENABLE_MOBILE_PROVISIONING: {
-                // TODO: Right now we know when it ends "successfully" when
-                // provisioning apn gets dropped, what happens if the user never
-                // succeed, I assume there is a timeout and the network will drop
-                // it after a period of time.
                 Bundle bundle = msg.getData();
                 if (bundle != null) {
                     try {
@@ -867,18 +863,11 @@
                     mIsProvisioning = false;
                     mProvisioningUrl = null;
                 } else {
-                    ApnContext apnContext = mApnContexts.get(PhoneConstants.APN_TYPE_DEFAULT);
-                    if (apnContext.isProvisioningApn() && apnContext.getState() == State.CONNECTED){
-                        log("CMD_ENABLE_MOBILE_PROVISIONING: mIsProvisioning=true url="
-                                + mProvisioningUrl);
-                        mIsProvisioning = true;
-                        startProvisioningApnAlarm();
-                        completeConnection(mApnContexts.get(PhoneConstants.APN_TYPE_DEFAULT));
-                    } else {
-                        log("CMD_ENABLE_MOBILE_PROVISIONING: No longer connected");
-                        mIsProvisioning = false;
-                        mProvisioningUrl = null;
-                    }
+                    loge("CMD_ENABLE_MOBILE_PROVISIONING: provisioningUrl=" + mProvisioningUrl);
+                    mIsProvisioning = true;
+                    startProvisioningApnAlarm();
+                    onSetInternalDataEnabled(true);
+                    enableApnType("default");
                 }
                 break;
             }