make filtered list item activity survive roations

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/ui/AbstractSearchableListItemActivity.java | 7 
src/main/java/eu/siacs/conversations/ui/ChooseContactActivity.java              | 5 
2 files changed, 10 insertions(+), 2 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/ui/AbstractSearchableListItemActivity.java 🔗

@@ -112,7 +112,12 @@ public abstract class AbstractSearchableListItemActivity extends XmppActivity {
 	}
 
 	protected void filterContacts() {
-		filterContacts(null);
+		final String needle = mSearchEditText != null ? mSearchEditText.getText().toString() : null;
+		if (needle != null && !needle.isEmpty()) {
+			filterContacts(needle);
+		} else {
+			filterContacts(null);
+		}
 	}
 
 	protected abstract void filterContacts(final String needle);

src/main/java/eu/siacs/conversations/ui/ChooseContactActivity.java 🔗

@@ -161,6 +161,10 @@ public class ChooseContactActivity extends AbstractSearchableListItemActivity {
 
 	protected void filterContacts(final String needle) {
 		getListItems().clear();
+		if (xmppConnectionService == null) {
+			getListItemAdapter().notifyDataSetChanged();
+			return;
+		}
 		for (final Account account : xmppConnectionService.getAccounts()) {
 			if (account.getStatus() != Account.State.DISABLED) {
 				for (final Contact contact : account.getRoster().getContacts()) {
@@ -230,7 +234,6 @@ public class ChooseContactActivity extends AbstractSearchableListItemActivity {
 	@Override
 	void onBackendConnected() {
 		filterContacts();
-
 		this.mActivatedAccounts.clear();
 		for (Account account : xmppConnectionService.getAccounts()) {
 			if (account.getStatus() != Account.State.DISABLED) {