mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-13 19:29:06 +01:00
make message status persistent and initialize it from database
This commit is contained in:
@@ -8,7 +8,6 @@ import static android.view.View.GONE;
|
||||
import static android.view.View.VISIBLE;
|
||||
import static android.widget.LinearLayout.HORIZONTAL;
|
||||
import static android.widget.LinearLayout.VERTICAL;
|
||||
import static android.widget.Toast.LENGTH_SHORT;
|
||||
import static java.util.logging.Level.INFO;
|
||||
import static java.util.logging.Level.WARNING;
|
||||
import static org.briarproject.android.contact.ReadPrivateMessageActivity.RESULT_PREV_NEXT;
|
||||
@@ -45,6 +44,7 @@ import org.briarproject.api.crypto.CryptoExecutor;
|
||||
import org.briarproject.api.db.DatabaseComponent;
|
||||
import org.briarproject.api.db.DbException;
|
||||
import org.briarproject.api.db.MessageHeader;
|
||||
import org.briarproject.api.db.MessageHeader.State;
|
||||
import org.briarproject.api.db.NoSuchContactException;
|
||||
import org.briarproject.api.db.NoSuchMessageException;
|
||||
import org.briarproject.api.db.NoSuchSubscriptionException;
|
||||
@@ -77,7 +77,6 @@ import android.widget.ImageButton;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ListView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
public class ConversationActivity extends BriarActivity
|
||||
implements EventListener, OnClickListener, OnItemClickListener {
|
||||
@@ -389,18 +388,18 @@ implements EventListener, OnClickListener, OnItemClickListener {
|
||||
MessagesSentEvent m = (MessagesSentEvent) e;
|
||||
if (m.getContactId().equals(contactId)) {
|
||||
LOG.info("Messages sent");
|
||||
markMessages(m.getMessageIds(), ConversationItem.State.SENT);
|
||||
markMessages(m.getMessageIds(), State.SENT);
|
||||
}
|
||||
} else if (e instanceof MessagesAckedEvent) {
|
||||
MessagesAckedEvent m = (MessagesAckedEvent) e;
|
||||
if (m.getContactId().equals(contactId)) {
|
||||
LOG.info("Messages acked");
|
||||
markMessages(m.getMessageIds(), ConversationItem.State.DELIVERED);
|
||||
markMessages(m.getMessageIds(), State.DELIVERED);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void markMessages(final Collection<MessageId> messageIds, final ConversationItem.State state) {
|
||||
private void markMessages(final Collection<MessageId> messageIds, final State state) {
|
||||
runOnUiThread(new Runnable() {
|
||||
public void run() {
|
||||
Set<MessageId> messages = new HashSet<MessageId>(messageIds);
|
||||
|
||||
@@ -13,6 +13,7 @@ import org.briarproject.R;
|
||||
import org.briarproject.android.util.ElasticHorizontalSpace;
|
||||
import org.briarproject.android.util.LayoutUtils;
|
||||
import org.briarproject.api.db.MessageHeader;
|
||||
import org.briarproject.api.db.MessageHeader.State;
|
||||
import org.briarproject.util.StringUtils;
|
||||
|
||||
import android.content.Context;
|
||||
@@ -81,9 +82,9 @@ class ConversationAdapter extends ArrayAdapter<ConversationItem> {
|
||||
|
||||
ImageView status = new ImageView(ctx);
|
||||
status.setPadding(0, 0, pad, 0);
|
||||
if (item.getStatus() == ConversationItem.State.DELIVERED) {
|
||||
if (item.getStatus() == State.DELIVERED) {
|
||||
status.setImageResource(R.drawable.message_delivered);
|
||||
} else if (item.getStatus() == ConversationItem.State.SENT) {
|
||||
} else if (item.getStatus() == State.SENT) {
|
||||
status.setImageResource(R.drawable.message_sent);
|
||||
} else {
|
||||
status.setImageResource(R.drawable.message_stored);
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
package org.briarproject.android.contact;
|
||||
|
||||
import org.briarproject.api.db.MessageHeader;
|
||||
import org.briarproject.api.db.MessageHeader.State;
|
||||
|
||||
// This class is not thread-safe
|
||||
class ConversationItem {
|
||||
|
||||
public enum State { STORED, SENT, DELIVERED };
|
||||
|
||||
private final MessageHeader header;
|
||||
private byte[] body;
|
||||
private State status;
|
||||
@@ -14,7 +13,7 @@ class ConversationItem {
|
||||
ConversationItem(MessageHeader header) {
|
||||
this.header = header;
|
||||
body = null;
|
||||
status = header.isDelivered() ? State.DELIVERED : State.STORED;
|
||||
status = header.getStatus();
|
||||
}
|
||||
|
||||
MessageHeader getHeader() {
|
||||
|
||||
Reference in New Issue
Block a user