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

Commit c737cf11 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge changes Ic933a355,I50efebe9 am: e49d3b90

parents 358e00b2 e49d3b90
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -2373,9 +2373,11 @@ public class DataNetwork extends StateMachine {
        mFailCause = getFailCauseFromDataCallResponse(resultCode, response);
        validateDataCallResponse(response);
        if (mFailCause == DataFailCause.NONE) {
            if (mDataNetworkController.isNetworkInterfaceExisting(response.getInterfaceName())) {
                logl("Interface " + response.getInterfaceName() + " already existing. Silently "
                        + "tear down now.");
            DataNetwork dataNetwork = mDataNetworkController.getDataNetworkByInterface(
                    response.getInterfaceName());
            if (dataNetwork != null) {
                logl("Interface " + response.getInterfaceName() + " has been already used by "
                        + dataNetwork + ". Silently tear down now.");
                // If this is a pre-5G data setup, that means APN database has some problems. For
                // example, different APN settings have the same APN name.
                if (response.getTrafficDescriptors().isEmpty()) {
+9 −6
Original line number Diff line number Diff line
@@ -2150,16 +2150,19 @@ public class DataNetworkController extends Handler {
    }

    /**
     * Check if there are existing networks having the same interface name.
     * Get data network by interface name.
     *
     * @param interfaceName The interface name to check.
     * @return {@code true} if the existing network has the same interface name.
     * @param interfaceName The network interface name.
     * @return The data network if found.
     */
    public boolean isNetworkInterfaceExisting(@NonNull String interfaceName) {
    @Nullable
    DataNetwork getDataNetworkByInterface(@NonNull String interfaceName) {
        return mDataNetworkList.stream()
                .filter(dataNetwork -> !dataNetwork.isDisconnecting())
                .anyMatch(dataNetwork -> interfaceName.equals(
                        dataNetwork.getLinkProperties().getInterfaceName()));
                .filter(dataNetwork -> interfaceName.equals(
                        dataNetwork.getLinkProperties().getInterfaceName()))
                .findFirst()
                .orElse(null);
    }

    /**