Change summary
res/values/strings.xml | 2 +
src/eu/siacs/conversations/ui/ConversationFragment.java | 13 ++++++++++
src/eu/siacs/conversations/ui/XmppActivity.java | 1
3 files changed, 15 insertions(+), 1 deletion(-)
Detailed changes
@@ -272,4 +272,6 @@
<string name="action_edit_subject">Edit conference subject</string>
<string name="conference_not_found">Conference not found</string>
<string name="leave">Leave</string>
+ <string name="contact_added_you">Contact added you to contact list</string>
+ <string name="add_back">Add back</string>
</resources>
@@ -699,8 +699,19 @@ public class ConversationFragment extends Fragment {
return;
}
hideSnackbar();
- ConversationActivity activity = (ConversationActivity) getActivity();
+ final ConversationActivity activity = (ConversationActivity) getActivity();
if (this.conversation != null) {
+ final Contact contact = this.conversation.getContact();
+ if (!contact.showInRoster() && contact.getOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST)) {
+ showSnackbar(R.string.contact_added_you, R.string.add_back, new OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ activity.xmppConnectionService.createContact(contact);
+ activity.switchToContactDetails(contact);
+ }
+ });
+ }
for (Message message : this.conversation.getMessages()) {
if ((message.getEncryption() == Message.ENCRYPTION_PGP)
&& ((message.getStatus() == Message.STATUS_RECIEVED) || (message
@@ -264,6 +264,7 @@ public abstract class XmppActivity extends Activity {
Account account = conversation.getAccount();
Contact contact = account.getRoster().getContact(jid);
xmppConnectionService.createContact(contact);
+ switchToContactDetails(contact);
}
});
builder.create().show();