Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 12d3f488 authored by Wink Saville's avatar Wink Saville Committed by Android Git Automerger
Browse files

am 7770dcc3: Merge "checkMobileProvisioning should not block." into klp-dev

* commit '7770dcc3':
  checkMobileProvisioning should not block.
parents f9464838 7770dcc3
Loading
Loading
Loading
Loading
+24 −39
Original line number Diff line number Diff line
@@ -3987,40 +3987,6 @@ public class ConnectivityService extends IConnectivityManager.Stub {
            // Start off with notification off
            setProvNotificationVisible(false, ConnectivityManager.TYPE_NONE, null, null);

            // See if we've alreadying determined if we've got a provsioning connection
            // if so we don't need to do anything active
            MobileDataStateTracker mdstDefault = (MobileDataStateTracker)
                    mNetTrackers[ConnectivityManager.TYPE_MOBILE];
            boolean isDefaultProvisioning = mdstDefault.isProvisioningNetwork();

            MobileDataStateTracker mdstHipri = (MobileDataStateTracker)
                    mNetTrackers[ConnectivityManager.TYPE_MOBILE_HIPRI];
            boolean isHipriProvisioning = mdstHipri.isProvisioningNetwork();

            if (isDefaultProvisioning || isHipriProvisioning) {
                if (mIsNotificationVisible) {
                    if (DBG) {
                        log("checkMobileProvisioning: provisioning-ignore notification is visible");
                    }
                } else {
                    NetworkInfo ni = null;
                    if (isDefaultProvisioning) {
                        ni = mdstDefault.getNetworkInfo();
                    }
                    if (isHipriProvisioning) {
                        ni = mdstHipri.getNetworkInfo();
                    }
                    String url = getMobileProvisioningUrl();
                    if ((ni != null) && (!TextUtils.isEmpty(url))) {
                        setProvNotificationVisible(true, ni.getType(), ni.getExtraInfo(), url);
                    } else {
                        if (DBG) log("checkMobileProvisioning: provisioning but no url, ignore");
                    }
                }
                mIsCheckingMobileProvisioning.set(false);
                return timeOutMs;
            }

            CheckMp checkMp = new CheckMp(mContext, this);
            CheckMp.CallBack cb = new CheckMp.CallBack() {
                @Override
@@ -4154,8 +4120,26 @@ public class ConnectivityService extends IConnectivityManager.Stub {
            mParams = params;

            if (mCs.isNetworkSupported(ConnectivityManager.TYPE_MOBILE) == false) {
                log("isMobileOk: not mobile capable");
                result = CMP_RESULT_CODE_NO_CONNECTION;
                log("isMobileOk: X not mobile capable result=" + result);
                return result;
            }

            // See if we've already determined we've got a provisioning connection,
            // if so we don't need to do anything active.
            MobileDataStateTracker mdstDefault = (MobileDataStateTracker)
                    mCs.mNetTrackers[ConnectivityManager.TYPE_MOBILE];
            boolean isDefaultProvisioning = mdstDefault.isProvisioningNetwork();
            log("isMobileOk: isDefaultProvisioning=" + isDefaultProvisioning);

            MobileDataStateTracker mdstHipri = (MobileDataStateTracker)
                    mCs.mNetTrackers[ConnectivityManager.TYPE_MOBILE_HIPRI];
            boolean isHipriProvisioning = mdstHipri.isProvisioningNetwork();
            log("isMobileOk: isHipriProvisioning=" + isHipriProvisioning);

            if (isDefaultProvisioning || isHipriProvisioning) {
                result = CMP_RESULT_CODE_PROVISIONING_NETWORK;
                log("isMobileOk: X default || hipri is provisioning result=" + result);
                return result;
            }

@@ -4217,8 +4201,8 @@ public class ConnectivityService extends IConnectivityManager.Stub {
                        MobileDataStateTracker mdst = (MobileDataStateTracker)
                                mCs.mNetTrackers[ConnectivityManager.TYPE_MOBILE_HIPRI];
                        if (mdst.isProvisioningNetwork()) {
                            if (DBG) log("isMobileOk: isProvisioningNetwork is true");
                            result = CMP_RESULT_CODE_PROVISIONING_NETWORK;
                            if (DBG) log("isMobileOk: X isProvisioningNetwork result=" + result);
                            return result;
                        } else {
                            if (DBG) log("isMobileOk: isProvisioningNetwork is false, continue");
@@ -4233,8 +4217,8 @@ public class ConnectivityService extends IConnectivityManager.Stub {
                        try {
                            addresses = InetAddress.getAllByName(orgUri.getHost());
                        } catch (UnknownHostException e) {
                            log("isMobileOk: UnknownHostException");
                            result = CMP_RESULT_CODE_NO_DNS;
                            log("isMobileOk: X UnknownHostException result=" + result);
                            return result;
                        }
                        log("isMobileOk: addresses=" + inetAddressesToString(addresses));
@@ -4309,8 +4293,9 @@ public class ConnectivityService extends IConnectivityManager.Stub {

                                if (responseCode == 204) {
                                    // Return
                                    log("isMobileOk: expected responseCode=" + responseCode);
                                    result = CMP_RESULT_CODE_CONNECTABLE;
                                    log("isMobileOk: X expected responseCode=" + responseCode
                                            + " result=" + result);
                                    return result;
                                } else {
                                    // Retry to be sure this was redirected, we've gotten
@@ -4328,7 +4313,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
                                }
                            }
                        }
                        log("isMobileOk: loops|timed out result=" + result);
                        log("isMobileOk: X loops|timed out result=" + result);
                        return result;
                    } catch (Exception e) {
                        log("isMobileOk: Exception e=" + e);