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