attach contact to notification
This commit is contained in:
		
							parent
							
								
									f931c08da7
								
							
						
					
					
						commit
						e33d8451a8
					
				| @ -3,6 +3,8 @@ package eu.siacs.conversations.entities; | ||||
| import android.content.ContentValues; | ||||
| import android.content.Context; | ||||
| import android.database.Cursor; | ||||
| import android.net.Uri; | ||||
| import android.provider.ContactsContract; | ||||
| 
 | ||||
| import org.json.JSONArray; | ||||
| import org.json.JSONException; | ||||
| @ -265,8 +267,18 @@ public class Contact implements ListItem, Blockable { | ||||
| 		this.presenceName = presenceName; | ||||
| 	} | ||||
| 
 | ||||
| 	public String getSystemAccount() { | ||||
| 		return systemAccount; | ||||
| 	public Uri getSystemAccount() { | ||||
| 		if (systemAccount == null) { | ||||
| 			return null; | ||||
| 		} else { | ||||
| 			String[] parts = systemAccount.split("#"); | ||||
| 			if (parts.length != 2) { | ||||
| 				return null; | ||||
| 			} else { | ||||
| 				long id = Long.parseLong(parts[0]); | ||||
| 				return ContactsContract.Contacts.getLookupUri(id, parts[1]); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	public void setSystemAccount(String account) { | ||||
|  | ||||
| @ -35,6 +35,7 @@ import java.util.regex.Pattern; | ||||
| import eu.siacs.conversations.Config; | ||||
| import eu.siacs.conversations.R; | ||||
| 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.ui.ConversationActivity; | ||||
| @ -324,6 +325,13 @@ public class NotificationService { | ||||
| 							createShowLocationIntent(message)); | ||||
| 				} | ||||
| 			} | ||||
| 			if (conversation.getMode() == Conversation.MODE_SINGLE) { | ||||
| 				Contact contact = conversation.getContact(); | ||||
| 				Uri systemAccount = contact.getSystemAccount(); | ||||
| 				if (systemAccount != null) { | ||||
| 					mBuilder.addPerson(systemAccount.toString()); | ||||
| 				} | ||||
| 			} | ||||
| 			mBuilder.setWhen(conversation.getLatestMessage().getTimeSent()); | ||||
| 			mBuilder.setSmallIcon(R.drawable.ic_notification); | ||||
| 			mBuilder.setDeleteIntent(createDeleteIntent(conversation)); | ||||
|  | ||||
| @ -10,7 +10,6 @@ import android.content.SharedPreferences; | ||||
| import android.net.Uri; | ||||
| import android.os.Bundle; | ||||
| import android.preference.PreferenceManager; | ||||
| import android.provider.ContactsContract; | ||||
| import android.provider.ContactsContract.CommonDataKinds; | ||||
| import android.provider.ContactsContract.Contacts; | ||||
| import android.provider.ContactsContract.Intents; | ||||
| @ -137,7 +136,8 @@ public class ContactDetailsActivity extends XmppActivity implements OnAccountUpd | ||||
| 
 | ||||
| 		@Override | ||||
| 		public void onClick(View v) { | ||||
| 			if (contact.getSystemAccount() == null) { | ||||
| 			Uri systemAccount = contact.getSystemAccount(); | ||||
| 			if (systemAccount == null) { | ||||
| 				AlertDialog.Builder builder = new AlertDialog.Builder( | ||||
| 						ContactDetailsActivity.this); | ||||
| 				builder.setTitle(getString(R.string.action_add_phone_book)); | ||||
| @ -147,12 +147,9 @@ public class ContactDetailsActivity extends XmppActivity implements OnAccountUpd | ||||
| 				builder.setPositiveButton(getString(R.string.add), addToPhonebook); | ||||
| 				builder.create().show(); | ||||
| 			} else { | ||||
| 					String[] systemAccount = contact.getSystemAccount().split("#"); | ||||
| 					long id = Long.parseLong(systemAccount[0]); | ||||
| 					Uri uri = ContactsContract.Contacts.getLookupUri(id, systemAccount[1]); | ||||
| 					Intent intent = new Intent(Intent.ACTION_VIEW); | ||||
| 					intent.setData(uri); | ||||
| 					startActivity(intent); | ||||
| 				Intent intent = new Intent(Intent.ACTION_VIEW); | ||||
| 				intent.setData(systemAccount); | ||||
| 				startActivity(intent); | ||||
| 			} | ||||
| 		} | ||||
| 	}; | ||||
| @ -253,7 +250,8 @@ public class ContactDetailsActivity extends XmppActivity implements OnAccountUpd | ||||
| 							removeFromRoster).create().show(); | ||||
| 				break; | ||||
| 			case R.id.action_edit_contact: | ||||
| 				if (contact.getSystemAccount() == null) { | ||||
| 				Uri systemAccount = contact.getSystemAccount(); | ||||
| 				if (systemAccount == null) { | ||||
| 					quickEdit(contact.getDisplayName(), 0, new OnValueEdited() { | ||||
| 
 | ||||
| 						@Override | ||||
| @ -266,10 +264,7 @@ public class ContactDetailsActivity extends XmppActivity implements OnAccountUpd | ||||
| 					}); | ||||
| 				} else { | ||||
| 					Intent intent = new Intent(Intent.ACTION_EDIT); | ||||
| 					String[] systemAccount = contact.getSystemAccount().split("#"); | ||||
| 					long id = Long.parseLong(systemAccount[0]); | ||||
| 					Uri uri = Contacts.getLookupUri(id, systemAccount[1]); | ||||
| 					intent.setDataAndType(uri, Contacts.CONTENT_ITEM_TYPE); | ||||
| 					intent.setDataAndType(systemAccount, Contacts.CONTENT_ITEM_TYPE); | ||||
| 					intent.putExtra("finishActivityOnSaveCompleted", true); | ||||
| 					startActivity(intent); | ||||
| 				} | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Daniel Gultsch
						Daniel Gultsch