Skip to content
Snippets Groups Projects
Commit 7c822eb1 authored by Adrien Béraud's avatar Adrien Béraud
Browse files

conversation: fix recording audio/video messages on Android 11

Change-Id: I364db0b3660774c5e2ddaf4d4ba4abda0a443a9c
parent b53e0bc4
No related branches found
No related tags found
No related merge requests found
...@@ -533,18 +533,13 @@ public class ConversationFragment extends BaseSupportFragment<ConversationPresen ...@@ -533,18 +533,13 @@ public class ConversationFragment extends BaseSupportFragment<ConversationPresen
if (!presenter.getDeviceRuntimeService().hasAudioPermission()) { if (!presenter.getDeviceRuntimeService().hasAudioPermission()) {
requestPermissions(new String[]{Manifest.permission.RECORD_AUDIO}, REQUEST_CODE_CAPTURE_AUDIO); requestPermissions(new String[]{Manifest.permission.RECORD_AUDIO}, REQUEST_CODE_CAPTURE_AUDIO);
} else { } else {
try {
Context ctx = requireContext(); Context ctx = requireContext();
Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION); Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION);
if (intent.resolveActivity(ctx.getPackageManager()) != null) {
try {
mCurrentPhoto = AndroidFileUtils.createAudioFile(ctx); mCurrentPhoto = AndroidFileUtils.createAudioFile(ctx);
} catch (IOException ex) {
Log.e(TAG, "takePicture: error creating temporary file", ex);
return;
}
startActivityForResult(intent, REQUEST_CODE_CAPTURE_AUDIO); startActivityForResult(intent, REQUEST_CODE_CAPTURE_AUDIO);
} else { } catch (Exception ex) {
Log.e(TAG, "sendAudioMessage: error", ex);
Toast.makeText(getActivity(), "Can't find audio recorder app", Toast.LENGTH_SHORT).show(); Toast.makeText(getActivity(), "Can't find audio recorder app", Toast.LENGTH_SHORT).show();
} }
} }
...@@ -554,21 +549,17 @@ public class ConversationFragment extends BaseSupportFragment<ConversationPresen ...@@ -554,21 +549,17 @@ public class ConversationFragment extends BaseSupportFragment<ConversationPresen
if (!presenter.getDeviceRuntimeService().hasVideoPermission()) { if (!presenter.getDeviceRuntimeService().hasVideoPermission()) {
requestPermissions(new String[]{Manifest.permission.CAMERA}, REQUEST_CODE_CAPTURE_VIDEO); requestPermissions(new String[]{Manifest.permission.CAMERA}, REQUEST_CODE_CAPTURE_VIDEO);
} else { } else {
try {
Context context = requireContext(); Context context = requireContext();
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
intent.putExtra("android.intent.extras.CAMERA_FACING", android.hardware.Camera.CameraInfo.CAMERA_FACING_FRONT); intent.putExtra("android.intent.extras.CAMERA_FACING", android.hardware.Camera.CameraInfo.CAMERA_FACING_FRONT);
intent.putExtra("android.intent.extras.LENS_FACING_FRONT", 1); intent.putExtra("android.intent.extras.LENS_FACING_FRONT", 1);
intent.putExtra("android.intent.extra.USE_FRONT_CAMERA", true); intent.putExtra("android.intent.extra.USE_FRONT_CAMERA", true);
if (intent.resolveActivity(context.getPackageManager()) != null) {
try {
mCurrentPhoto = AndroidFileUtils.createVideoFile(context); mCurrentPhoto = AndroidFileUtils.createVideoFile(context);
} catch (IOException ex) {
Log.e(TAG, "takePicture: error creating temporary file", ex);
return;
}
intent.putExtra(MediaStore.EXTRA_OUTPUT, ContentUriHandler.getUriForFile(context, ContentUriHandler.AUTHORITY_FILES, mCurrentPhoto)); intent.putExtra(MediaStore.EXTRA_OUTPUT, ContentUriHandler.getUriForFile(context, ContentUriHandler.AUTHORITY_FILES, mCurrentPhoto));
startActivityForResult(intent, REQUEST_CODE_CAPTURE_VIDEO); startActivityForResult(intent, REQUEST_CODE_CAPTURE_VIDEO);
} else { } catch (Exception ex) {
Log.e(TAG, "sendVideoMessage: error", ex);
Toast.makeText(getActivity(), "Can't find video recorder app", Toast.LENGTH_SHORT).show(); Toast.makeText(getActivity(), "Can't find video recorder app", Toast.LENGTH_SHORT).show();
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment