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

Commit 29f2f2e5 authored by Santos Cordon's avatar Santos Cordon
Browse files

Disconnect all connections if telecomm unbinds to the service.

Bug: 1748658
Change-Id: I7bd3d6f28b7fa25f2ee0b308b5dc16d70d67949f
parent 5f5df97d
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -507,6 +507,13 @@ public abstract class ConnectionService extends Service {
        return mBinder;
    }

    /** {@inheritDoc} */
    @Override
    public boolean onUnbind(Intent intent) {
        endAllConnections();
        return super.onUnbind(intent);
    }

    /**
     * This can be used by telecomm to either create a new outgoing call or attach to an existing
     * incoming call. In either case, telecomm will cycle through a set of services and call
@@ -965,4 +972,17 @@ public abstract class ConnectionService extends Service {
        }
        return sNullConference;
    }

    private void endAllConnections() {
        // Unbound from telecomm.  We should end all connections and conferences.
        for (Connection connection : mIdByConnection.keySet()) {
            // only operate on top-level calls. Conference calls will be removed on their own.
            if (connection.getConference() == null) {
                connection.onDisconnect();
            }
        }
        for (Conference conference : mIdByConference.keySet()) {
            conference.onDisconnect();
        }
    }
}