From 7a1aa58925cff9fe7719cbedc0c371441abe7e11 Mon Sep 17 00:00:00 2001 From: GleidsonDaniel Date: Thu, 2 Mar 2023 11:24:39 -0300 Subject: [PATCH] fix permissions --- app/lib/hooks/useVideoConf.tsx | 12 +++++++++--- app/lib/methods/videoConf.ts | 8 ++------ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/lib/hooks/useVideoConf.tsx b/app/lib/hooks/useVideoConf.tsx index 0353ebf2e..4018613e2 100644 --- a/app/lib/hooks/useVideoConf.tsx +++ b/app/lib/hooks/useVideoConf.tsx @@ -1,5 +1,6 @@ -import React, { useEffect, useState } from 'react'; import { Q } from '@nozbe/watermelondb'; +import { Camera } from 'expo-camera'; +import React, { useEffect, useState } from 'react'; import { useActionSheet } from '../../containers/ActionSheet'; import StartACallActionSheet from '../../containers/UIKit/VideoConferenceBlock/components/StartACallActionSheet'; @@ -10,7 +11,7 @@ import database from '../database'; import { getSubscriptionByRoomId } from '../database/services/Subscription'; import { callJitsi } from '../methods'; import { compareServerVersion, showErrorAlert } from '../methods/helpers'; -import { handleCallPermissions, videoConfStartAndJoin } from '../methods/videoConf'; +import { handleAndroidBltPermission, videoConfStartAndJoin } from '../methods/videoConf'; import { Services } from '../services'; import { useAppSelector } from './useAppSelector'; import { useSnaps } from './useSnaps'; @@ -35,6 +36,8 @@ export const useVideoConf = (rid: string): { showInitCallActionSheet: () => Prom const jitsiEnableChannels = useAppSelector(state => state.settings.Jitsi_Enable_Channels); const user = useAppSelector(state => getUserSelector(state)); + const [permission, requestPermission] = Camera.useCameraPermissions(); + const isServer5OrNewer = compareServerVersion(serverVersion, 'greaterThanOrEqualTo', '5.0.0'); const { showActionSheet } = useActionSheet(); @@ -87,7 +90,10 @@ export const useVideoConf = (rid: string): { showInitCallActionSheet: () => Prom children: , snaps }); - handleCallPermissions(); + if (!permission?.granted) { + requestPermission(); + handleAndroidBltPermission(); + } } }; diff --git a/app/lib/methods/videoConf.ts b/app/lib/methods/videoConf.ts index 2c1f76da3..484683b38 100644 --- a/app/lib/methods/videoConf.ts +++ b/app/lib/methods/videoConf.ts @@ -19,14 +19,10 @@ const handleBltPermission = async (): Promise => { return [PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION]; }; -export const handleCallPermissions = async (): Promise => { +export const handleAndroidBltPermission = async (): Promise => { if (isAndroid) { const bltPermission = await handleBltPermission(); - await PermissionsAndroid.requestMultiple([ - PermissionsAndroid.PERMISSIONS.CAMERA, - PermissionsAndroid.PERMISSIONS.RECORD_AUDIO, - ...bltPermission - ]); + await PermissionsAndroid.requestMultiple(bltPermission); } };