Loading core/java/android/net/MobileDataStateTracker.java +1 −0 Original line number Diff line number Diff line Loading @@ -240,6 +240,7 @@ public class MobileDataStateTracker extends NetworkStateTracker { if (mInterfaceName == null) { Log.d(TAG, "CONNECTED event did not supply interface name."); } mDefaultGatewayAddr = intent.getIntExtra(Phone.DATA_GATEWAY_KEY, 0); setDetailedState(DetailedState.CONNECTED, reason, apnName); break; } Loading core/java/android/net/NetworkUtils.java +15 −0 Original line number Diff line number Diff line Loading @@ -128,4 +128,19 @@ public class NetworkUtils { | (addrBytes[0] & 0xff); return addr; } public static int v4StringToInt(String str) { int result = 0; String[] array = str.split("\\."); if (array.length != 4) return 0; try { result = Integer.parseInt(array[3]); result = (result << 8) + Integer.parseInt(array[2]); result = (result << 8) + Integer.parseInt(array[1]); result = (result << 8) + Integer.parseInt(array[0]); } catch (NumberFormatException e) { return 0; } return result; } } services/java/com/android/server/TelephonyRegistry.java +11 −3 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.server; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.net.NetworkUtils; import android.os.Binder; import android.os.Bundle; import android.os.IBinder; Loading Loading @@ -348,7 +349,8 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub { } public void notifyDataConnection(int state, boolean isDataConnectivityPossible, String reason, String apn, String[] apnTypes, String interfaceName, int networkType) { String reason, String apn, String[] apnTypes, String interfaceName, int networkType, String gateway) { if (!checkNotifyPermission("notifyDataConnection()" )) { return; } Loading @@ -372,7 +374,7 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub { } } broadcastDataConnectionStateChanged(state, isDataConnectivityPossible, reason, apn, apnTypes, interfaceName); apnTypes, interfaceName, gateway); } public void notifyDataConnectionFailed(String reason) { Loading Loading @@ -535,7 +537,7 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub { private void broadcastDataConnectionStateChanged(int state, boolean isDataConnectivityPossible, String reason, String apn, String[] apnTypes, String interfaceName) { String reason, String apn, String[] apnTypes, String interfaceName, String gateway) { // Note: not reporting to the battery stats service here, because the // status bar takes care of that after taking into account all of the // required info. Loading @@ -558,6 +560,12 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub { } intent.putExtra(Phone.DATA_APN_TYPES_KEY, types); intent.putExtra(Phone.DATA_IFACE_NAME_KEY, interfaceName); int gatewayAddr = 0; if (gateway != null) { gatewayAddr = NetworkUtils.v4StringToInt(gateway); } intent.putExtra(Phone.DATA_GATEWAY_KEY, gatewayAddr); mContext.sendStickyBroadcast(intent); } Loading telephony/java/com/android/internal/telephony/DefaultPhoneNotifier.java +2 −1 Original line number Diff line number Diff line Loading @@ -102,7 +102,8 @@ public class DefaultPhoneNotifier implements PhoneNotifier { sender.getActiveApnTypes(), sender.getInterfaceName(null), ((telephony!=null) ? telephony.getNetworkType() : TelephonyManager.NETWORK_TYPE_UNKNOWN)); TelephonyManager.NETWORK_TYPE_UNKNOWN), sender.getGateway(null)); } catch (RemoteException ex) { // system process is dead } Loading telephony/java/com/android/internal/telephony/ITelephonyRegistry.aidl +2 −1 Original line number Diff line number Diff line Loading @@ -32,7 +32,8 @@ interface ITelephonyRegistry { void notifyCallForwardingChanged(boolean cfi); void notifyDataActivity(int state); void notifyDataConnection(int state, boolean isDataConnectivityPossible, String reason, String apn, in String[] apnTypes, String interfaceName, int networkType); String reason, String apn, in String[] apnTypes, String interfaceName, int networkType, String gateway); void notifyDataConnectionFailed(String reason); void notifyCellLocation(in Bundle cellLocation); } Loading
core/java/android/net/MobileDataStateTracker.java +1 −0 Original line number Diff line number Diff line Loading @@ -240,6 +240,7 @@ public class MobileDataStateTracker extends NetworkStateTracker { if (mInterfaceName == null) { Log.d(TAG, "CONNECTED event did not supply interface name."); } mDefaultGatewayAddr = intent.getIntExtra(Phone.DATA_GATEWAY_KEY, 0); setDetailedState(DetailedState.CONNECTED, reason, apnName); break; } Loading
core/java/android/net/NetworkUtils.java +15 −0 Original line number Diff line number Diff line Loading @@ -128,4 +128,19 @@ public class NetworkUtils { | (addrBytes[0] & 0xff); return addr; } public static int v4StringToInt(String str) { int result = 0; String[] array = str.split("\\."); if (array.length != 4) return 0; try { result = Integer.parseInt(array[3]); result = (result << 8) + Integer.parseInt(array[2]); result = (result << 8) + Integer.parseInt(array[1]); result = (result << 8) + Integer.parseInt(array[0]); } catch (NumberFormatException e) { return 0; } return result; } }
services/java/com/android/server/TelephonyRegistry.java +11 −3 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.server; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.net.NetworkUtils; import android.os.Binder; import android.os.Bundle; import android.os.IBinder; Loading Loading @@ -348,7 +349,8 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub { } public void notifyDataConnection(int state, boolean isDataConnectivityPossible, String reason, String apn, String[] apnTypes, String interfaceName, int networkType) { String reason, String apn, String[] apnTypes, String interfaceName, int networkType, String gateway) { if (!checkNotifyPermission("notifyDataConnection()" )) { return; } Loading @@ -372,7 +374,7 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub { } } broadcastDataConnectionStateChanged(state, isDataConnectivityPossible, reason, apn, apnTypes, interfaceName); apnTypes, interfaceName, gateway); } public void notifyDataConnectionFailed(String reason) { Loading Loading @@ -535,7 +537,7 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub { private void broadcastDataConnectionStateChanged(int state, boolean isDataConnectivityPossible, String reason, String apn, String[] apnTypes, String interfaceName) { String reason, String apn, String[] apnTypes, String interfaceName, String gateway) { // Note: not reporting to the battery stats service here, because the // status bar takes care of that after taking into account all of the // required info. Loading @@ -558,6 +560,12 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub { } intent.putExtra(Phone.DATA_APN_TYPES_KEY, types); intent.putExtra(Phone.DATA_IFACE_NAME_KEY, interfaceName); int gatewayAddr = 0; if (gateway != null) { gatewayAddr = NetworkUtils.v4StringToInt(gateway); } intent.putExtra(Phone.DATA_GATEWAY_KEY, gatewayAddr); mContext.sendStickyBroadcast(intent); } Loading
telephony/java/com/android/internal/telephony/DefaultPhoneNotifier.java +2 −1 Original line number Diff line number Diff line Loading @@ -102,7 +102,8 @@ public class DefaultPhoneNotifier implements PhoneNotifier { sender.getActiveApnTypes(), sender.getInterfaceName(null), ((telephony!=null) ? telephony.getNetworkType() : TelephonyManager.NETWORK_TYPE_UNKNOWN)); TelephonyManager.NETWORK_TYPE_UNKNOWN), sender.getGateway(null)); } catch (RemoteException ex) { // system process is dead } Loading
telephony/java/com/android/internal/telephony/ITelephonyRegistry.aidl +2 −1 Original line number Diff line number Diff line Loading @@ -32,7 +32,8 @@ interface ITelephonyRegistry { void notifyCallForwardingChanged(boolean cfi); void notifyDataActivity(int state); void notifyDataConnection(int state, boolean isDataConnectivityPossible, String reason, String apn, in String[] apnTypes, String interfaceName, int networkType); String reason, String apn, in String[] apnTypes, String interfaceName, int networkType, String gateway); void notifyDataConnectionFailed(String reason); void notifyCellLocation(in Bundle cellLocation); }