Log missed call for call received during ringing
bug: b/171255499
Test: Receive an incoming call while another incoming call is ringing
Second call should be logged as a missed call
Change-Id: Ief3ee011c2722a63b24d576b316b640c9c9d95b3
diff --git a/src/com/android/services/telephony/PstnIncomingCallNotifier.java b/src/com/android/services/telephony/PstnIncomingCallNotifier.java
index 1c1725f..76898bd 100644
--- a/src/com/android/services/telephony/PstnIncomingCallNotifier.java
+++ b/src/com/android/services/telephony/PstnIncomingCallNotifier.java
@@ -282,7 +282,7 @@
}
if (((ImsPhoneConnection) connection).isIncomingCallAutoRejected()) {
extras.putString(TelecomManager.EXTRA_CALL_DISCONNECT_MESSAGE,
- "Call Dropped by lower layers");
+ TelecomManager.CALL_AUTO_DISCONNECT_MESSAGE_STRING);
}
}
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index 9ee117d..290b4e1 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -1185,15 +1185,23 @@
"Phone is null"));
}
+ Bundle extras = request.getExtras();
+ String disconnectMessage = null;
+ if (extras.containsKey(TelecomManager.EXTRA_CALL_DISCONNECT_MESSAGE)) {
+ disconnectMessage = extras.getString(TelecomManager.EXTRA_CALL_DISCONNECT_MESSAGE);
+ Log.i(this, "onCreateIncomingConnection Disconnect message " + disconnectMessage);
+ }
+
Call call = phone.getRingingCall();
- if (!call.getState().isRinging()) {
+ if (!call.getState().isRinging()
+ || (disconnectMessage != null
+ && disconnectMessage.equals(TelecomManager.CALL_AUTO_DISCONNECT_MESSAGE_STRING))) {
Log.i(this, "onCreateIncomingConnection, no ringing call");
Connection connection = Connection.createFailedConnection(
mDisconnectCauseFactory.toTelecomDisconnectCause(
android.telephony.DisconnectCause.INCOMING_MISSED,
"Found no ringing call",
phone.getPhoneId()));
- Bundle extras = request.getExtras();
long time = extras.getLong(TelecomManager.EXTRA_CALL_CREATED_EPOCH_TIME_MILLIS);
if (time != 0) {