Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7944ef8b authored by Robert Greenwalt's avatar Robert Greenwalt Committed by The Android Automerger
Browse files

Make copies of NetworkInfo to give out.

Otherwise we'll change it out from under those we've given it too.
bug:5233462

Change-Id: Iffc886849edfa6ced3da1133f9d363e11b2733f8
parent 6e21183e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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();
        }
    }
+17 −0
Original line number Diff line number Diff line
@@ -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.
+3 −2
Original line number Diff line number Diff line
@@ -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(