am 112c980a: am 3a3fd2ba: Merge change Iaf1f0918 into eclair-mr2
Merge commit '112c980a3d3fd8873dbc44006436aff80535808e' * commit '112c980a3d3fd8873dbc44006436aff80535808e': Implement API to have new broadcasts replace existing broadcasts.
This commit is contained in:
@@ -98,7 +98,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
|||||||
private List mFeatureUsers;
|
private List mFeatureUsers;
|
||||||
|
|
||||||
private boolean mSystemReady;
|
private boolean mSystemReady;
|
||||||
private ArrayList<Intent> mDeferredBroadcasts;
|
private Intent mInitialBroadcast;
|
||||||
|
|
||||||
private static class NetworkAttributes {
|
private static class NetworkAttributes {
|
||||||
/**
|
/**
|
||||||
@@ -794,6 +794,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Intent intent = new Intent(ConnectivityManager.CONNECTIVITY_ACTION);
|
Intent intent = new Intent(ConnectivityManager.CONNECTIVITY_ACTION);
|
||||||
|
intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
|
||||||
intent.putExtra(ConnectivityManager.EXTRA_NETWORK_INFO, info);
|
intent.putExtra(ConnectivityManager.EXTRA_NETWORK_INFO, info);
|
||||||
if (info.isFailover()) {
|
if (info.isFailover()) {
|
||||||
intent.putExtra(ConnectivityManager.EXTRA_IS_FAILOVER, true);
|
intent.putExtra(ConnectivityManager.EXTRA_IS_FAILOVER, true);
|
||||||
@@ -890,6 +891,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
|||||||
|
|
||||||
private void sendConnectedBroadcast(NetworkInfo info) {
|
private void sendConnectedBroadcast(NetworkInfo info) {
|
||||||
Intent intent = new Intent(ConnectivityManager.CONNECTIVITY_ACTION);
|
Intent intent = new Intent(ConnectivityManager.CONNECTIVITY_ACTION);
|
||||||
|
intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
|
||||||
intent.putExtra(ConnectivityManager.EXTRA_NETWORK_INFO, info);
|
intent.putExtra(ConnectivityManager.EXTRA_NETWORK_INFO, info);
|
||||||
if (info.isFailover()) {
|
if (info.isFailover()) {
|
||||||
intent.putExtra(ConnectivityManager.EXTRA_IS_FAILOVER, true);
|
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 intent = new Intent(ConnectivityManager.CONNECTIVITY_ACTION);
|
||||||
|
intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
|
||||||
intent.putExtra(ConnectivityManager.EXTRA_NETWORK_INFO, info);
|
intent.putExtra(ConnectivityManager.EXTRA_NETWORK_INFO, info);
|
||||||
if (getActiveNetworkInfo() == null) {
|
if (getActiveNetworkInfo() == null) {
|
||||||
intent.putExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, true);
|
intent.putExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, true);
|
||||||
@@ -946,26 +949,20 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
|||||||
|
|
||||||
private void sendStickyBroadcast(Intent intent) {
|
private void sendStickyBroadcast(Intent intent) {
|
||||||
synchronized(this) {
|
synchronized(this) {
|
||||||
if (mSystemReady) {
|
if (!mSystemReady) {
|
||||||
mContext.sendStickyBroadcast(intent);
|
mInitialBroadcast = new Intent(intent);
|
||||||
} else {
|
|
||||||
if (mDeferredBroadcasts == null) {
|
|
||||||
mDeferredBroadcasts = new ArrayList<Intent>();
|
|
||||||
}
|
|
||||||
mDeferredBroadcasts.add(intent);
|
|
||||||
}
|
}
|
||||||
|
intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
|
||||||
|
mContext.sendStickyBroadcast(intent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void systemReady() {
|
void systemReady() {
|
||||||
synchronized(this) {
|
synchronized(this) {
|
||||||
mSystemReady = true;
|
mSystemReady = true;
|
||||||
if (mDeferredBroadcasts != null) {
|
if (mInitialBroadcast != null) {
|
||||||
int count = mDeferredBroadcasts.size();
|
mContext.sendStickyBroadcast(mInitialBroadcast);
|
||||||
for (int i = 0; i < count; i++) {
|
mInitialBroadcast = null;
|
||||||
mContext.sendStickyBroadcast(mDeferredBroadcasts.get(i));
|
|
||||||
}
|
|
||||||
mDeferredBroadcasts = null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user