Forgot to check/ask for WRITE_CONTACTS permission in contact editor fragment

This commit is contained in:
Sylvain Berfini 2020-04-05 18:23:29 +02:00
parent 53c1c77170
commit 69618141f2
2 changed files with 25 additions and 0 deletions

View file

@ -21,6 +21,7 @@ package org.linphone.activities.main.contact.fragments
import android.app.Activity
import android.content.Intent
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Bundle
import android.os.Parcelable
@ -33,6 +34,7 @@ import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import java.io.File
import org.linphone.R
import org.linphone.activities.main.MainActivity
import org.linphone.activities.main.contact.viewmodels.*
import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.contact.NativeContact
@ -101,6 +103,28 @@ class ContactEditorFragment : Fragment() {
list.add(newSipUri)
viewModel.addresses.value = list
}
if (!PermissionHelper.required(requireContext()).hasWriteContactsPermission()) {
Log.i("[Contact Editor] Asking for WRITE_CONTACTS permission")
requestPermissions(arrayOf(android.Manifest.permission.WRITE_CONTACTS), 0)
}
}
override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<out String>,
grantResults: IntArray
) {
if (requestCode == 0) {
val granted = grantResults[0] == PackageManager.PERMISSION_GRANTED
if (granted) {
Log.i("[Contact Editor] WRITE_CONTACTS permission granted")
} else {
Log.w("[Contact Editor] WRITE_CONTACTS permission denied")
(requireActivity() as MainActivity).showSnackBar(R.string.contact_editor_write_permission_denied)
findNavController().popBackStack()
}
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {

View file

@ -90,6 +90,7 @@
<string name="contact_first_name">First name</string>
<string name="contact_organization">Organization</string>
<string name="contact_choose_existing_or_new_to_add_number">Select a contact or create a new one</string>
<string name="contact_editor_write_permission_denied">Write Contacts permission denied, can\'t edit contact</string>
<!-- Dialer -->
<string name="dialer_address_bar_hint">Enter a number or an address</string>