diff --git a/jni/deltachat-core-rust b/jni/deltachat-core-rust
index 738dc5ce1..1ba448fe1 160000
--- a/jni/deltachat-core-rust
+++ b/jni/deltachat-core-rust
@@ -1 +1 @@
-Subproject commit 738dc5ce197f589131479801db2fbd0fb0964599
+Subproject commit 1ba448fe199751e0854fccccde8c768229a5f44e
diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationItem.java b/src/main/java/org/thoughtcrime/securesms/ConversationItem.java
index 3911ce302..7e25ff032 100644
--- a/src/main/java/org/thoughtcrime/securesms/ConversationItem.java
+++ b/src/main/java/org/thoughtcrime/securesms/ConversationItem.java
@@ -584,7 +584,11 @@ public class ConversationItem extends BaseConversationItem
if (stickerStub.resolved()) stickerStub.get().setVisibility(View.GONE);
if (vcardViewStub.resolved()) vcardViewStub.get().setVisibility(View.GONE);
- callViewStub.get().setCallItem(messageRecord);
+ try {
+ callViewStub.get().setCallItem(messageRecord.isOutgoing(), rpc.callInfo(dcContext.getAccountId(), messageRecord.getId()));
+ } catch (RpcException e) {
+ Log.e(TAG, "Error in Rpc.callInfo", e);
+ }
callViewStub.get().setOnClickListener(passthroughClickListener);
callViewStub.get().setOnLongClickListener(passthroughClickListener);
diff --git a/src/main/java/org/thoughtcrime/securesms/components/CallItemView.java b/src/main/java/org/thoughtcrime/securesms/components/CallItemView.java
index aa4584648..cc4844eb8 100644
--- a/src/main/java/org/thoughtcrime/securesms/components/CallItemView.java
+++ b/src/main/java/org/thoughtcrime/securesms/components/CallItemView.java
@@ -4,18 +4,17 @@ import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.util.AttributeSet;
-import android.util.Log;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.b44t.messenger.DcMsg;
import org.thoughtcrime.securesms.R;
+import chat.delta.rpc.types.CallInfo;
+import chat.delta.rpc.types.CallState;
+
public class CallItemView extends FrameLayout {
private static final String TAG = CallItemView.class.getSimpleName();
@@ -41,9 +40,18 @@ public class CallItemView extends FrameLayout {
this.footer = findViewById(R.id.footer);
}
- public void setCallItem(final @NonNull DcMsg dcMsg) {
- title.setText(dcMsg.getText());
- if (dcMsg.isOutgoing()) {
+ public void setCallItem(boolean isOutgoing, CallInfo callInfo) {
+ if (callInfo.state instanceof CallState.Missed) {
+ title.setText(R.string.missed_call);
+ } else if (callInfo.state instanceof CallState.Cancelled) {
+ title.setText(R.string.canceled_call);
+ } else if (callInfo.state instanceof CallState.Declined) {
+ title.setText(R.string.declined_call);
+ } else {
+ title.setText(isOutgoing? R.string.outgoing_call : R.string.incoming_call);
+ }
+
+ if (isOutgoing) {
int[] attrs = new int[]{
R.attr.conversation_item_outgoing_text_secondary_color,
};
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index d2d76b772..a83e8af2c 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -372,6 +372,11 @@
Calls
Answer
Decline
+ Outgoing Call
+ Incoming Call
+ Declined Call
+ Canceled Call
+ Missed Call
Video Chat