Fixed missing permission before updating contact picture

This commit is contained in:
Sylvain Berfini 2019-12-03 14:45:45 +01:00
parent 8268b01c99
commit 7caff1175f
2 changed files with 20 additions and 3 deletions

View file

@ -477,6 +477,14 @@ public abstract class MainActivity extends LinphoneGenericActivity
return granted == PackageManager.PERMISSION_GRANTED; return granted == PackageManager.PERMISSION_GRANTED;
} }
public boolean checkPermissions(String[] permissions) {
boolean allGranted = true;
for (String permission : permissions) {
allGranted &= checkPermission(permission);
}
return allGranted;
}
public void requestPermissionIfNotGranted(String permission) { public void requestPermissionIfNotGranted(String permission) {
if (!checkPermission(permission)) { if (!checkPermission(permission)) {
Log.i("[Permission] Requesting " + permission + " permission"); Log.i("[Permission] Requesting " + permission + " permission");

View file

@ -309,9 +309,18 @@ public class ContactEditorFragment extends Fragment {
new OnClickListener() { new OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
pickImage(); ContactsActivity contactsActivity = ((ContactsActivity) getActivity());
((ContactsActivity) getActivity()) if (contactsActivity != null) {
.requestPermissionIfNotGranted(Manifest.permission.CAMERA); String[] permissions = {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.CAMERA
};
if (contactsActivity.checkPermissions(permissions)) {
pickImage();
} else {
contactsActivity.requestPermissionsIfNotGranted(permissions);
}
}
} }
}); });