Use known gateways cache in drawer

Stephen Paul Weber created

Change summary

src/main/java/eu/siacs/conversations/ui/ConversationsActivity.java | 21 
1 file changed, 7 insertions(+), 14 deletions(-)

Detailed changes

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

@@ -212,21 +212,14 @@ public class ConversationsActivity extends XmppActivity implements OnConversatio
             accountHeader.addProfile(all, 0);
         }
 
-        var hasPhoneAccounts = false;
         accountHeader.removeProfileByIdentifier(DRAWER_MANAGE_PHONE_ACCOUNTS);
-        outer:
-        for (Account account : xmppConnectionService.getAccounts()) {
-            for (Contact contact : account.getRoster().getContacts()) {
-                if (contact.getPresences().anyIdentity("gateway", "pstn")) {
-                    hasPhoneAccounts = true;
-                    final var phoneAccounts = new com.mikepenz.materialdrawer.model.ProfileSettingDrawerItem();
-                    phoneAccounts.setIdentifier(DRAWER_MANAGE_PHONE_ACCOUNTS);
-                    com.mikepenz.materialdrawer.model.interfaces.NameableKt.setNameText(phoneAccounts, "Manage Phone Accounts");
-                    com.mikepenz.materialdrawer.model.interfaces.IconableKt.setIconRes(phoneAccounts, R.drawable.ic_call_24dp);
-                    accountHeader.addProfile(phoneAccounts, accountHeader.getProfiles().size() - 1);
-                    break outer;
-                }
-            }
+        final var hasPhoneAccounts = accounts.stream().anyMatch(a -> a.getGateways("pstn").size() > 0);
+        if (hasPhoneAccounts) {
+            final var phoneAccounts = new com.mikepenz.materialdrawer.model.ProfileSettingDrawerItem();
+            phoneAccounts.setIdentifier(DRAWER_MANAGE_PHONE_ACCOUNTS);
+            com.mikepenz.materialdrawer.model.interfaces.NameableKt.setNameText(phoneAccounts, "Manage Phone Accounts");
+            com.mikepenz.materialdrawer.model.interfaces.IconableKt.setIconRes(phoneAccounts, R.drawable.ic_call_24dp);
+            accountHeader.addProfile(phoneAccounts, accountHeader.getProfiles().size() - 1);
         }
 
         long id = 101;