am 6548f395: Merge "Inet status bug fix" into gingerbread
Merge commit '6548f395a974d2a8dcefe29b3a498d1ca87d8aef' into gingerbread-plus-aosp * commit '6548f395a974d2a8dcefe29b3a498d1ca87d8aef': Inet status bug fix
This commit is contained in:
@@ -711,21 +711,20 @@ public class StatusBarPolicy {
|
||||
ConnectivityManager.EXTRA_NETWORK_INFO));
|
||||
int connectionStatus = intent.getIntExtra(ConnectivityManager.EXTRA_INET_CONDITION, 0);
|
||||
Slog.d(TAG, "got CONNECTIVITY_ACTION - info=" + info + ", status = " + connectionStatus);
|
||||
if (info.isConnected() == false) return;
|
||||
|
||||
int inetCondition = (connectionStatus > INET_CONDITION_THRESHOLD ? 1 : 0);
|
||||
|
||||
switch (info.getType()) {
|
||||
case ConnectivityManager.TYPE_MOBILE:
|
||||
if (info.isConnected()) {
|
||||
updateDataNetType(info.getSubtype(), connectionStatus);
|
||||
updateDataIcon();
|
||||
updateSignalStrength(); // apply any change in connectionStatus
|
||||
}
|
||||
mInetCondition = inetCondition;
|
||||
updateDataNetType(info.getSubtype());
|
||||
updateDataIcon();
|
||||
updateSignalStrength(); // apply any change in connectionStatus
|
||||
break;
|
||||
case ConnectivityManager.TYPE_WIFI:
|
||||
mInetCondition = inetCondition;
|
||||
if (info.isConnected()) {
|
||||
mIsWifiConnected = true;
|
||||
mInetCondition =
|
||||
(connectionStatus > INET_CONDITION_THRESHOLD ? 1 : 0);
|
||||
int iconId;
|
||||
if (mLastWifiSignalLevel == -1) {
|
||||
iconId = sWifiSignalImages[mInetCondition][0];
|
||||
@@ -738,7 +737,6 @@ public class StatusBarPolicy {
|
||||
} else {
|
||||
mLastWifiSignalLevel = -1;
|
||||
mIsWifiConnected = false;
|
||||
mInetCondition = 0;
|
||||
int iconId = sWifiSignalImages[0][0];
|
||||
|
||||
mService.setIcon("wifi", iconId, 0);
|
||||
@@ -777,9 +775,8 @@ public class StatusBarPolicy {
|
||||
@Override
|
||||
public void onDataConnectionStateChanged(int state, int networkType) {
|
||||
mDataState = state;
|
||||
updateDataNetType(networkType, 0);
|
||||
updateDataNetType(networkType);
|
||||
updateDataIcon();
|
||||
updateSignalStrength(); // apply the change in connection status
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -940,8 +937,7 @@ public class StatusBarPolicy {
|
||||
return (levelEvdoDbm < levelEvdoSnr) ? levelEvdoDbm : levelEvdoSnr;
|
||||
}
|
||||
|
||||
private final void updateDataNetType(int net, int inetCondition) {
|
||||
mInetCondition = (inetCondition > INET_CONDITION_THRESHOLD ? 1 : 0);
|
||||
private final void updateDataNetType(int net) {
|
||||
switch (net) {
|
||||
case TelephonyManager.NETWORK_TYPE_EDGE:
|
||||
mDataIconList = sDataNetType_e[mInetCondition];
|
||||
|
||||
@@ -951,11 +951,19 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
||||
newNet = tryFailover(prevNetType);
|
||||
if (newNet != null) {
|
||||
NetworkInfo switchTo = newNet.getNetworkInfo();
|
||||
if (!switchTo.isConnected()) {
|
||||
// if the other net is connected they've already reset this and perhaps even gotten
|
||||
// a positive report we don't want to overwrite, but if not we need to clear this now
|
||||
// to turn our cellular sig strength white
|
||||
mDefaultInetConditionPublished = 0;
|
||||
}
|
||||
intent.putExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO, switchTo);
|
||||
} else {
|
||||
mDefaultInetConditionPublished = 0; // we're not connected anymore
|
||||
intent.putExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, true);
|
||||
}
|
||||
}
|
||||
intent.putExtra(ConnectivityManager.EXTRA_INET_CONDITION, mDefaultInetConditionPublished);
|
||||
// do this before we broadcast the change
|
||||
handleConnectivityChange(prevNetType);
|
||||
|
||||
@@ -1114,12 +1122,20 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
||||
newNet = tryFailover(info.getType());
|
||||
if (newNet != null) {
|
||||
NetworkInfo switchTo = newNet.getNetworkInfo();
|
||||
if (!switchTo.isConnected()) {
|
||||
// if the other net is connected they've already reset this and perhaps even gotten
|
||||
// a positive report we don't want to overwrite, but if not we need to clear this now
|
||||
// to turn our cellular sig strength white
|
||||
mDefaultInetConditionPublished = 0;
|
||||
}
|
||||
intent.putExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO, switchTo);
|
||||
} else {
|
||||
mDefaultInetConditionPublished = 0;
|
||||
intent.putExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, true);
|
||||
}
|
||||
}
|
||||
|
||||
intent.putExtra(ConnectivityManager.EXTRA_INET_CONDITION, mDefaultInetConditionPublished);
|
||||
sendStickyBroadcast(intent);
|
||||
/*
|
||||
* If the failover network is already connected, then immediately send
|
||||
|
||||
Reference in New Issue
Block a user