Skip to content

Commit b0da728

Browse files
committed
feat(ios): precision constants on new arch
1 parent cd3211d commit b0da728

File tree

7 files changed

+40
-52
lines changed

7 files changed

+40
-52
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ When using The New Architecture, some legacy code will still be used though. See
4242
| iOS | Full Screen Ads (Turbo Native Module) | ✅ Complete |
4343
| iOS | User Messaging Platform (Turbo Native Module) | ⏳ To-Do |
4444
| iOS | EventEmitter (Turbo Native Module) | ⏳ To-Do |
45-
| iOS | Revenue Precision Constants (Turbo Native Module) | ⏳ To-Do |
45+
| iOS | Revenue Precision Constants (Turbo Native Module) | ✅ Complete |
4646
| Android | Mobile Ads SDK Methods (Turbo Native Module) | ⏳ To-Do |
4747
| Android | Banners (Fabric Native Component) | ⏳ To-Do |
4848
| Android | Full Screen Ads (Turbo Native Module) | ⏳ To-Do |

android/src/main/java/io/invertase/googlemobileads/ReactNativeAppModule.java

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,13 @@
2121
import com.facebook.react.bridge.ReactApplicationContext;
2222
import com.facebook.react.bridge.ReactMethod;
2323
import com.facebook.react.bridge.ReadableMap;
24-
import com.google.android.gms.ads.AdValue;
2524
import io.invertase.googlemobileads.common.RCTConvert;
2625
import io.invertase.googlemobileads.common.ReactNativeEvent;
2726
import io.invertase.googlemobileads.common.ReactNativeEventEmitter;
2827
import io.invertase.googlemobileads.common.ReactNativeJSON;
2928
import io.invertase.googlemobileads.common.ReactNativeMeta;
3029
import io.invertase.googlemobileads.common.ReactNativeModule;
3130
import io.invertase.googlemobileads.common.ReactNativePreferences;
32-
import java.util.HashMap;
33-
import java.util.Map;
3431

3532
public class ReactNativeAppModule extends ReactNativeModule {
3633
private static final String TAG = "RNAppModule";
@@ -150,29 +147,4 @@ public void preferencesClearAll(Promise promise) {
150147
ReactNativePreferences.getSharedInstance().clearAll();
151148
promise.resolve(null);
152149
}
153-
154-
@Override
155-
public Map<String, Object> getConstants() {
156-
Map<String, Object> constants = new HashMap<>();
157-
// List<Map<String, Object>> appsList = new ArrayList<>();
158-
// List<ReactNativeApp> reactNativeApps = ReactNativeApp.getApps(getReactApplicationContext());
159-
160-
// for (ReactNativeApp app : reactNativeApps) {
161-
// appsList.add(RCTConvertFirebase.reactNativeAppToMap(app));
162-
// }
163-
164-
// constants.put("NATIVE_FIREBASE_APPS", appsList);
165-
166-
// constants.put("FIREBASE_RAW_JSON", ReactNativeJSON.getSharedInstance().getRawJSON());
167-
168-
// Precision types in ad revenue events.
169-
// See:
170-
// https://developers.google.com/android/reference/com/google/android/gms/ads/AdValue.PrecisionType
171-
constants.put("REVENUE_PRECISION_UNKNOWN", AdValue.PrecisionType.UNKNOWN);
172-
constants.put("REVENUE_PRECISION_ESTIMATED", AdValue.PrecisionType.ESTIMATED);
173-
constants.put("REVENUE_PRECISION_PUBLISHER_PROVIDED", AdValue.PrecisionType.PUBLISHER_PROVIDED);
174-
constants.put("REVENUE_PRECISION_PRECISE", AdValue.PrecisionType.PRECISE);
175-
176-
return constants;
177-
}
178150
}

android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsModule.kt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import com.google.android.gms.ads.initialization.OnInitializationCompleteListene
2323
import com.google.android.gms.ads.RequestConfiguration
2424
import com.google.android.gms.ads.AdInspectorError
2525
import com.google.android.gms.ads.AdRequest
26+
import com.google.android.gms.ads.AdValue;
2627
import com.google.android.gms.ads.OnAdInspectorClosedListener
2728

