Work in preparation for wiring up the remaining de-allocation and
abort bits.
1) limit to one attempt per call service upon multiple selectors
returning the same call service
2) record the failing/incompatible ones such that these are avoided
when switching
3) addressing some related todos etc.
Change-Id: I62204e9947bb8557888df33ca70f4352d3e6decf
diff --git a/src/com/android/telecomm/OutgoingCallsManager.java b/src/com/android/telecomm/OutgoingCallsManager.java
index 0ed30e6..c37665f 100644
--- a/src/com/android/telecomm/OutgoingCallsManager.java
+++ b/src/com/android/telecomm/OutgoingCallsManager.java
@@ -69,6 +69,24 @@
}
/**
+ * Forwards the compatibility status from the call-service implementation to the corresponding
+ * outgoing-call processor.
+ *
+ * @param callId The ID of the call.
+ * @param isCompatible True if the call-service is compatible with the corresponding call and
+ * false otherwise.
+ */
+ void setCompatibleWith(String callId, boolean isCompatible) {
+ OutgoingCallProcessor processor = mOutgoingCallProcessors.get(callId);
+ if (processor == null) {
+ // Shouldn't happen, so log a wtf if it does.
+ Log.wtf(this, "Received unexpected setCompatibleWith notification.");
+ } else {
+ processor.setCompatibleWith(callId, isCompatible);
+ }
+ }
+
+ /**
* Removes the outgoing call processor mapping for the successful call and returns execution to
* the switchboard. This method is invoked from {@link CallServiceAdapter} after a call service
* has notified Telecomm that it successfully placed the call.