Skip to content

Commit abfe1f2

Browse files
authored
Replace deprecated microphone API (#846)
1 parent da6df08 commit abfe1f2

File tree

3 files changed

+28
-16
lines changed

3 files changed

+28
-16
lines changed

example/ios/Podfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1385,7 +1385,7 @@ SPEC CHECKSUMS:
13851385
RNPermissions: 51fed66ea0c3b6ac8e041a2c4940c681365da2df
13861386
RNVectorIcons: 210f910e834e3485af40693ad4615c1ec22fc02b
13871387
SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17
1388-
Yoga: 64cd2a583ead952b0315d5135bf39e053ae9be70
1388+
Yoga: 1b901a6d6eeba4e8a2e8f308f708691cdb5db312
13891389

13901390
PODFILE CHECKSUM: 63d66a53e8a7a4bd573cf25dce961a936e0894e6
13911391

example/yarn.lock

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4503,11 +4503,6 @@ pkg-up@^3.1.0:
45034503
dependencies:
45044504
find-up "^3.0.0"
45054505

4506-
pod-install@^0.2.0:
4507-
version "0.2.0"
4508-
resolved "https://registry.yarnpkg.com/pod-install/-/pod-install-0.2.0.tgz#11f87e919f83bbd4deaa159aa5ce2f617ee0ff9d"
4509-
integrity sha512-NxNEq5OpIFn0UjS9hznBNDMvQw2+3diEegChIr2Zv2XlWaNRcOoUp6Kc2zrD372C49QXoZRwzc0Aqf6605Ftjg==
4510-
45114506
pretty-format@^26.5.2, pretty-format@^26.6.2:
45124507
version "26.6.2"
45134508
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93"

ios/Microphone/RNPermissionHandlerMicrophone.m

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,38 @@ + (NSString * _Nonnull)handlerUniqueId {
1414

1515
- (void)checkWithResolver:(void (^ _Nonnull)(RNPermissionStatus))resolve
1616
rejecter:(void (__unused ^ _Nonnull)(NSError * _Nonnull))reject {
17-
switch ([[AVAudioSession sharedInstance] recordPermission]) {
18-
case AVAudioSessionRecordPermissionUndetermined:
19-
return resolve(RNPermissionStatusNotDetermined);
20-
case AVAudioSessionRecordPermissionDenied:
21-
return resolve(RNPermissionStatusDenied);
22-
case AVAudioSessionRecordPermissionGranted:
23-
return resolve(RNPermissionStatusAuthorized);
17+
if (@available(iOS 17.0, *)) {
18+
switch ([[AVAudioApplication sharedInstance] recordPermission]) {
19+
case AVAudioApplicationRecordPermissionUndetermined:
20+
return resolve(RNPermissionStatusNotDetermined);
21+
case AVAudioApplicationRecordPermissionDenied:
22+
return resolve(RNPermissionStatusDenied);
23+
case AVAudioApplicationRecordPermissionGranted:
24+
return resolve(RNPermissionStatusAuthorized);
25+
}
26+
} else {
27+
switch ([[AVAudioSession sharedInstance] recordPermission]) {
28+
case AVAudioSessionRecordPermissionUndetermined:
29+
return resolve(RNPermissionStatusNotDetermined);
30+
case AVAudioSessionRecordPermissionDenied:
31+
return resolve(RNPermissionStatusDenied);
32+
case AVAudioSessionRecordPermissionGranted:
33+
return resolve(RNPermissionStatusAuthorized);
34+
}
2435
}
2536
}
2637

2738
- (void)requestWithResolver:(void (^ _Nonnull)(RNPermissionStatus))resolve
2839
rejecter:(void (^ _Nonnull)(NSError * _Nonnull))reject {
29-
[[AVAudioSession sharedInstance] requestRecordPermission:^(__unused BOOL granted) {
30-
[self checkWithResolver:resolve rejecter:reject];
31-
}];
40+
if (@available(iOS 17.0, *)) {
41+
[AVAudioApplication requestRecordPermissionWithCompletionHandler:^(__unused BOOL granted) {
42+
[self checkWithResolver:resolve rejecter:reject];
43+
}];
44+
} else {
45+
[[AVAudioSession sharedInstance] requestRecordPermission:^(__unused BOOL granted) {
46+
[self checkWithResolver:resolve rejecter:reject];
47+
}];
48+
}
3249
}
3350

3451
@end

0 commit comments

Comments
 (0)