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