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

Commit 46001391 authored by Robert Greenwalt's avatar Robert Greenwalt Committed by Android Git Automerger
Browse files

am 6b2c56a2: Merge "DO NOT MERGE Do not kill sockets going default->hipri" into gingerbread

Merge commit '6b2c56a2' into gingerbread-plus-aosp

* commit '6b2c56a2':
  DO NOT MERGE Do not kill sockets going default->hipri
parents cf2c68c9 6b2c56a2
Loading
Loading
Loading
Loading
+29 −1
Original line number Diff line number Diff line
@@ -53,6 +53,10 @@ public class MobileDataStateTracker extends NetworkStateTracker {
    private boolean mEnabled;
    private BroadcastReceiver mStateReceiver;

    // DEFAULT and HIPRI are the same connection.  If we're one of these we need to check if
    // the other is also disconnected before we reset sockets
    private boolean mIsDefaultOrHipri = false;

    /**
     * Create a new MobileDataStateTracker
     * @param context the application context of the caller
@@ -71,6 +75,10 @@ public class MobileDataStateTracker extends NetworkStateTracker {
        } else {
            mApnTypeToWatchFor = mApnType;
        }
        if (netType == ConnectivityManager.TYPE_MOBILE ||
                netType == ConnectivityManager.TYPE_MOBILE_HIPRI) {
            mIsDefaultOrHipri = true;
        }

        mPhoneService = null;
        if(netType == ConnectivityManager.TYPE_MOBILE) {
@@ -138,6 +146,7 @@ public class MobileDataStateTracker extends NetworkStateTracker {
    }

    private class MobileDataStateReceiver extends BroadcastReceiver {
        ConnectivityManager mConnectivityManager;
        public void onReceive(Context context, Intent intent) {
            synchronized(this) {
                if (intent.getAction().equals(TelephonyIntents.
@@ -190,7 +199,26 @@ public class MobileDataStateTracker extends NetworkStateTracker {
                                }

                                setDetailedState(DetailedState.DISCONNECTED, reason, apnName);
                                if (mInterfaceName != null) {
                                boolean doReset = true;
                                if (mIsDefaultOrHipri == true) {
                                    // both default and hipri must go down before we reset
                                    int typeToCheck = (Phone.APN_TYPE_DEFAULT.equals(mApnType) ?
                                            ConnectivityManager.TYPE_MOBILE_HIPRI :
                                            ConnectivityManager.TYPE_MOBILE);
                                    if (mConnectivityManager == null) {
                                        mConnectivityManager =
                                                (ConnectivityManager)context.getSystemService(
                                                Context.CONNECTIVITY_SERVICE);
                                    }
                                    if (mConnectivityManager != null) {
                                        NetworkInfo info = mConnectivityManager.getNetworkInfo(
                                                    typeToCheck);
                                        if (info != null && info.isConnected() == true) {
                                            doReset = false;
                                        }
                                    }
                                }
                                if (doReset && mInterfaceName != null) {
                                    NetworkUtils.resetConnections(mInterfaceName);
                                }
                                // can't do this here - ConnectivityService needs it to clear stuff