Move call-related SystemAPIs to TelecommManager. (2/3)
Bug: 15672803
Change-Id: I46e448fe93a9c5b4ae013e8b2fd6f0ce89b94e69
diff --git a/src/com/android/telecomm/CallsManager.java b/src/com/android/telecomm/CallsManager.java
index 26f627f..8ccc0e3 100644
--- a/src/com/android/telecomm/CallsManager.java
+++ b/src/com/android/telecomm/CallsManager.java
@@ -30,6 +30,9 @@
import com.google.common.collect.ImmutableCollection;
import com.google.common.collect.ImmutableList;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
@@ -588,22 +591,11 @@
}
boolean hasActiveOrHoldingCall() {
- for (Call call : mCalls) {
- CallState state = call.getState();
- if (state == CallState.ACTIVE || state == CallState.ON_HOLD) {
- return true;
- }
- }
- return false;
+ return getFirstCallWithState(CallState.ACTIVE, CallState.ON_HOLD) != null;
}
boolean hasRingingCall() {
- for (Call call : mCalls) {
- if (call.getState() == CallState.RINGING) {
- return true;
- }
- }
- return false;
+ return getFirstCallWithState(CallState.RINGING) != null;
}
boolean onMediaButton(int type) {
@@ -658,8 +650,13 @@
* priority order so that any call with the first state will be returned before any call with
* states listed later in the parameter list.
*/
- private Call getFirstCallWithState(CallState... states) {
+ Call getFirstCallWithState(CallState... states) {
for (CallState currentState : states) {
+ // check the foreground first
+ if (mForegroundCall != null && mForegroundCall.getState() == currentState) {
+ return mForegroundCall;
+ }
+
for (Call call : mCalls) {
if (currentState == call.getState()) {
return call;