Merge "Make copies of NetworkInfo to give out." into honeycomb-LTE

This commit is contained in:
Robert Greenwalt
2011-09-09 15:51:22 -07:00
committed by Android (Google) Code Review
3 changed files with 21 additions and 3 deletions

View File

@ -386,7 +386,7 @@ public class MobileDataStateTracker implements NetworkStateTracker {
&& lastReason != null)
reason = lastReason;
mNetworkInfo.setDetailedState(state, reason, extraInfo);
Message msg = mTarget.obtainMessage(EVENT_STATE_CHANGED, mNetworkInfo);
Message msg = mTarget.obtainMessage(EVENT_STATE_CHANGED, new NetworkInfo(mNetworkInfo));
msg.sendToTarget();
}
}

View File

@ -138,6 +138,23 @@ public class NetworkInfo implements Parcelable {
mIsRoaming = false;
}
/** {@hide} */
public NetworkInfo(NetworkInfo source) {
if (source != null) {
mNetworkType = source.mNetworkType;
mSubtype = source.mSubtype;
mTypeName = source.mTypeName;
mSubtypeName = source.mSubtypeName;
mState = source.mState;
mDetailedState = source.mDetailedState;
mReason = source.mReason;
mExtraInfo = source.mExtraInfo;
mIsFailover = source.mIsFailover;
mIsRoaming = source.mIsRoaming;
mIsAvailable = source.mIsAvailable;
}
}
/**
* Reports the type of network (currently mobile or Wi-Fi) to which the
* info in this object pertains.

View File

@ -160,7 +160,7 @@ public class WifiStateTracker implements NetworkStateTracker {
* Fetch NetworkInfo for the network
*/
public NetworkInfo getNetworkInfo() {
return mNetworkInfo;
return new NetworkInfo(mNetworkInfo);
}
/**
@ -226,7 +226,8 @@ public class WifiStateTracker implements NetworkStateTracker {
} else {
mLastState = state;
}
Message msg = mCsHandler.obtainMessage(EVENT_STATE_CHANGED, mNetworkInfo);
Message msg = mCsHandler.obtainMessage(EVENT_STATE_CHANGED,
new NetworkInfo(mNetworkInfo));
msg.sendToTarget();
} else if (intent.getAction().equals(WifiManager.LINK_CONFIGURATION_CHANGED_ACTION)) {
mLinkProperties = (LinkProperties) intent.getParcelableExtra(