summaryrefslogtreecommitdiff
path: root/services/java/com/android/server/ConnectivityService.java
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2009-12-14 16:15:03 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2009-12-14 16:15:03 -0800
commit74a76d5e071ba11eb92c92933fa5de338010374d (patch)
treec71ab22e555562f42bab98c564a426a83774d5f0 /services/java/com/android/server/ConnectivityService.java
parent96610668869cd1c8c614d0c0eab3b79218da7cd7 (diff)
parent83652ebfe1963bcecdcf24383165904223baca6e (diff)
am 83652ebf: am 3a3fd2ba: Merge change Iaf1f0918 into eclair-mr2
Merge commit '83652ebfe1963bcecdcf24383165904223baca6e' * commit '83652ebfe1963bcecdcf24383165904223baca6e': Implement API to have new broadcasts replace existing broadcasts.
Diffstat (limited to 'services/java/com/android/server/ConnectivityService.java')
-rw-r--r--services/java/com/android/server/ConnectivityService.java25
1 files changed, 11 insertions, 14 deletions
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index 9980be77bdb5..2981599dcd7e 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -98,7 +98,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
private List mFeatureUsers;
private boolean mSystemReady;
- private ArrayList<Intent> mDeferredBroadcasts;
+ private Intent mInitialBroadcast;
private static class NetworkAttributes {
/**
@@ -794,6 +794,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
}
Intent intent = new Intent(ConnectivityManager.CONNECTIVITY_ACTION);
+ intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
intent.putExtra(ConnectivityManager.EXTRA_NETWORK_INFO, info);
if (info.isFailover()) {
intent.putExtra(ConnectivityManager.EXTRA_IS_FAILOVER, true);
@@ -890,6 +891,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
private void sendConnectedBroadcast(NetworkInfo info) {
Intent intent = new Intent(ConnectivityManager.CONNECTIVITY_ACTION);
+ intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
intent.putExtra(ConnectivityManager.EXTRA_NETWORK_INFO, info);
if (info.isFailover()) {
intent.putExtra(ConnectivityManager.EXTRA_IS_FAILOVER, true);
@@ -927,6 +929,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
}
Intent intent = new Intent(ConnectivityManager.CONNECTIVITY_ACTION);
+ intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
intent.putExtra(ConnectivityManager.EXTRA_NETWORK_INFO, info);
if (getActiveNetworkInfo() == null) {
intent.putExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, true);
@@ -946,26 +949,20 @@ public class ConnectivityService extends IConnectivityManager.Stub {
private void sendStickyBroadcast(Intent intent) {
synchronized(this) {
- if (mSystemReady) {
- mContext.sendStickyBroadcast(intent);
- } else {
- if (mDeferredBroadcasts == null) {
- mDeferredBroadcasts = new ArrayList<Intent>();
- }
- mDeferredBroadcasts.add(intent);
+ if (!mSystemReady) {
+ mInitialBroadcast = new Intent(intent);
}
+ intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
+ mContext.sendStickyBroadcast(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;
+ if (mInitialBroadcast != null) {
+ mContext.sendStickyBroadcast(mInitialBroadcast);
+ mInitialBroadcast = null;
}
}
}