From 4307b1de723a5ec28610580ad04bb7cb327b264c Mon Sep 17 00:00:00 2001 From: iNPUTmice Date: Fri, 18 Jul 2014 15:35:31 +0200 Subject: notify ui on roster changes --- .../conversations/ui/ContactDetailsActivity.java | 17 +++++++++++++++++ .../conversations/ui/StartConversationActivity.java | 21 +++++++++++++++++++++ 2 files changed, 38 insertions(+) (limited to 'src/eu/siacs/conversations/ui') diff --git a/src/eu/siacs/conversations/ui/ContactDetailsActivity.java b/src/eu/siacs/conversations/ui/ContactDetailsActivity.java index a8527febd..e29a63902 100644 --- a/src/eu/siacs/conversations/ui/ContactDetailsActivity.java +++ b/src/eu/siacs/conversations/ui/ContactDetailsActivity.java @@ -31,6 +31,7 @@ import eu.siacs.conversations.entities.Account; import eu.siacs.conversations.entities.Contact; import eu.siacs.conversations.entities.Presences; import eu.siacs.conversations.services.XmppConnectionService; +import eu.siacs.conversations.services.XmppConnectionService.OnRosterUpdate; import eu.siacs.conversations.utils.UIHelper; import eu.siacs.conversations.xmpp.stanzas.PresencePacket; @@ -89,6 +90,20 @@ public class ContactDetailsActivity extends XmppActivity { private LinearLayout keys; + private OnRosterUpdate rosterUpdate = new OnRosterUpdate() { + + @Override + public void onRosterUpdate() { + runOnUiThread(new Runnable() { + + @Override + public void run() { + populateView(); + } + }); + } + }; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -270,6 +285,7 @@ public class ContactDetailsActivity extends XmppActivity { @Override public void onBackendConnected() { + xmppConnectionService.setOnRosterUpdateListener(this.rosterUpdate ); if ((accountJid != null)&&(contactJid != null)) { Account account = xmppConnectionService.findAccountByJid(accountJid); if (account==null) { @@ -356,6 +372,7 @@ public class ContactDetailsActivity extends XmppActivity { } } } + xmppConnectionService.removeOnRosterUpdateListener(); } } diff --git a/src/eu/siacs/conversations/ui/StartConversationActivity.java b/src/eu/siacs/conversations/ui/StartConversationActivity.java index 5e22b65f1..d12d2878d 100644 --- a/src/eu/siacs/conversations/ui/StartConversationActivity.java +++ b/src/eu/siacs/conversations/ui/StartConversationActivity.java @@ -40,6 +40,7 @@ import eu.siacs.conversations.entities.Bookmark; import eu.siacs.conversations.entities.Contact; import eu.siacs.conversations.entities.Conversation; import eu.siacs.conversations.entities.ListItem; +import eu.siacs.conversations.services.XmppConnectionService.OnRosterUpdate; import eu.siacs.conversations.ui.adapter.KnownHostsAdapter; import eu.siacs.conversations.ui.adapter.ListItemAdapter; import eu.siacs.conversations.utils.Validator; @@ -139,6 +140,19 @@ public class StartConversationActivity extends XmppActivity { int count) { } }; + private OnRosterUpdate onRosterUpdate = new OnRosterUpdate() { + + @Override + public void onRosterUpdate() { + runOnUiThread(new Runnable() { + + @Override + public void run() { + filter(mSearchEditText.getText().toString()); + } + }); + } + }; @Override public void onCreate(Bundle savedInstanceState) { @@ -200,6 +214,12 @@ public class StartConversationActivity extends XmppActivity { }); } + + @Override + public void onStop() { + super.onStop(); + xmppConnectionService.removeOnRosterUpdateListener(); + } protected void openConversationForContact(int position) { Contact contact = (Contact) contacts.get(position); @@ -444,6 +464,7 @@ public class StartConversationActivity extends XmppActivity { @Override void onBackendConnected() { + xmppConnectionService.setOnRosterUpdateListener(this.onRosterUpdate ); if (mSearchEditText != null) { filter(mSearchEditText.getText().toString()); } else { -- cgit v1.2.3