1 | import { NativeModulesProxy, UnavailabilityError } from '@unimodules/core';
|
2 | import { PermissionStatus } from 'expo-modules-core';
|
3 | import { Platform } from 'react-native';
|
4 | const { CTKAdSettingsManager } = NativeModulesProxy;
|
5 | export { PermissionStatus };
|
6 | const androidPermissionsResponse = {
|
7 | granted: true,
|
8 | expires: 'never',
|
9 | canAskAgain: true,
|
10 | status: PermissionStatus.GRANTED,
|
11 | };
|
12 |
|
13 | export default {
|
14 | |
15 |
|
16 |
|
17 | get currentDeviceHash() {
|
18 | return CTKAdSettingsManager.currentDeviceHash;
|
19 | },
|
20 | async requestPermissionsAsync() {
|
21 | if (Platform.OS === 'android') {
|
22 | return Promise.resolve(androidPermissionsResponse);
|
23 | }
|
24 | if (!CTKAdSettingsManager.requestPermissionsAsync) {
|
25 | throw new UnavailabilityError('expo-ads-facebook', 'requestPermissionsAsync');
|
26 | }
|
27 | return await CTKAdSettingsManager.requestPermissionsAsync();
|
28 | },
|
29 | async getPermissionsAsync() {
|
30 | if (Platform.OS === 'android') {
|
31 | return Promise.resolve(androidPermissionsResponse);
|
32 | }
|
33 | if (!CTKAdSettingsManager.getPermissionsAsync) {
|
34 | throw new UnavailabilityError('expo-ads-facebook', 'getPermissionsAsync');
|
35 | }
|
36 | return await CTKAdSettingsManager.getPermissionsAsync();
|
37 | },
|
38 | |
39 |
|
40 |
|
41 | setAdvertiserTrackingEnabled(enabled) {
|
42 |
|
43 | if (Platform.OS !== 'ios') {
|
44 | return;
|
45 | }
|
46 | if (!CTKAdSettingsManager.setAdvertiserTrackingEnabled) {
|
47 | throw new UnavailabilityError('expo-ads-facebook', 'setAdvertiserTrackingEnabled');
|
48 | }
|
49 | CTKAdSettingsManager.setAdvertiserTrackingEnabled(enabled);
|
50 | },
|
51 | |
52 |
|
53 |
|
54 | addTestDevice(deviceHash) {
|
55 | CTKAdSettingsManager.addTestDevice(deviceHash);
|
56 | },
|
57 | |
58 |
|
59 |
|
60 | clearTestDevices() {
|
61 | CTKAdSettingsManager.clearTestDevices();
|
62 | },
|
63 | |
64 |
|
65 |
|
66 | setLogLevel(logLevel) {
|
67 | CTKAdSettingsManager.setLogLevel(logLevel);
|
68 | },
|
69 | |
70 |
|
71 |
|
72 | setIsChildDirected(isDirected) {
|
73 | CTKAdSettingsManager.setIsChildDirected(isDirected);
|
74 | },
|
75 | |
76 |
|
77 |
|
78 | setMediationService(mediationService) {
|
79 | CTKAdSettingsManager.setMediationService(mediationService);
|
80 | },
|
81 | |
82 |
|
83 |
|
84 | setUrlPrefix(urlPrefix) {
|
85 | CTKAdSettingsManager.setUrlPrefix(urlPrefix || null);
|
86 | },
|
87 | };
|
88 |
|
\ | No newline at end of file |