Disconnect all connections if telecomm unbinds to the service.

Bug: 1748658
Change-Id: I7bd3d6f28b7fa25f2ee0b308b5dc16d70d67949f
This commit is contained in:
Santos Cordon
2014-09-11 19:50:24 -07:00
parent 5f5df97df9
commit 29f2f2e56a

View File

@@ -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();
}
}
}