diff --git a/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactFragment.kt b/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactFragment.kt
index 1dadcadd3..8b2b061ce 100644
--- a/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactFragment.kt
+++ b/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactFragment.kt
@@ -111,12 +111,15 @@ class ContactFragment : GenericFragment() {
viewModel.showLongPressMenuForNumberOrAddressEvent.observe(viewLifecycleOwner) {
it.consume { model ->
- val modalBottomSheet = ContactNumberOrAddressMenuDialogFragment({
+ val modalBottomSheet = ContactNumberOrAddressMenuDialogFragment(model.isSip, {
// onDismiss
model.selected.value = false
}, {
// onCopyNumberOrAddressToClipboard
copyNumberOrAddressToClipboard(model.displayedValue, model.isSip)
+ }, {
+ // onInviteNumberOrAddress
+ inviteContactBySms(model.displayedValue)
})
modalBottomSheet.show(
@@ -190,11 +193,22 @@ class ContactFragment : GenericFragment() {
val sendIntent: Intent = Intent().apply {
action = Intent.ACTION_SEND
putExtra(Intent.EXTRA_STREAM, publicUri)
- putExtra(Intent.EXTRA_SUBJECT, "John Doe")
+ putExtra(Intent.EXTRA_SUBJECT, viewModel.contact.value?.friend?.name)
type = ContactsContract.Contacts.CONTENT_VCARD_TYPE
}
val shareIntent = Intent.createChooser(sendIntent, null)
startActivity(shareIntent)
}
+
+ private fun inviteContactBySms(number: String) {
+ Log.i("$TAG Sending SMS to [$number]")
+ val smsIntent: Intent = Intent().apply {
+ action = Intent.ACTION_SENDTO
+ data = Uri.parse("smsto:$number")
+ putExtra("address", number)
+ putExtra("sms_body", "Coucou <3") // TODO FIXME
+ }
+ startActivity(smsIntent)
+ }
}
diff --git a/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactNumberOrAddressMenuDialogFragment.kt b/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactNumberOrAddressMenuDialogFragment.kt
index c8cac3473..909ba386b 100644
--- a/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactNumberOrAddressMenuDialogFragment.kt
+++ b/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactNumberOrAddressMenuDialogFragment.kt
@@ -28,8 +28,10 @@ import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import org.linphone.databinding.ContactNumberOrAddressLongPressMenuBinding
class ContactNumberOrAddressMenuDialogFragment(
+ private val isSip: Boolean,
private val onDismiss: (() -> Unit)? = null,
- private val onCopyNumberOrAddressToClipboard: (() -> Unit)? = null
+ private val onCopyNumberOrAddressToClipboard: (() -> Unit)? = null,
+ private val onInviteNumberOrAddress: (() -> Unit)? = null
) : BottomSheetDialogFragment() {
companion object {
const val TAG = "ContactNumberOrAddressMenuDialogFragment"
@@ -51,12 +53,18 @@ class ContactNumberOrAddressMenuDialogFragment(
savedInstanceState: Bundle?
): View {
val view = ContactNumberOrAddressLongPressMenuBinding.inflate(layoutInflater)
+ view.isSip = isSip
view.setCopyNumberOrAddressClickListener {
onCopyNumberOrAddressToClipboard?.invoke()
dismiss()
}
+ view.setInviteNumberOrAddressClickListener {
+ onInviteNumberOrAddress?.invoke()
+ dismiss()
+ }
+
return view.root
}
}
diff --git a/app/src/main/res/layout/contact_number_or_address_long_press_menu.xml b/app/src/main/res/layout/contact_number_or_address_long_press_menu.xml
index 375a25964..56348f0a8 100644
--- a/app/src/main/res/layout/contact_number_or_address_long_press_menu.xml
+++ b/app/src/main/res/layout/contact_number_or_address_long_press_menu.xml
@@ -7,6 +7,12 @@
+
+
+
+