From cf6aa019054d952584587f2db2b241a394d53b68 Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Thu, 28 Jul 2016 15:18:56 -0300 Subject: [PATCH] Remove forum invitations from list instead of reloading Closes #543 --- .../android/forum/ForumInvitationAdapter.java | 7 ++++++- .../android/forum/ForumInvitationsActivity.java | 8 ++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/briar-android/src/org/briarproject/android/forum/ForumInvitationAdapter.java b/briar-android/src/org/briarproject/android/forum/ForumInvitationAdapter.java index 23e24b7e14..28ef9e2f1c 100644 --- a/briar-android/src/org/briarproject/android/forum/ForumInvitationAdapter.java +++ b/briar-android/src/org/briarproject/android/forum/ForumInvitationAdapter.java @@ -12,6 +12,7 @@ import android.widget.TextView; import org.briarproject.R; import org.briarproject.android.util.TextAvatarView; import org.briarproject.api.contact.Contact; +import org.briarproject.api.forum.ForumSharingMessage; import org.briarproject.util.StringUtils; import java.util.ArrayList; @@ -94,6 +95,10 @@ class ForumInvitationAdapter extends forums.addAll(list); } + public void remove(ForumInvitationItem item) { + forums.remove(item); + } + public void clear() { forums.clear(); } @@ -154,7 +159,7 @@ class ForumInvitationAdapter extends @Override public boolean areContentsTheSame(ForumInvitationItem oldItem, ForumInvitationItem newItem) { - return oldItem.getForum().equals(newItem.getForum()) && + return oldItem.isSubscribed() == newItem.isSubscribed() && oldItem.getContacts().equals(newItem.getContacts()); } diff --git a/briar-android/src/org/briarproject/android/forum/ForumInvitationsActivity.java b/briar-android/src/org/briarproject/android/forum/ForumInvitationsActivity.java index 24436eb81e..ed36990d87 100644 --- a/briar-android/src/org/briarproject/android/forum/ForumInvitationsActivity.java +++ b/briar-android/src/org/briarproject/android/forum/ForumInvitationsActivity.java @@ -114,7 +114,6 @@ public class ForumInvitationsActivity extends BriarActivity LOG.info("No forums available, finishing"); finish(); } else { - adapter.clear(); adapter.addAll(forums); } } @@ -158,6 +157,12 @@ public class ForumInvitationsActivity extends BriarActivity int res = R.string.forum_declined_toast; if (accept) res = R.string.forum_joined_toast; Toast.makeText(this, res, LENGTH_SHORT).show(); + + // remove item and finish if it was the last + adapter.remove(item); + if (adapter.getItemCount() == 0) { + supportFinishAfterTransition(); + } } private void respondToInvitation(final ForumInvitationItem item, @@ -174,7 +179,6 @@ public class ForumInvitationsActivity extends BriarActivity if (LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e); } - loadForums(); } }); } -- GitLab