Fill own device sessions into SessionMap
This commit is contained in:
		
							parent
							
								
									1aeb5874b0
								
							
						
					
					
						commit
						3c5c0c7d3b
					
				| @ -662,21 +662,28 @@ public class AxolotlService { | ||||
| 			this.fillMap(store); | ||||
| 		} | ||||
| 
 | ||||
| 		private void putDevicesForJid(String bareJid, List<Integer> deviceIds, SQLiteAxolotlStore store) { | ||||
| 			for (Integer deviceId : deviceIds) { | ||||
| 				AxolotlAddress axolotlAddress = new AxolotlAddress(bareJid, deviceId); | ||||
| 				Log.d(Config.LOGTAG, AxolotlService.getLogprefix(account)+"Building session for remote address: "+axolotlAddress.toString()); | ||||
| 				String fingerprint = store.loadSession(axolotlAddress).getSessionState().getRemoteIdentityKey().getFingerprint().replaceAll("\\s", ""); | ||||
| 				this.put(axolotlAddress, new XmppAxolotlSession(account, store, axolotlAddress, fingerprint)); | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 		private void fillMap(SQLiteAxolotlStore store) { | ||||
| 			List<Integer> deviceIds = store.getSubDeviceSessions(account.getJid().toBareJid().toString()); | ||||
| 			putDevicesForJid(account.getJid().toBareJid().toString(), deviceIds, store); | ||||
| 			for (Contact contact : account.getRoster().getContacts()) { | ||||
| 				Jid bareJid = contact.getJid().toBareJid(); | ||||
| 				if (bareJid == null) { | ||||
| 					continue; // FIXME: handle this? | ||||
| 				} | ||||
| 				String address = bareJid.toString(); | ||||
| 				List<Integer> deviceIDs = store.getSubDeviceSessions(address); | ||||
| 				for (Integer deviceId : deviceIDs) { | ||||
| 					AxolotlAddress axolotlAddress = new AxolotlAddress(address, deviceId); | ||||
| 					Log.d(Config.LOGTAG, AxolotlService.getLogprefix(account)+"Building session for remote address: "+axolotlAddress.toString()); | ||||
| 					String fingerprint = store.loadSession(axolotlAddress).getSessionState().getRemoteIdentityKey().getFingerprint().replaceAll("\\s", ""); | ||||
| 					this.put(axolotlAddress, new XmppAxolotlSession(account, store, axolotlAddress, fingerprint)); | ||||
| 				} | ||||
| 				deviceIds = store.getSubDeviceSessions(address); | ||||
| 				putDevicesForJid(address, deviceIds, store); | ||||
| 			} | ||||
| 
 | ||||
| 		} | ||||
| 
 | ||||
| 		@Override | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Andreas Straub
						Andreas Straub