diff --git a/telephony/java/com/android/internal/telephony/CallManager.java b/telephony/java/com/android/internal/telephony/CallManager.java index 8bd789ca8b182..83496dca8763a 100644 --- a/telephony/java/com/android/internal/telephony/CallManager.java +++ b/telephony/java/com/android/internal/telephony/CallManager.java @@ -197,10 +197,12 @@ public final class CallManager { Phone.State s = Phone.State.IDLE; for (Phone phone : mPhones) { - if (phone.getState() == Phone.State.RINGING) { - return Phone.State.RINGING; + if (phone.getState() == Phone.State.ANSWERING) { + return Phone.State.ANSWERING; + } else if (phone.getState() == Phone.State.RINGING) { + s = Phone.State.RINGING; } else if (phone.getState() == Phone.State.OFFHOOK) { - s = Phone.State.OFFHOOK; + if (s == Phone.State.IDLE) s = Phone.State.OFFHOOK; } } return s; @@ -289,6 +291,18 @@ public final class CallManager { return getFirstActiveRingingCall().getPhone(); } + /** + * @return the first answering call + */ + public Call getFirstAnsweringCall() { + for (Phone phone : mPhones) { + if (phone.getState() == Phone.State.ANSWERING) { + return phone.getForegroundCall(); + } + } + return null; + } + /** * unregister phone from CallManager * @param phone diff --git a/telephony/java/com/android/internal/telephony/Phone.java b/telephony/java/com/android/internal/telephony/Phone.java index 9afade33b006c..7464cc74ac3b1 100644 --- a/telephony/java/com/android/internal/telephony/Phone.java +++ b/telephony/java/com/android/internal/telephony/Phone.java @@ -55,10 +55,12 @@ public interface Phone { *