Merge "Allow reject request in ANSWERED state"
diff --git a/src/com/android/server/telecom/Call.java b/src/com/android/server/telecom/Call.java
index fb4f58d..ffcdca9 100644
--- a/src/com/android/server/telecom/Call.java
+++ b/src/com/android/server/telecom/Call.java
@@ -2450,7 +2450,7 @@
"reject call failed due to null CS callId=%s", getId());
}
Log.addEvent(this, LogUtils.Events.REQUEST_REJECT, reason);
- } else if (isRinging("reject")) {
+ } else if (isRinging("reject") || isAnswered("reject")) {
// Ensure video state history tracks video state at time of rejection.
mVideoStateHistory |= mVideoState;
@@ -2482,7 +2482,7 @@
"reject call failed due to null CS callId=%s", getId());
}
Log.addEvent(this, LogUtils.Events.REQUEST_REJECT);
- } else if (isRinging("reject")) {
+ } else if (isRinging("reject") || isAnswered("reject")) {
// Ensure video state history tracks video state at time of rejection.
mVideoStateHistory |= mVideoState;
@@ -3163,6 +3163,18 @@
return false;
}
+ /**
+ * @return True if the call is answered, else logs the action name.
+ */
+ private boolean isAnswered(String actionName) {
+ if (mState == CallState.ANSWERED) {
+ return true;
+ }
+
+ Log.i(this, "Request to %s a non-answered call %s", actionName, this);
+ return false;
+ }
+
@SuppressWarnings("rawtypes")
private void decrementAssociatedCallCount(ServiceBinder binder) {
if (binder != null) {