diff options
author | Robert Greenwalt <rgreenwalt@google.com> | 2011-09-09 15:51:22 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-09-09 15:51:22 -0700 |
commit | 2f835a6193c14e27cf761d85ac3ea4c9bd9296f8 (patch) | |
tree | 1d665732df8924c7b1e7b4ccbd3ccbe3b0727d5a | |
parent | b1a3f0ca4b23b882fc1a5e83eaa412c0ed76696f (diff) | |
parent | 6aecb98a627daa3f66c060ca5177a075e4e9bcca (diff) | |
download | frameworks_base-2f835a6193c14e27cf761d85ac3ea4c9bd9296f8.zip frameworks_base-2f835a6193c14e27cf761d85ac3ea4c9bd9296f8.tar.gz frameworks_base-2f835a6193c14e27cf761d85ac3ea4c9bd9296f8.tar.bz2 |
Merge "Make copies of NetworkInfo to give out." into honeycomb-LTE
-rw-r--r-- | core/java/android/net/MobileDataStateTracker.java | 2 | ||||
-rw-r--r-- | core/java/android/net/NetworkInfo.java | 17 | ||||
-rw-r--r-- | wifi/java/android/net/wifi/WifiStateTracker.java | 5 |
3 files changed, 21 insertions, 3 deletions
diff --git a/core/java/android/net/MobileDataStateTracker.java b/core/java/android/net/MobileDataStateTracker.java index f3c863f..76c97d7 100644 --- a/core/java/android/net/MobileDataStateTracker.java +++ b/core/java/android/net/MobileDataStateTracker.java @@ -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(); } } diff --git a/core/java/android/net/NetworkInfo.java b/core/java/android/net/NetworkInfo.java index 5f5e11c..65a11cc 100644 --- a/core/java/android/net/NetworkInfo.java +++ b/core/java/android/net/NetworkInfo.java @@ -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. diff --git a/wifi/java/android/net/wifi/WifiStateTracker.java b/wifi/java/android/net/wifi/WifiStateTracker.java index 338cb4d..33c02e1 100644 --- a/wifi/java/android/net/wifi/WifiStateTracker.java +++ b/wifi/java/android/net/wifi/WifiStateTracker.java @@ -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( |