Merge "Update networktype before sending state change." into gingerbread

This commit is contained in:
Robert Greenwalt
2011-01-27 10:17:33 -08:00
committed by Android (Google) Code Review
2 changed files with 10 additions and 8 deletions

View File

@@ -149,6 +149,11 @@ public class MobileDataStateTracker extends NetworkStateTracker {
ConnectivityManager mConnectivityManager;
public void onReceive(Context context, Intent intent) {
synchronized(this) {
// update state and roaming before we set the state - only state changes are
// noticed
TelephonyManager tm = TelephonyManager.getDefault();
setRoamingStatus(tm.isNetworkRoaming());
setSubtype(tm.getNetworkType(), tm.getNetworkTypeName());
if (intent.getAction().equals(TelephonyIntents.
ACTION_ANY_DATA_CONNECTION_STATE_CHANGED)) {
Phone.DataState state = getMobileDataState(intent);
@@ -254,9 +259,6 @@ public class MobileDataStateTracker extends NetworkStateTracker {
reason == null ? "" : "(" + reason + ")");
setDetailedState(DetailedState.FAILED, reason, apnName);
}
TelephonyManager tm = TelephonyManager.getDefault();
setRoamingStatus(tm.isNetworkRoaming());
setSubtype(tm.getNetworkType(), tm.getNetworkTypeName());
}
}
}

View File

@@ -302,7 +302,7 @@ public abstract class NetworkStateTracker extends Handler {
public boolean isTeardownRequested() {
return mTeardownRequested;
}
/**
* Send a notification that the results of a scan for network access
* points has completed, and results are available.
@@ -327,10 +327,10 @@ public abstract class NetworkStateTracker extends Handler {
}
protected void setSubtype(int subtype, String subtypeName) {
if (mNetworkInfo.isConnected()) {
int oldSubtype = mNetworkInfo.getSubtype();
if (subtype != oldSubtype) {
mNetworkInfo.setSubtype(subtype, subtypeName);
int oldSubtype = mNetworkInfo.getSubtype();
if (subtype != oldSubtype) {
mNetworkInfo.setSubtype(subtype, subtypeName);
if (mNetworkInfo.isConnected()) {
Message msg = mTarget.obtainMessage(
EVENT_NETWORK_SUBTYPE_CHANGED, oldSubtype, 0, mNetworkInfo);
msg.sendToTarget();