render saved messages accordingly

This commit is contained in:
B. Petersen 2025-02-02 12:29:43 +01:00 committed by adb
parent 0eb02b59a3
commit 0704f7f1e7
4 changed files with 26 additions and 2 deletions

View file

@ -1688,6 +1688,15 @@ JNIEXPORT jlong Java_com_b44t_messenger_DcMsg_getParentCPtr(JNIEnv *env, jobject
return (jlong)dc_msg_get_parent(get_dc_msg(env, obj)); return (jlong)dc_msg_get_parent(get_dc_msg(env, obj));
} }
JNIEXPORT jint Java_com_b44t_messenger_DcMsg_getOriginalMsgId(JNIEnv *env, jobject obj)
{
return (jint)dc_msg_get_original_msg_id(get_dc_msg(env, obj));
}
JNIEXPORT jint Java_com_b44t_messenger_DcMsg_getSavedMsgId(JNIEnv *env, jobject obj)
{
return (jint)dc_msg_get_saved_msg_id(get_dc_msg(env, obj));
}
JNIEXPORT jstring Java_com_b44t_messenger_DcMsg_getError(JNIEnv *env, jobject obj) JNIEXPORT jstring Java_com_b44t_messenger_DcMsg_getError(JNIEnv *env, jobject obj)
{ {

View file

@ -185,6 +185,17 @@ public class DcMsg {
return cPtr != 0 ? new DcMsg(cPtr) : null; return cPtr != 0 ? new DcMsg(cPtr) : null;
} }
public native int getOriginalMsgId ();
public native int getSavedMsgId ();
public boolean canSave() {
return !isInfo();
}
public boolean isSaved() {
return getOriginalMsgId() != 0 || getSavedMsgId() != 0;
}
public File getFileAsFile() { public File getFileAsFile() {
if(getFile()==null) if(getFile()==null)
throw new AssertionError("expected a file to be present."); throw new AssertionError("expected a file to be present.");

View file

@ -175,7 +175,7 @@ public class ConversationItem extends BaseConversationItem
{ {
bind(messageRecord, dcChat, batchSelected, pulseHighlight, recipients); bind(messageRecord, dcChat, batchSelected, pulseHighlight, recipients);
this.glideRequests = glideRequests; this.glideRequests = glideRequests;
this.showSender = (dcChat.isMultiUser() && !messageRecord.isOutgoing()) || messageRecord.getOverrideSenderName() != null; this.showSender = ((dcChat.isMultiUser() || dcChat.isSelfTalk()) && !messageRecord.isOutgoing()) || messageRecord.getOverrideSenderName() != null;
if (showSender) { if (showSender) {
this.dcContact = dcContext.getContact(messageRecord.getFromId()); this.dcContact = dcContext.getContact(messageRecord.getFromId());

View file

@ -72,7 +72,11 @@ public class ConversationItemFooter extends LinearLayout {
private void presentDate(@NonNull DcMsg messageRecord) { private void presentDate(@NonNull DcMsg messageRecord) {
dateView.forceLayout(); dateView.forceLayout();
dateView.setText(DateUtils.getExtendedRelativeTimeSpanString(getContext(), messageRecord.getTimestamp())); String text = DateUtils.getExtendedRelativeTimeSpanString(getContext(), messageRecord.getTimestamp());
if (messageRecord.isSaved()) {
text += "";
}
dateView.setText(text);
} }
private void presentDeliveryStatus(@NonNull DcMsg messageRecord) { private void presentDeliveryStatus(@NonNull DcMsg messageRecord) {