Merge pull request #1545 from SamWhited/show_new_contact_request_messages
Show status message when contact requests presence
This commit is contained in:
commit
0eaf7669f7
|
@ -171,7 +171,7 @@ public class Message extends AbstractEntity {
|
|||
}
|
||||
|
||||
public static Message createStatusMessage(Conversation conversation, String body) {
|
||||
Message message = new Message();
|
||||
final Message message = new Message();
|
||||
message.setType(Message.TYPE_STATUS);
|
||||
message.setConversation(conversation);
|
||||
message.setBody(body);
|
||||
|
|
|
@ -6,6 +6,7 @@ import eu.siacs.conversations.crypto.PgpEngine;
|
|||
import eu.siacs.conversations.entities.Account;
|
||||
import eu.siacs.conversations.entities.Contact;
|
||||
import eu.siacs.conversations.entities.Conversation;
|
||||
import eu.siacs.conversations.entities.Message;
|
||||
import eu.siacs.conversations.entities.MucOptions;
|
||||
import eu.siacs.conversations.entities.Presences;
|
||||
import eu.siacs.conversations.generator.PresenceGenerator;
|
||||
|
@ -44,8 +45,8 @@ public class PresenceParser extends AbstractParser implements
|
|||
}
|
||||
}
|
||||
|
||||
public void parseContactPresence(PresencePacket packet, Account account) {
|
||||
PresenceGenerator mPresenceGenerator = mXmppConnectionService.getPresenceGenerator();
|
||||
public void parseContactPresence(final PresencePacket packet, final Account account) {
|
||||
final PresenceGenerator mPresenceGenerator = mXmppConnectionService.getPresenceGenerator();
|
||||
final Jid from = packet.getFrom();
|
||||
if (from == null) {
|
||||
return;
|
||||
|
@ -93,6 +94,17 @@ public class PresenceParser extends AbstractParser implements
|
|||
mPresenceGenerator.sendPresenceUpdatesTo(contact));
|
||||
} else {
|
||||
contact.setOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST);
|
||||
final String statusMessage = packet.findChildContent("status");
|
||||
if (statusMessage != null && !statusMessage.isEmpty()) {
|
||||
final Conversation conversation = mXmppConnectionService.findOrCreateConversation(
|
||||
account, contact.getJid().toBareJid(), false);
|
||||
conversation.add(new Message(
|
||||
conversation,
|
||||
statusMessage,
|
||||
Message.ENCRYPTION_NONE,
|
||||
Message.STATUS_RECEIVED
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
mXmppConnectionService.updateRosterUi();
|
||||
|
|
|
@ -1322,6 +1322,13 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa
|
|||
leaveMuc(conversation);
|
||||
} else {
|
||||
conversation.endOtrIfNeeded();
|
||||
if (conversation.getContact().getOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST)) {
|
||||
Log.d(Config.LOGTAG, "Canceling presence request from " + conversation.getJid().toString());
|
||||
sendPresencePacket(
|
||||
conversation.getAccount(),
|
||||
mPresenceGenerator.stopPresenceUpdatesTo(conversation.getContact())
|
||||
);
|
||||
}
|
||||
}
|
||||
this.databaseBackend.updateConversation(conversation);
|
||||
this.conversations.remove(conversation);
|
||||
|
|
|
@ -218,7 +218,7 @@
|
|||
<string name="this_device_omemo_fingerprint">Own OMEMO fingerprint</string>
|
||||
<string name="other_devices">Other devices</string>
|
||||
<string name="trust_omemo_fingerprints">Trust OMEMO Fingerprints</string>
|
||||
<string name="fetching_keys">Fetching keys...</string>
|
||||
<string name="fetching_keys">Fetching keys…</string>
|
||||
<string name="done">Done</string>
|
||||
<string name="verify">Verify</string>
|
||||
<string name="decrypt">Decrypt</string>
|
||||
|
@ -479,7 +479,7 @@
|
|||
<string name="offering_x_file">Offering %s</string>
|
||||
<string name="hide_offline">Hide offline</string>
|
||||
<string name="disable_account">Disable Account</string>
|
||||
<string name="contact_is_typing">%s is typing...</string>
|
||||
<string name="contact_is_typing">%s is typing…</string>
|
||||
<string name="contact_has_stopped_typing">%s has stopped typing</string>
|
||||
<string name="pref_chat_states">Typing notifications</string>
|
||||
<string name="pref_chat_states_summary">Let your contact know when you are writing a new message</string>
|
||||
|
|
Loading…
Reference in a new issue