Loading services/java/com/android/server/ConnectivityService.java +32 −3 Original line number Diff line number Diff line Loading @@ -100,6 +100,9 @@ public class ConnectivityService extends IConnectivityManager.Stub { // a process dies private List mFeatureUsers; private boolean mSystemReady; private ArrayList<Intent> mDeferredBroadcasts; private class NetworkAttributes { /** * Class for holding settings read from resources. Loading Loading @@ -820,7 +823,7 @@ public class ConnectivityService extends IConnectivityManager.Stub { (newNet == null || !newNet.isAvailable() ? "" : " other=" + newNet.getNetworkInfo().getTypeName())); mContext.sendStickyBroadcast(intent); sendStickyBroadcast(intent); /* * If the failover network is already connected, then immediately send * out a followup broadcast indicating successful failover Loading @@ -843,7 +846,7 @@ public class ConnectivityService extends IConnectivityManager.Stub { intent.putExtra(ConnectivityManager.EXTRA_EXTRA_INFO, info.getExtraInfo()); } mContext.sendStickyBroadcast(intent); sendStickyBroadcast(intent); } /** Loading Loading @@ -882,7 +885,33 @@ public class ConnectivityService extends IConnectivityManager.Stub { intent.putExtra(ConnectivityManager.EXTRA_IS_FAILOVER, true); info.setFailover(false); } sendStickyBroadcast(intent); } private void sendStickyBroadcast(Intent intent) { synchronized(this) { if (mSystemReady) { mContext.sendStickyBroadcast(intent); } else { if (mDeferredBroadcasts == null) { mDeferredBroadcasts = new ArrayList<Intent>(); } mDeferredBroadcasts.add(intent); } } } void systemReady() { synchronized(this) { mSystemReady = true; if (mDeferredBroadcasts != null) { int count = mDeferredBroadcasts.size(); for (int i = 0; i < count; i++) { mContext.sendStickyBroadcast(mDeferredBroadcasts.get(i)); } mDeferredBroadcasts = null; } } } private void handleConnect(NetworkInfo info) { Loading services/java/com/android/server/SystemServer.java +5 −3 Original line number Diff line number Diff line Loading @@ -85,6 +85,7 @@ class ServerThread extends Thread { HardwareService hardware = null; PowerManagerService power = null; BatteryService battery = null; ConnectivityService connectivity = null; IPackageManager pm = null; Context context = null; WindowManagerService wm = null; Loading Loading @@ -231,8 +232,8 @@ class ServerThread extends Thread { try { Log.i(TAG, "Starting Connectivity Service."); ServiceManager.addService(Context.CONNECTIVITY_SERVICE, ConnectivityService.getInstance(context)); connectivity = ConnectivityService.getInstance(context); ServiceManager.addService(Context.CONNECTIVITY_SERVICE, connectivity); } catch (Throwable e) { Log.e(TAG, "Failure starting Connectivity Service", e); } Loading Loading @@ -384,7 +385,8 @@ class ServerThread extends Thread { } if (wallpaper != null) wallpaper.systemReady(); battery.systemReady(); if (battery != null) battery.systemReady(); if (connectivity != null) connectivity.systemReady(); Watchdog.getInstance().start(); Looper.loop(); Loading Loading
services/java/com/android/server/ConnectivityService.java +32 −3 Original line number Diff line number Diff line Loading @@ -100,6 +100,9 @@ public class ConnectivityService extends IConnectivityManager.Stub { // a process dies private List mFeatureUsers; private boolean mSystemReady; private ArrayList<Intent> mDeferredBroadcasts; private class NetworkAttributes { /** * Class for holding settings read from resources. Loading Loading @@ -820,7 +823,7 @@ public class ConnectivityService extends IConnectivityManager.Stub { (newNet == null || !newNet.isAvailable() ? "" : " other=" + newNet.getNetworkInfo().getTypeName())); mContext.sendStickyBroadcast(intent); sendStickyBroadcast(intent); /* * If the failover network is already connected, then immediately send * out a followup broadcast indicating successful failover Loading @@ -843,7 +846,7 @@ public class ConnectivityService extends IConnectivityManager.Stub { intent.putExtra(ConnectivityManager.EXTRA_EXTRA_INFO, info.getExtraInfo()); } mContext.sendStickyBroadcast(intent); sendStickyBroadcast(intent); } /** Loading Loading @@ -882,7 +885,33 @@ public class ConnectivityService extends IConnectivityManager.Stub { intent.putExtra(ConnectivityManager.EXTRA_IS_FAILOVER, true); info.setFailover(false); } sendStickyBroadcast(intent); } private void sendStickyBroadcast(Intent intent) { synchronized(this) { if (mSystemReady) { mContext.sendStickyBroadcast(intent); } else { if (mDeferredBroadcasts == null) { mDeferredBroadcasts = new ArrayList<Intent>(); } mDeferredBroadcasts.add(intent); } } } void systemReady() { synchronized(this) { mSystemReady = true; if (mDeferredBroadcasts != null) { int count = mDeferredBroadcasts.size(); for (int i = 0; i < count; i++) { mContext.sendStickyBroadcast(mDeferredBroadcasts.get(i)); } mDeferredBroadcasts = null; } } } private void handleConnect(NetworkInfo info) { Loading
services/java/com/android/server/SystemServer.java +5 −3 Original line number Diff line number Diff line Loading @@ -85,6 +85,7 @@ class ServerThread extends Thread { HardwareService hardware = null; PowerManagerService power = null; BatteryService battery = null; ConnectivityService connectivity = null; IPackageManager pm = null; Context context = null; WindowManagerService wm = null; Loading Loading @@ -231,8 +232,8 @@ class ServerThread extends Thread { try { Log.i(TAG, "Starting Connectivity Service."); ServiceManager.addService(Context.CONNECTIVITY_SERVICE, ConnectivityService.getInstance(context)); connectivity = ConnectivityService.getInstance(context); ServiceManager.addService(Context.CONNECTIVITY_SERVICE, connectivity); } catch (Throwable e) { Log.e(TAG, "Failure starting Connectivity Service", e); } Loading Loading @@ -384,7 +385,8 @@ class ServerThread extends Thread { } if (wallpaper != null) wallpaper.systemReady(); battery.systemReady(); if (battery != null) battery.systemReady(); if (connectivity != null) connectivity.systemReady(); Watchdog.getInstance().start(); Looper.loop(); Loading