Loading core/java/android/net/MobileDataStateTracker.java +29 −1 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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) { Loading Loading @@ -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. Loading Loading @@ -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 Loading Loading
core/java/android/net/MobileDataStateTracker.java +29 −1 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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) { Loading Loading @@ -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. Loading Loading @@ -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 Loading