diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/preferences/CallPreference.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/preferences/CallPreference.kt index fb947d79d0..4c96fe3df7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/preferences/CallPreference.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/preferences/CallPreference.kt @@ -66,8 +66,8 @@ object CallPreference { MessageTypes.MISSED_VIDEO_CALL_TYPE -> getMissedCallString(true, call.event) MessageTypes.INCOMING_AUDIO_CALL_TYPE -> if (call.isDisplayedAsMissedCallInUi) getMissedCallString(false, call.event) else R.string.MessageRecord_incoming_voice_call MessageTypes.INCOMING_VIDEO_CALL_TYPE -> if (call.isDisplayedAsMissedCallInUi) getMissedCallString(true, call.event) else R.string.MessageRecord_incoming_video_call - MessageTypes.OUTGOING_AUDIO_CALL_TYPE -> R.string.MessageRecord_outgoing_voice_call - MessageTypes.OUTGOING_VIDEO_CALL_TYPE -> R.string.MessageRecord_outgoing_video_call + MessageTypes.OUTGOING_AUDIO_CALL_TYPE -> if (call.event == CallTable.Event.NOT_ACCEPTED) R.string.MessageRecord_unanswered_voice_call else R.string.MessageRecord_outgoing_voice_call + MessageTypes.OUTGOING_VIDEO_CALL_TYPE -> if (call.event == CallTable.Event.NOT_ACCEPTED) R.string.MessageRecord_unanswered_video_call else R.string.MessageRecord_outgoing_video_call MessageTypes.GROUP_CALL_TYPE -> when { call.isDisplayedAsMissedCallInUi -> if (call.event == CallTable.Event.MISSED_NOTIFICATION_PROFILE) R.string.CallPreference__missed_group_call_notification_profile else R.string.CallPreference__missed_group_call call.event == CallTable.Event.GENERIC_GROUP_CALL || call.event == CallTable.Event.JOINED -> R.string.CallPreference__group_call diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/ThreadBodyUtil.java b/app/src/main/java/org/thoughtcrime/securesms/database/ThreadBodyUtil.java index 7112d4cac3..5e50f2c7b3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/ThreadBodyUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/ThreadBodyUtil.java @@ -151,10 +151,11 @@ public final class ThreadBodyUtil { if (call != null) { boolean accepted = call.getEvent() == CallTable.Event.ACCEPTED; if (call.getDirection() == CallTable.Direction.OUTGOING) { - if (call.getType() == CallTable.Type.AUDIO_CALL) { - return context.getString(R.string.MessageRecord_outgoing_voice_call); + boolean isVideoCall = call.getType() == CallTable.Type.VIDEO_CALL; + if (call.getEvent() == CallTable.Event.NOT_ACCEPTED) { + return context.getString(isVideoCall ? R.string.MessageRecord_unanswered_video_call : R.string.MessageRecord_unanswered_voice_call); } else { - return context.getString(R.string.MessageRecord_outgoing_video_call); + return context.getString(isVideoCall ? R.string.MessageRecord_outgoing_video_call : R.string.MessageRecord_outgoing_voice_call); } } else { boolean isVideoCall = call.getType() == CallTable.Type.VIDEO_CALL; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/model/MmsMessageRecord.java b/app/src/main/java/org/thoughtcrime/securesms/database/model/MmsMessageRecord.java index aba3f0f158..34bcf28363 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/model/MmsMessageRecord.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/model/MmsMessageRecord.java @@ -260,12 +260,18 @@ public class MmsMessageRecord extends MessageRecord { String callDateString = getCallDateString(context); if (call.getDirection() == CallTable.Direction.OUTGOING) { - if (call.getType() == CallTable.Type.AUDIO_CALL) { - int updateString = R.string.MessageRecord_outgoing_voice_call; - return staticUpdateDescription(context.getString(R.string.MessageRecord_call_message_with_date, context.getString(updateString), callDateString), Glyph.PHONE); + boolean isVideoCall = call.getType() == CallTable.Type.VIDEO_CALL; + Glyph icon = isVideoCall ? Glyph.VIDEO_CAMERA : Glyph.PHONE; + + if (call.getEvent() == CallTable.Event.NOT_ACCEPTED) { + int message = isVideoCall ? R.string.MessageRecord_unanswered_video_call : R.string.MessageRecord_unanswered_voice_call; + return staticUpdateDescription(context.getString(R.string.MessageRecord_call_message_with_date, context.getString(message), callDateString), + icon, + ContextCompat.getColor(context, R.color.core_red_shade), + ContextCompat.getColor(context, R.color.core_red)); } else { - int updateString = R.string.MessageRecord_outgoing_video_call; - return staticUpdateDescription(context.getString(R.string.MessageRecord_call_message_with_date, context.getString(updateString), callDateString), Glyph.VIDEO_CAMERA); + int updateString = isVideoCall ? R.string.MessageRecord_outgoing_video_call : R.string.MessageRecord_outgoing_voice_call; + return staticUpdateDescription(context.getString(R.string.MessageRecord_call_message_with_date, context.getString(updateString), callDateString), icon); } } else { boolean isVideoCall = call.getType() == CallTable.Type.VIDEO_CALL; diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7c8954732f..584a25d3fa 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1924,6 +1924,10 @@ Declined voice call Declined video call + + Unanswered voice call + + Unanswered video call Missed voice call while notification profile on @@ -7803,6 +7807,8 @@ Incoming Outgoing + + Unanswered Missed