diff --git a/briar-android/src/org/briarproject/android/contact/ContactListFragment.java b/briar-android/src/org/briarproject/android/contact/ContactListFragment.java index a7255005a036b0feb9ae4440c995a1f25e84b605..582097c2569aac45d6c8f08e05f7b194ca6030c6 100644 --- a/briar-android/src/org/briarproject/android/contact/ContactListFragment.java +++ b/briar-android/src/org/briarproject/android/contact/ContactListFragment.java @@ -375,6 +375,7 @@ public class ContactListFragment extends BaseFragment implements EventListener { } // This needs to be called from the DB thread + // Do not call getActivty() here as it might return null private Collection<ConversationItem> getMessages(ContactId id) throws DbException { @@ -406,13 +407,7 @@ public class ContactListFragment extends BaseFragment implements EventListener { Collection<InvitationMessage> invitations = forumSharingManager.getInvitationMessages(id); for (InvitationMessage i : invitations) { - if (i instanceof ForumInvitationRequest) { - ForumInvitationRequest r = (ForumInvitationRequest) i; - messages.add(ConversationItem.from(r)); - } else if (i instanceof ForumInvitationResponse) { - ForumInvitationResponse r = (ForumInvitationResponse) i; - messages.add(ConversationItem.from(getActivity(), "", r)); - } + messages.add(ConversationItem.from(i)); } duration = System.currentTimeMillis() - now; if (LOG.isLoggable(INFO)) diff --git a/briar-android/src/org/briarproject/android/contact/ConversationItem.java b/briar-android/src/org/briarproject/android/contact/ConversationItem.java index 18cfbd742ac9eff46533bc12b5e6d0602400e40f..dbc81c25a7d9f51a5cf52cbcd4921871fdf055ea 100644 --- a/briar-android/src/org/briarproject/android/contact/ConversationItem.java +++ b/briar-android/src/org/briarproject/android/contact/ConversationItem.java @@ -9,6 +9,7 @@ import org.briarproject.api.introduction.IntroductionMessage; import org.briarproject.api.introduction.IntroductionRequest; import org.briarproject.api.introduction.IntroductionResponse; import org.briarproject.api.messaging.PrivateMessageHeader; +import org.briarproject.api.sharing.InvitationMessage; import org.briarproject.api.sync.MessageId; // This class is not thread-safe @@ -138,7 +139,7 @@ public abstract class ConversationItem { /** * This method should not be used to get user-facing objects, - * Its purpose is to provider data for the contact list. + * Its purpose is only to provide data for the contact list. */ public static ConversationItem from(IntroductionMessage im) { if (im.isLocal()) @@ -148,6 +149,18 @@ public abstract class ConversationItem { im.getTimestamp(), im.isRead()); } + /** + * This method should not be used to get user-facing objects, + * Its purpose is only to provide data for the contact list. + */ + public static ConversationItem from(InvitationMessage im) { + if (im.isLocal()) + return new ConversationNoticeOutItem(im.getId(), "", + im.getTimestamp(), false, false); + return new ConversationNoticeInItem(im.getId(), "", + im.getTimestamp(), im.isRead()); + } + interface OutgoingItem { MessageId getId();