mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-12 18:59:06 +01:00
Fixed flicker when loading contact list. #297
This commit is contained in:
@@ -155,6 +155,11 @@ public class ContactListFragment extends BaseEventFragment {
|
||||
loadContacts();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
adapter.clear();
|
||||
}
|
||||
|
||||
private void loadContacts() {
|
||||
listener.runOnDbThread(new Runnable() {
|
||||
@@ -195,7 +200,6 @@ public class ContactListFragment extends BaseEventFragment {
|
||||
private void displayContacts(final List<ContactListItem> contacts) {
|
||||
listener.runOnUiThread(new Runnable() {
|
||||
public void run() {
|
||||
adapter.clear();
|
||||
if (contacts.size() == 0) list.showData();
|
||||
else adapter.addAll(contacts);
|
||||
}
|
||||
|
||||
@@ -81,8 +81,8 @@ import im.delight.android.identicons.IdenticonDrawable;
|
||||
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.ConversationItem.OutgoingItem;
|
||||
import static org.briarproject.android.contact.ConversationItem.IncomingItem;
|
||||
import static org.briarproject.android.contact.ConversationItem.OutgoingItem;
|
||||
|
||||
public class ConversationActivity extends BriarActivity
|
||||
implements EventListener, OnClickListener,
|
||||
@@ -302,6 +302,8 @@ public class ConversationActivity extends BriarActivity
|
||||
// so let the list know to hide progress bar
|
||||
list.showData();
|
||||
} else {
|
||||
List<ConversationItem> items =
|
||||
new ArrayList<ConversationItem>();
|
||||
for (PrivateMessageHeader h : headers) {
|
||||
ConversationMessageItem item =
|
||||
(ConversationMessageItem) ConversationItem
|
||||
@@ -309,7 +311,7 @@ public class ConversationActivity extends BriarActivity
|
||||
byte[] body = bodyCache.get(h.getId());
|
||||
if (body == null) loadMessageBody(h);
|
||||
else item.setBody(body);
|
||||
adapter.add(item);
|
||||
items.add(item);
|
||||
}
|
||||
for (IntroductionMessage m : introductions) {
|
||||
ConversationItem item;
|
||||
@@ -322,8 +324,9 @@ public class ConversationActivity extends BriarActivity
|
||||
contactName,
|
||||
(IntroductionResponse) m);
|
||||
}
|
||||
adapter.add(item);
|
||||
items.add(item);
|
||||
}
|
||||
adapter.addAll(items);
|
||||
// Scroll to the bottom
|
||||
list.scrollToPosition(adapter.getItemCount() - 1);
|
||||
}
|
||||
|
||||
@@ -18,19 +18,21 @@ import org.briarproject.api.introduction.SessionId;
|
||||
import org.briarproject.api.messaging.PrivateMessageHeader;
|
||||
import org.briarproject.util.StringUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import im.delight.android.identicons.IdenticonDrawable;
|
||||
|
||||
import static android.support.v7.util.SortedList.INVALID_POSITION;
|
||||
import static android.support.v7.widget.RecyclerView.ViewHolder;
|
||||
import static org.briarproject.android.contact.ConversationItem.INTRODUCTION_IN;
|
||||
import static org.briarproject.android.contact.ConversationItem.INTRODUCTION_OUT;
|
||||
import static org.briarproject.android.contact.ConversationItem.IncomingItem;
|
||||
import static org.briarproject.android.contact.ConversationItem.MSG_IN;
|
||||
import static org.briarproject.android.contact.ConversationItem.MSG_IN_UNREAD;
|
||||
import static org.briarproject.android.contact.ConversationItem.MSG_OUT;
|
||||
import static org.briarproject.android.contact.ConversationItem.NOTICE_IN;
|
||||
import static org.briarproject.android.contact.ConversationItem.NOTICE_OUT;
|
||||
import static org.briarproject.android.contact.ConversationItem.OutgoingItem;
|
||||
import static org.briarproject.android.contact.ConversationItem.IncomingItem;
|
||||
|
||||
class ConversationAdapter extends RecyclerView.Adapter {
|
||||
|
||||
@@ -367,6 +369,10 @@ class ConversationAdapter extends RecyclerView.Adapter {
|
||||
items.clear();
|
||||
}
|
||||
|
||||
public void addAll(List<ConversationItem> items) {
|
||||
this.items.addAll(items);
|
||||
}
|
||||
|
||||
private static class MessageHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
public ViewGroup layout;
|
||||
|
||||
@@ -131,6 +131,12 @@ public class ContactChooserFragment extends BaseFragment {
|
||||
loadContacts();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
adapter.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUniqueTag() {
|
||||
return TAG;
|
||||
@@ -175,7 +181,6 @@ public class ContactChooserFragment extends BaseFragment {
|
||||
introductionActivity.runOnUiThread(new Runnable() {
|
||||
public void run() {
|
||||
adapter.setLocalAuthor(localAuthorId);
|
||||
adapter.clear();
|
||||
if (contacts.size() == 0) list.showData();
|
||||
else adapter.addAll(contacts);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user