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

Commit 044b7bf7 authored by Jack Yu's avatar Jack Yu Committed by Automerger Merge Worker
Browse files

Fixed dangling network agent not cleaned up am: ec05e7f2

Change-Id: Idb573e2bf3927aafe94d76f8e8e21d8a6b8eed93
parents d8c4f221 ec05e7f2
Loading
Loading
Loading
Loading
+3 −5
Original line number Original line Diff line number Diff line
@@ -1859,10 +1859,8 @@ public class DataConnection extends StateMachine {
                            DataConnection.this, mTransportType);
                            DataConnection.this, mTransportType);
                    NetworkInfo networkInfo = mHandoverSourceNetworkAgent.getNetworkInfo();
                    NetworkInfo networkInfo = mHandoverSourceNetworkAgent.getNetworkInfo();
                    if (networkInfo != null) {
                    if (networkInfo != null) {
                        networkInfo.setDetailedState(NetworkInfo.DetailedState.DISCONNECTED,
                        log("Cleared dangling network agent. " + mHandoverSourceNetworkAgent);
                                "dangling clean up", networkInfo.getExtraInfo());
                        mHandoverSourceNetworkAgent.unregister(DataConnection.this);
                        mHandoverSourceNetworkAgent.sendNetworkInfo(networkInfo,
                                DataConnection.this);
                    } else {
                    } else {
                        String str = "Failed to get network info.";
                        String str = "Failed to get network info.";
                        loge(str);
                        loge(str);
+17 −6
Original line number Original line Diff line number Diff line
@@ -269,6 +269,22 @@ public class DcNetworkAgent extends NetworkAgent {
        sendNetworkScore(score);
        sendNetworkScore(score);
    }
    }


    /**
     * Unregister the network agent from connectivity service.
     *
     * @param dc The data connection that invokes this method.
     */
    public synchronized void unregister(DataConnection dc) {
        if (!isOwned(dc, "unregister")) return;

        if (dc.getLinkProperties() != null
                && !TextUtils.isEmpty(dc.getLinkProperties().getInterfaceName())) {
            sInterfaceNames.remove(dc.getLinkProperties().getInterfaceName());
        }
        logd("Unregister from connectivity service");
        super.unregister();
    }

    /**
    /**
     * Set the network info.
     * Set the network info.
     *
     *
@@ -288,12 +304,7 @@ public class DcNetworkAgent extends NetworkAgent {
        }
        }
        if ((oldState == NetworkInfo.State.SUSPENDED || oldState == NetworkInfo.State.CONNECTED)
        if ((oldState == NetworkInfo.State.SUSPENDED || oldState == NetworkInfo.State.CONNECTED)
                && state == NetworkInfo.State.DISCONNECTED) {
                && state == NetworkInfo.State.DISCONNECTED) {
            if (dc.getLinkProperties() != null
            unregister(dc);
                    && !TextUtils.isEmpty(dc.getLinkProperties().getInterfaceName())) {
                sInterfaceNames.remove(dc.getLinkProperties().getInterfaceName());
            }
            logd("Unregister from connectivity service");
            unregister();
        }
        }
        mNetworkInfo = new NetworkInfo(networkInfo);
        mNetworkInfo = new NetworkInfo(networkInfo);
    }
    }