handle non participating mucs a bit better
This commit is contained in:
		
							parent
							
								
									728c86222d
								
							
						
					
					
						commit
						9bdebb81ba
					
				|  | @ -1535,7 +1535,7 @@ public class XmppConnectionService extends Service { | |||
| 		} else { | ||||
| 			for (Conversation conversation : getConversations()) { | ||||
| 				if (conversation.getMode() == Conversation.MODE_SINGLE | ||||
| 						|| conversation.getAccount().httpUploadAvailable()) { | ||||
| 						|| (conversation.getAccount().httpUploadAvailable() && conversation.getMucOptions().participating())) { | ||||
| 					list.add(conversation); | ||||
| 				} | ||||
| 			} | ||||
|  |  | |||
|  | @ -69,6 +69,7 @@ import eu.siacs.conversations.entities.Account; | |||
| import eu.siacs.conversations.entities.Blockable; | ||||
| import eu.siacs.conversations.entities.Contact; | ||||
| import eu.siacs.conversations.entities.Conversation; | ||||
| import eu.siacs.conversations.entities.Conversational; | ||||
| import eu.siacs.conversations.entities.DownloadableFile; | ||||
| import eu.siacs.conversations.entities.Message; | ||||
| import eu.siacs.conversations.entities.MucOptions; | ||||
|  | @ -1775,7 +1776,8 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke | |||
| 		} | ||||
| 		if (this.conversation != null) { | ||||
| 			final String msg = this.binding.textinput.getText().toString(); | ||||
| 			if (this.conversation.getStatus() != Conversation.STATUS_ARCHIVED && this.conversation.setNextMessage(msg)) { | ||||
| 			final boolean participating = conversation.getMode() == Conversational.MODE_SINGLE || conversation.getMucOptions().participating(); | ||||
| 			if (this.conversation.getStatus() != Conversation.STATUS_ARCHIVED && participating && this.conversation.setNextMessage(msg)) { | ||||
| 				this.activity.xmppConnectionService.updateConversation(this.conversation); | ||||
| 			} | ||||
| 			updateChatState(this.conversation, msg); | ||||
|  | @ -1799,7 +1801,8 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke | |||
| 		} | ||||
| 		Log.d(Config.LOGTAG, "ConversationFragment.saveMessageDraftStopAudioPlayer()"); | ||||
| 		final String msg = this.binding.textinput.getText().toString(); | ||||
| 		if (previousConversation.setNextMessage(msg)) { | ||||
| 		final boolean participating = previousConversation.getMode() == Conversational.MODE_SINGLE || previousConversation.getMucOptions().participating(); | ||||
| 		if (participating && previousConversation.setNextMessage(msg)) { | ||||
| 			activity.xmppConnectionService.updateConversation(previousConversation); | ||||
| 		} | ||||
| 		updateChatState(this.conversation, msg); | ||||
|  | @ -1855,7 +1858,10 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke | |||
| 		this.binding.textSendButton.setContentDescription(activity.getString(R.string.send_message_to_x, conversation.getName())); | ||||
| 		this.binding.textinput.setKeyboardListener(null); | ||||
| 		this.binding.textinput.setText(""); | ||||
| 		this.binding.textinput.append(this.conversation.getNextMessage()); | ||||
| 		final boolean participating = conversation.getMode() == Conversational.MODE_SINGLE || conversation.getMucOptions().participating(); | ||||
| 		if (participating) { | ||||
| 			this.binding.textinput.append(this.conversation.getNextMessage()); | ||||
| 		} | ||||
| 		this.binding.textinput.setKeyboardListener(this); | ||||
| 		messageListAdapter.updatePreferences(); | ||||
| 		refresh(false); | ||||
|  | @ -2077,6 +2083,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke | |||
| 				} | ||||
| 				updateSendButton(); | ||||
| 				updateEditablity(); | ||||
| 				activity.invalidateOptionsMenu(); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|  | @ -2088,8 +2095,9 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke | |||
| 			this.binding.textinput.append(conversation.getDraftMessage()); | ||||
| 			conversation.setDraftMessage(null); | ||||
| 		} | ||||
| 		if (conversation.setNextMessage(this.binding.textinput.getText().toString())) { | ||||
| 			activity.xmppConnectionService.updateConversation(conversation); | ||||
| 		final boolean participating = conversation.getMode() == Conversational.MODE_SINGLE || conversation.getMucOptions().participating(); | ||||
| 		if (participating && conversation.setNextMessage(this.binding.textinput.getText().toString())) { | ||||
| 			activity.xmppConnectionService.databaseBackend.updateConversation(conversation); | ||||
| 		} | ||||
| 		updateChatMsgHint(); | ||||
| 		SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(activity); | ||||
|  | @ -2117,6 +2125,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke | |||
| 		this.binding.textinput.setFocusableInTouchMode(canWrite); | ||||
| 		this.binding.textSendButton.setEnabled(canWrite); | ||||
| 		this.binding.textinput.setCursorVisible(canWrite); | ||||
| 		this.binding.textinput.setEnabled(canWrite); | ||||
| 	} | ||||
| 
 | ||||
| 	public void updateSendButton() { | ||||
|  |  | |||
|  | @ -42,6 +42,7 @@ import eu.siacs.conversations.R; | |||
| import eu.siacs.conversations.crypto.OmemoSetting; | ||||
| import eu.siacs.conversations.crypto.axolotl.AxolotlService; | ||||
| import eu.siacs.conversations.entities.Conversation; | ||||
| import eu.siacs.conversations.entities.Conversational; | ||||
| import eu.siacs.conversations.entities.Message; | ||||
| 
 | ||||
| public class ConversationMenuConfigurator { | ||||
|  | @ -70,6 +71,14 @@ public class ConversationMenuConfigurator { | |||
| 
 | ||||
| 	public static void configureEncryptionMenu(@NonNull Conversation conversation, Menu menu) { | ||||
| 		final MenuItem menuSecure = menu.findItem(R.id.action_security); | ||||
| 
 | ||||
| 		final boolean participating = conversation.getMode() == Conversational.MODE_SINGLE || conversation.getMucOptions().participating(); | ||||
| 
 | ||||
| 		if (!participating) { | ||||
| 			menuSecure.setVisible(false); | ||||
| 			return; | ||||
| 		} | ||||
| 
 | ||||
| 		final MenuItem none = menu.findItem(R.id.encryption_choice_none); | ||||
| 		final MenuItem pgp = menu.findItem(R.id.encryption_choice_pgp); | ||||
| 		final MenuItem axolotl = menu.findItem(R.id.encryption_choice_axolotl); | ||||
|  |  | |||
|  | @ -149,7 +149,7 @@ public class EditMessage extends EmojiWrapperEditText { | |||
| 	public InputConnection onCreateInputConnection(EditorInfo editorInfo) { | ||||
| 		final InputConnection ic = super.onCreateInputConnection(editorInfo); | ||||
| 
 | ||||
| 		if (mimeTypes != null && mCommitContentListener != null) { | ||||
| 		if (mimeTypes != null && mCommitContentListener != null && ic != null) { | ||||
| 			EditorInfoCompat.setContentMimeTypes(editorInfo, mimeTypes); | ||||
| 			return InputConnectionCompat.createWrapper(ic, editorInfo, (inputContentInfo, flags, opts) -> EditMessage.this.mCommitContentListener.onCommitContent(inputContentInfo, flags, opts, mimeTypes)); | ||||
| 		} else { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Daniel Gultsch
						Daniel Gultsch