From 1e4d96b7c40f135dca441d09bc6a075107b3781f Mon Sep 17 00:00:00 2001 From: mtang-signal Date: Thu, 18 Apr 2024 11:23:43 -0400 Subject: [PATCH] Add camera permission check to group stories. --- .../conversation/ConversationSettingsFragment.kt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/ConversationSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/ConversationSettingsFragment.kt index d79f32aa29..72e6123036 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/ConversationSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/ConversationSettingsFragment.kt @@ -1,5 +1,6 @@ package org.thoughtcrime.securesms.components.settings.conversation +import android.Manifest import android.app.ActivityOptions import android.content.ActivityNotFoundException import android.content.Context @@ -79,6 +80,7 @@ import org.thoughtcrime.securesms.mediaoverview.MediaOverviewActivity import org.thoughtcrime.securesms.mediapreview.MediaIntentFactory import org.thoughtcrime.securesms.messagerequests.MessageRequestRepository import org.thoughtcrime.securesms.nicknames.NicknameActivity +import org.thoughtcrime.securesms.permissions.Permissions import org.thoughtcrime.securesms.profiles.edit.CreateProfileActivity import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientExporter @@ -197,6 +199,10 @@ class ConversationSettingsFragment : DSLSettingsFragment( } } + override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) { + Permissions.onRequestPermissionsResult(this, requestCode, permissions, grantResults) + } + override fun onOptionsItemSelected(item: MenuItem): Boolean { return if (item.itemId == R.id.action_edit) { val args = ConversationSettingsFragmentArgs.fromBundle(requireArguments()) @@ -415,7 +421,14 @@ class ConversationSettingsFragment : DSLSettingsFragment( .setPositiveButton(android.R.string.ok) { d, _ -> d.dismiss() } .show() } else { - addToGroupStoryDelegate.addToStory(state.recipient.id) + Permissions.with(this@ConversationSettingsFragment) + .request(Manifest.permission.CAMERA) + .ifNecessary() + .withRationaleDialog(getString(R.string.ConversationActivity_to_capture_photos_and_video_allow_signal_access_to_the_camera), R.drawable.symbol_camera_24) + .withPermanentDenialDialog(getString(R.string.ConversationActivity_signal_needs_the_camera_permission_to_take_photos_or_video)) + .onAllGranted { addToGroupStoryDelegate.addToStory(state.recipient.id) } + .onAnyDenied { Toast.makeText(requireContext(), R.string.ConversationActivity_signal_needs_camera_permissions_to_take_photos_or_video, Toast.LENGTH_LONG).show() } + .execute() } }, onVideoClick = {