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

Commit 4b1bdc02 authored by Robert Greenwalt's avatar Robert Greenwalt Committed by Android (Google) Code Review
Browse files

Merge "DO NOT MERGE Fixing Connectivity" into gingerbread

parents 39792d22 8afddad7
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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;
                        }
+15 −0
Original line number Diff line number Diff line
@@ -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;
    }
}
+11 −3
Original line number Diff line number Diff line
@@ -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;
@@ -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;
        }
@@ -372,7 +374,7 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
            }
        }
        broadcastDataConnectionStateChanged(state, isDataConnectivityPossible, reason, apn,
                apnTypes, interfaceName);
                apnTypes, interfaceName, gateway);
    }

    public void notifyDataConnectionFailed(String reason) {
@@ -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.
@@ -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);
    }

+2 −1
Original line number Diff line number Diff line
@@ -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
        }
+2 −1
Original line number Diff line number Diff line
@@ -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