2829
private const val SERVICE = "RNGoogleMobileAdsModule";
@@ -33,6 +34,18 @@ class ReactNativeGoogleMobileAdsModule(
3334

3435
override fun getName() = SERVICE
3536

37+
override fun getConstants(): Map<String, Any> {
38+
return mapOf(
39+
// Precision types in ad revenue events.
40+
// See:
41+
// https://developers.google.com/android/reference/com/google/android/gms/ads/AdValue.PrecisionType
42+
"REVENUE_PRECISION_UNKNOWN" to AdValue.PrecisionType.UNKNOWN,
43+
"REVENUE_PRECISION_ESTIMATED" to AdValue.PrecisionType.ESTIMATED,
44+
"REVENUE_PRECISION_PUBLISHER_PROVIDED" to AdValue.PrecisionType.PUBLISHER_PROVIDED,
45+
"REVENUE_PRECISION_PRECISE" to AdValue.PrecisionType.PRECISE
46+
)
47+
}
48+
3649
private fun buildRequestConfiguration(
3750
requestConfiguration: ReadableMap
3851
): RequestConfiguration {

ios/RNGoogleMobileAds/RNGoogleMobileAdsModule.mm

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,4 +175,21 @@ - (void)openAdInspector:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseReject
175175
#endif
176176
}
177177

178+
- (NSDictionary *)constantsToExport {
179+
return @{
180+
// Precision types in ad revenue events.
181+
// See: https://developers.google.com/admob/ios/impression-level-ad-revenue#objective-c
182+
#if !TARGET_OS_MACCATALYST
183+
@"REVENUE_PRECISION_UNKNOWN" : @(GADAdValuePrecisionUnknown),
184+
@"REVENUE_PRECISION_ESTIMATED" : @(GADAdValuePrecisionEstimated),
185+
@"REVENUE_PRECISION_PUBLISHER_PROVIDED" : @(GADAdValuePrecisionPublisherProvided),
186+
@"REVENUE_PRECISION_PRECISE" : @(GADAdValuePrecisionPrecise)
187+
};
188+
#endif
189+
}
190+
191+
- (NSDictionary *)getConstants {
192+
return [self constantsToExport];
193+
}
194+
178195
@end

ios/RNGoogleMobileAds/common/RNAppModule.m

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,6 @@
1717

1818
#import <React/RCTUtils.h>
1919

20-
#if !TARGET_OS_MACCATALYST
21-
#import <GoogleMobileAds/GoogleMobileAds.h>
22-
#endif
23-
2420
#import "RNAppModule.h"
2521
#import "RNJSON.h"
2622
#import "RNMeta.h"
@@ -148,23 +144,6 @@ - (void)invalidate {
148144
// Keep: Required for RN built in Event Emitter Calls.
149145
}
150146

151-
- (NSDictionary *)constantsToExport {
152-
NSMutableDictionary *constants = [NSMutableDictionary new];
153-
154-
constants[@"ADMOB_RAW_JSON"] = [[RNJSON shared] getRawJSON];
155-
156-
// Precision types in ad revenue events.
157-
// See: https://developers.google.com/admob/ios/impression-level-ad-revenue#objective-c
158-
#if !TARGET_OS_MACCATALYST
159-
constants[@"REVENUE_PRECISION_UNKNOWN"] = @(GADAdValuePrecisionUnknown);
160-
constants[@"REVENUE_PRECISION_ESTIMATED"] = @(GADAdValuePrecisionEstimated);
161-
constants[@"REVENUE_PRECISION_PUBLISHER_PROVIDED"] = @(GADAdValuePrecisionPublisherProvided);
162-
constants[@"REVENUE_PRECISION_PRECISE"] = @(GADAdValuePrecisionPrecise);
163-
#endif
164-
165-
return constants;
166-
}
167-
168147
+ (BOOL)requiresMainQueueSetup {
169148
return YES;
170149
}

src/common/constants.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import { NativeModules } from 'react-native';
1+
import RNGoogleMobileAdsModule from '../specs/modules/NativeGoogleMobileAdsModule';
22

33
const {
44
REVENUE_PRECISION_ESTIMATED,
55
REVENUE_PRECISION_PRECISE,
66
REVENUE_PRECISION_PUBLISHER_PROVIDED,
77
REVENUE_PRECISION_UNKNOWN,
8-
} = NativeModules.RNAppModule.getConstants?.() ?? {};
8+
} = RNGoogleMobileAdsModule.getConstants?.() ?? {};
99

1010
export enum RevenuePrecisions {
1111
ESTIMATED = REVENUE_PRECISION_ESTIMATED,

src/specs/modules/NativeGoogleMobileAdsModule.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,13 @@ import { UnsafeObject } from 'react-native/Libraries/Types/CodegenTypes';
2222
import { AdapterStatus } from '../../types';
2323

2424
export interface Spec extends TurboModule {
25+
readonly getConstants: () => {
26+
REVENUE_PRECISION_ESTIMATED: number;
27+
REVENUE_PRECISION_PRECISE: number;
28+
REVENUE_PRECISION_PUBLISHER_PROVIDED: number;
29+
REVENUE_PRECISION_UNKNOWN: number;
30+
};
31+
2532
initialize(): Promise<AdapterStatus[]>;
2633
setRequestConfiguration(requestConfiguration?: UnsafeObject): Promise<void>;
2734
openAdInspector(): Promise<void>;

0 commit comments

Comments
 (0)