always persist current nick (in bookmark and database)
This commit is contained in:
		
							parent
							
								
									64c956904d
								
							
						
					
					
						commit
						2eb2513615
					
				| @ -11,6 +11,7 @@ import eu.siacs.conversations.Config; | |||||||
| import eu.siacs.conversations.crypto.PgpEngine; | import eu.siacs.conversations.crypto.PgpEngine; | ||||||
| import eu.siacs.conversations.crypto.axolotl.AxolotlService; | import eu.siacs.conversations.crypto.axolotl.AxolotlService; | ||||||
| import eu.siacs.conversations.entities.Account; | import eu.siacs.conversations.entities.Account; | ||||||
|  | import eu.siacs.conversations.entities.Bookmark; | ||||||
| import eu.siacs.conversations.entities.Contact; | import eu.siacs.conversations.entities.Contact; | ||||||
| import eu.siacs.conversations.entities.Conversation; | import eu.siacs.conversations.entities.Conversation; | ||||||
| import eu.siacs.conversations.entities.Message; | import eu.siacs.conversations.entities.Message; | ||||||
| @ -74,6 +75,9 @@ public class PresenceParser extends AbstractParser implements | |||||||
| 								mXmppConnectionService.getAvatarService().clear(mucOptions); | 								mXmppConnectionService.getAvatarService().clear(mucOptions); | ||||||
| 							} | 							} | ||||||
| 							mucOptions.setSelf(user); | 							mucOptions.setSelf(user); | ||||||
|  | 
 | ||||||
|  | 							mXmppConnectionService.persistSelfNick(user); | ||||||
|  | 
 | ||||||
| 							invokeRenameListener(mucOptions, true); | 							invokeRenameListener(mucOptions, true); | ||||||
| 						} | 						} | ||||||
| 						boolean isNew = mucOptions.updateUser(user); | 						boolean isNew = mucOptions.updateUser(user); | ||||||
|  | |||||||
| @ -2405,6 +2405,22 @@ public class XmppConnectionService extends Service { | |||||||
| 		return false; | 		return false; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	public void persistSelfNick(MucOptions.User self) { | ||||||
|  | 		final Conversation conversation = self.getConversation(); | ||||||
|  | 		Jid full = self.getFullJid(); | ||||||
|  | 		if (!full.equals(conversation.getJid())) { | ||||||
|  | 			Log.d(Config.LOGTAG,"nick changed. updating"); | ||||||
|  | 			conversation.setContactJid(full); | ||||||
|  | 			databaseBackend.updateConversation(conversation); | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		Bookmark bookmark = conversation.getBookmark(); | ||||||
|  | 		if (bookmark != null && !full.getResourcepart().equals(bookmark.getNick())) { | ||||||
|  | 			bookmark.setNick(full.getResourcepart()); | ||||||
|  | 			pushBookmarks(bookmark.getAccount()); | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	public boolean renameInMuc(final Conversation conversation, final String nick, final UiCallback<Conversation> callback) { | 	public boolean renameInMuc(final Conversation conversation, final String nick, final UiCallback<Conversation> callback) { | ||||||
| 		final MucOptions options = conversation.getMucOptions(); | 		final MucOptions options = conversation.getMucOptions(); | ||||||
| 		final Jid joinJid = options.createJoinJid(nick); | 		final Jid joinJid = options.createJoinJid(nick); | ||||||
| @ -2417,13 +2433,6 @@ public class XmppConnectionService extends Service { | |||||||
| 
 | 
 | ||||||
| 				@Override | 				@Override | ||||||
| 				public void onSuccess() { | 				public void onSuccess() { | ||||||
| 					conversation.setContactJid(joinJid); |  | ||||||
| 					databaseBackend.updateConversation(conversation); |  | ||||||
| 					Bookmark bookmark = conversation.getBookmark(); |  | ||||||
| 					if (bookmark != null) { |  | ||||||
| 						bookmark.setNick(nick); |  | ||||||
| 						pushBookmarks(bookmark.getAccount()); |  | ||||||
| 					} |  | ||||||
| 					callback.success(conversation); | 					callback.success(conversation); | ||||||
| 				} | 				} | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Daniel Gultsch
						Daniel Gultsch