avoid unnecessary roster sync in OMEMO code. fixed startup performance regression

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlService.java | 2 
src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java   | 4 
2 files changed, 2 insertions(+), 4 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlService.java 🔗

@@ -218,14 +218,12 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
 				deviceIds = store.getSubDeviceSessions(address);
 				putDevicesForJid(address, deviceIds, store);
 			}
-
 		}
 
 		@Override
 		public void put(SignalProtocolAddress address, XmppAxolotlSession value) {
 			super.put(address, value);
 			value.setNotFresh();
-			xmppConnectionService.syncRosterToDisk(account); //TODO why?
 		}
 
 		public void put(XmppAxolotlSession session) {

src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java 🔗

@@ -956,7 +956,7 @@ public class DatabaseBackend extends SQLiteOpenHelper {
 
 	public List<String> getKnownSignalAddresses(Account account) {
 		List<String> addresses = new ArrayList<>();
-		String[] colums = {SQLiteAxolotlStore.NAME};
+		String[] colums = {"DISTINCT "+SQLiteAxolotlStore.NAME};
 		String[] selectionArgs = {account.getUuid()};
 		Cursor cursor = getReadableDatabase().query(SQLiteAxolotlStore.SESSION_TABLENAME,
 				colums,
@@ -965,7 +965,7 @@ public class DatabaseBackend extends SQLiteOpenHelper {
 				null,null,null
 				);
 		while (cursor.moveToNext()) {
-			addresses.add(cursor.getString(cursor.getColumnIndex(SQLiteAxolotlStore.NAME)));
+			addresses.add(cursor.getString(0));
 		}
 		cursor.close();
 		return addresses;