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

Commit cbad1243 authored by Wink Saville's avatar Wink Saville Committed by Android (Google) Code Review
Browse files

Merge "Check that hipri has started." into jb-mr2-dev

parents 7f09ec39 7f6ee2ec
Loading
Loading
Loading
Loading
+20 −3
Original line number Diff line number Diff line
@@ -3732,11 +3732,26 @@ public class ConnectivityService extends IConnectivityManager.Stub {
                // hipri connection so the default connection stays active.
                log("isMobileOk: start hipri url=" + params.mUrl);
                mCs.setEnableFailFastMobileData(DctConstants.ENABLED);
                mCs.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE,
                        Phone.FEATURE_ENABLE_HIPRI, new Binder());

                // Continue trying to connect until time has run out
                long endTime = SystemClock.elapsedRealtime() + params.mTimeOutMs;

                // First wait until we can start using hipri
                Binder binder = new Binder();
                while(SystemClock.elapsedRealtime() < endTime) {
                    int ret = mCs.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE,
                            Phone.FEATURE_ENABLE_HIPRI, binder);
                    if ((ret == PhoneConstants.APN_ALREADY_ACTIVE)
                        || (ret == PhoneConstants.APN_REQUEST_STARTED)) {
                            log("isMobileOk: hipri started");
                            break;
                    }
                    if (VDBG) log("isMobileOk: hipri not started yet");
                    result = ConnectivityManager.CMP_RESULT_CODE_NO_CONNECTION;
                    sleep(1);
                }

                // Continue trying to connect until time has run out
                while(SystemClock.elapsedRealtime() < endTime) {
                    try {
                        // Wait for hipri to connect.
@@ -3745,8 +3760,10 @@ public class ConnectivityService extends IConnectivityManager.Stub {
                        NetworkInfo.State state = mCs
                                .getNetworkInfo(ConnectivityManager.TYPE_MOBILE_HIPRI).getState();
                        if (state != NetworkInfo.State.CONNECTED) {
                            if (VDBG) {
                                log("isMobileOk: not connected ni=" +
                                    mCs.getNetworkInfo(ConnectivityManager.TYPE_MOBILE_HIPRI));
                            }
                            sleep(1);
                            result = ConnectivityManager.CMP_RESULT_CODE_NO_CONNECTION;
                            continue;