fixed #267

iNPUTmice created

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

res/values/strings.xml 🔗

@@ -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>

src/eu/siacs/conversations/ui/ConversationFragment.java 🔗

@@ -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

src/eu/siacs/conversations/ui/XmppActivity.java 🔗

@@ -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();