Skip to content

Commit bd7e0fc

Browse files
committed
feat(platform-android): grant declared app permissions
1 parent 24a7760 commit bd7e0fc

6 files changed

Lines changed: 10 additions & 50 deletions

File tree

apps/playground/android/app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
22

33
<uses-permission android:name="android.permission.INTERNET" />
4+
<uses-permission android:name="android.permission.CAMERA" />
45

56
<application
67
android:name=".MainApplication"

apps/playground/src/__tests__/ui/permissions.harness.tsx

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,11 @@ import {
77
waitUntil,
88
} from 'react-native-harness';
99
import { screen, userEvent } from '@react-native-harness/ui';
10-
import { Platform, Pressable, Text, View } from 'react-native';
10+
import { Pressable, Text, View } from 'react-native';
11+
import { VisionCamera} from 'react-native-vision-camera';
1112

1213
describe('Permissions', () => {
13-
test('should allow iOS camera permissions through the system prompt', async () => {
14-
if (Platform.OS !== 'ios') {
15-
return;
16-
}
17-
18-
const { VisionCamera } =
19-
require('react-native-vision-camera') as typeof import('react-native-vision-camera');
14+
test('should allow camera permissions when requested', async () => {
2015
const initialStatus = VisionCamera.cameraPermissionStatus;
2116
let latestStatus = initialStatus;
2217

packages/platform-android/src/__tests__/instance.test.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -655,11 +655,6 @@ describe('Android platform instance', () => {
655655
expect(grantPermissions).toHaveBeenCalledWith(
656656
'emulator-5554',
657657
'com.harnessplayground',
658-
expect.arrayContaining([
659-
'android.permission.CAMERA',
660-
'android.permission.RECORD_AUDIO',
661-
'android.permission.ACCESS_FINE_LOCATION',
662-
]),
663658
);
664659
});
665660

@@ -744,11 +739,6 @@ describe('Android platform instance', () => {
744739
expect(grantPermissions).toHaveBeenCalledWith(
745740
'012345',
746741
'com.harnessplayground',
747-
expect.arrayContaining([
748-
'android.permission.CAMERA',
749-
'android.permission.RECORD_AUDIO',
750-
'android.permission.ACCESS_FINE_LOCATION',
751-
]),
752742
);
753743
});
754744
});

packages/platform-android/src/adb-id.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ export const getAdbId = async (
1616

1717
for (const adbId of adbIds) {
1818
if (isAndroidDeviceEmulator(device)) {
19+
if (!isAdbIdEmulator(adbId)) {
20+
continue;
21+
}
22+
1923
const emulatorName = await adb.getEmulatorName(adbId);
2024

2125
if (emulatorName === device.name) {

packages/platform-android/src/instance.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ import {
3434
import { isInteractive } from '@react-native-harness/tools';
3535
import fs from 'node:fs';
3636
import type { AppMonitor } from '@react-native-harness/platforms';
37-
import { getDefaultAndroidPermissions } from './permissions.js';
3837

3938
const androidInstanceLogger = logger.child('android-instance');
4039

@@ -261,8 +260,7 @@ export const getAndroidEmulatorPlatformInstance = async (
261260
const appUid = await configureAndroidRuntime(adbId, config, harnessConfig);
262261

263262
if (permissionsEnabled) {
264-
const defaultPermissions = getDefaultAndroidPermissions();
265-
await adb.grantPermissions(adbId, config.bundleId, defaultPermissions);
263+
await adb.grantPermissions(adbId, config.bundleId);
266264
}
267265

268266
return {
@@ -342,8 +340,7 @@ export const getAndroidPhysicalDevicePlatformInstance = async (
342340
const appUid = await configureAndroidRuntime(adbId, config, harnessConfig);
343341

344342
if (permissionsEnabled) {
345-
const defaultPermissions = getDefaultAndroidPermissions();
346-
await adb.grantPermissions(adbId, config.bundleId, defaultPermissions);
343+
await adb.grantPermissions(adbId, config.bundleId);
347344
}
348345

349346
return {

packages/platform-android/src/permissions.ts

Lines changed: 0 additions & 27 deletions
This file was deleted.

0 commit comments

Comments
 (0)