tapjoy-react-native-sdk 14.4.0 → 14.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/build.gradle +8 -15
- package/android/gradle.properties +3 -3
- package/android/src/main/java/com/tapjoyreactnativesdk/TJOfferwallDiscoverNativeView.kt +2 -2
- package/android/src/main/java/com/tapjoyreactnativesdk/TJOfferwallDiscoverNativeViewManager.kt +21 -16
- package/android/src/main/java/com/tapjoyreactnativesdk/TapjoyReactNativeSdkModule.kt +130 -87
- package/android/src/main/java/com/tapjoyreactnativesdk/TapjoyReactNativeSdkPackage.kt +29 -5
- package/example/android/app/build.gradle +1 -1
- package/example/android/app/src/main/java/com/tapjoyreactnativesdkexample/MainApplication.kt +2 -8
- package/example/android/build.gradle +4 -4
- package/example/android/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/example/android/gradle.properties +5 -0
- package/example/ios/Podfile +2 -1
- package/example/ios/TapjoyReactNativeSdkExample/Info.plist +3 -1
- package/example/ios/TapjoyReactNativeSdkExample.xcodeproj/project.pbxproj +0 -45
- package/example/metro.config.js +9 -15
- package/example/package.json +19 -16
- package/example/scripts/set-arch.sh +25 -0
- package/example/src/App.tsx +1 -2
- package/example/src/MainScreen.tsx +76 -60
- package/example/src/OfferwallDiscoverScreen.tsx +105 -91
- package/example/src/OfferwallScreen.tsx +170 -156
- package/example/src/Styles.ts +3 -2
- package/example/src/UserProperties.tsx +170 -136
- package/ios/TJOfferwallDiscoverNativeViewManager.m +11 -1
- package/ios/TJOfferwallDiscoverNativeViewManager.swift +2 -2
- package/ios/TapjoyReactNativeSdk.m +36 -15
- package/ios/TapjoyReactNativeSdk.swift +24 -4
- package/lib/commonjs/NativeTapjoyReactNativeSdk.js +2 -0
- package/lib/commonjs/TJOfferwallDiscoverView.js +43 -16
- package/lib/commonjs/TJOfferwallDiscoverViewNativeComponent.js +6 -0
- package/lib/commonjs/TJPlacement.js +17 -13
- package/lib/commonjs/TJPrivacyPolicy.js +81 -11
- package/lib/commonjs/TJVersion.js +1 -1
- package/lib/commonjs/Tapjoy.js +16 -10
- package/lib/commonjs/index.js +2 -1
- package/lib/commonjs/utils/ArchitectureDetection.js +7 -0
- package/lib/typescript/NativeTapjoyReactNativeSdk.d.ts +53 -0
- package/lib/typescript/TJOfferwallDiscoverView.d.ts +3 -12
- package/lib/typescript/TJOfferwallDiscoverViewNativeComponent.d.ts +21 -0
- package/lib/typescript/TJPrivacyPolicy.d.ts +29 -1
- package/lib/typescript/Tapjoy.d.ts +1 -1
- package/lib/typescript/index.d.ts +5 -3
- package/lib/typescript/utils/ArchitectureDetection.d.ts +5 -0
- package/package.json +14 -16
- package/src/NativeTapjoyReactNativeSdk.ts +117 -0
- package/src/TJOfferwallDiscoverView.tsx +56 -39
- package/src/TJOfferwallDiscoverViewNativeComponent.ts +37 -0
- package/src/TJPlacement.ts +17 -13
- package/src/TJPrivacyPolicy.ts +84 -12
- package/src/TJVersion.ts +1 -1
- package/src/Tapjoy.ts +20 -13
- package/src/index.ts +13 -3
- package/src/utils/ArchitectureDetection.ts +14 -0
- package/tapjoy-react-native-sdk.podspec +1 -1
|
@@ -35,11 +35,13 @@
|
|
|
35
35
|
<string></string>
|
|
36
36
|
<key>NSUserTrackingUsageDescription</key>
|
|
37
37
|
<string>This allows us to deliver personalized ads for you.</string>
|
|
38
|
+
<key>RCTNewArchEnabled</key>
|
|
39
|
+
<true/>
|
|
38
40
|
<key>UILaunchStoryboardName</key>
|
|
39
41
|
<string>LaunchScreen</string>
|
|
40
42
|
<key>UIRequiredDeviceCapabilities</key>
|
|
41
43
|
<array>
|
|
42
|
-
<string>
|
|
44
|
+
<string>arm64</string>
|
|
43
45
|
</array>
|
|
44
46
|
<key>UISupportedInterfaceOrientations</key>
|
|
45
47
|
<array>
|
|
@@ -15,21 +15,10 @@
|
|
|
15
15
|
B58E4E7E8EDB14A1C5F1CBAA /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = EDEB0408D1807C711EE2B6BB /* PrivacyInfo.xcprivacy */; };
|
|
16
16
|
/* End PBXBuildFile section */
|
|
17
17
|
|
|
18
|
-
/* Begin PBXContainerItemProxy section */
|
|
19
|
-
00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = {
|
|
20
|
-
isa = PBXContainerItemProxy;
|
|
21
|
-
containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
|
|
22
|
-
proxyType = 1;
|
|
23
|
-
remoteGlobalIDString = 13B07F861A680F5B00A75B9A;
|
|
24
|
-
remoteInfo = TapjoyReactNativeSdkExample;
|
|
25
|
-
};
|
|
26
|
-
/* End PBXContainerItemProxy section */
|
|
27
|
-
|
|
28
18
|
/* Begin PBXFileReference section */
|
|
29
19
|
00E356EE1AD99517003FC87E /* TapjoyReactNativeSdkExampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TapjoyReactNativeSdkExampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
30
20
|
13B07F961A680F5B00A75B9A /* TapjoyReactNativeSdkExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TapjoyReactNativeSdkExample.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
31
21
|
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = TapjoyReactNativeSdkExample/Images.xcassets; sourceTree = "<group>"; };
|
|
32
|
-
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = TapjoyReactNativeSdkExample/Info.plist; sourceTree = "<group>"; };
|
|
33
22
|
19F6CBCC0A4E27FBF8BF4A61 /* libPods-TapjoyReactNativeSdkExample-TapjoyReactNativeSdkExampleTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-TapjoyReactNativeSdkExample-TapjoyReactNativeSdkExampleTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
34
23
|
3B4392A12AC88292D35C810B /* Pods-TapjoyReactNativeSdkExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TapjoyReactNativeSdkExample.debug.xcconfig"; path = "Target Support Files/Pods-TapjoyReactNativeSdkExample/Pods-TapjoyReactNativeSdkExample.debug.xcconfig"; sourceTree = "<group>"; };
|
|
35
24
|
5709B34CF0A7D63546082F79 /* Pods-TapjoyReactNativeSdkExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TapjoyReactNativeSdkExample.release.xcconfig"; path = "Target Support Files/Pods-TapjoyReactNativeSdkExample/Pods-TapjoyReactNativeSdkExample.release.xcconfig"; sourceTree = "<group>"; };
|
|
@@ -62,27 +51,11 @@
|
|
|
62
51
|
/* End PBXFrameworksBuildPhase section */
|
|
63
52
|
|
|
64
53
|
/* Begin PBXGroup section */
|
|
65
|
-
00E356EF1AD99517003FC87E /* TapjoyReactNativeSdkExampleTests */ = {
|
|
66
|
-
isa = PBXGroup;
|
|
67
|
-
children = (
|
|
68
|
-
00E356F01AD99517003FC87E /* Supporting Files */,
|
|
69
|
-
);
|
|
70
|
-
path = TapjoyReactNativeSdkExampleTests;
|
|
71
|
-
sourceTree = "<group>";
|
|
72
|
-
};
|
|
73
|
-
00E356F01AD99517003FC87E /* Supporting Files */ = {
|
|
74
|
-
isa = PBXGroup;
|
|
75
|
-
children = (
|
|
76
|
-
);
|
|
77
|
-
name = "Supporting Files";
|
|
78
|
-
sourceTree = "<group>";
|
|
79
|
-
};
|
|
80
54
|
13B07FAE1A68108700A75B9A /* TapjoyReactNativeSdkExample */ = {
|
|
81
55
|
isa = PBXGroup;
|
|
82
56
|
children = (
|
|
83
57
|
5BA1D0092DD34B1600CF7906 /* AppDelegate.swift */,
|
|
84
58
|
13B07FB51A68108700A75B9A /* Images.xcassets */,
|
|
85
|
-
13B07FB61A68108700A75B9A /* Info.plist */,
|
|
86
59
|
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */,
|
|
87
60
|
EDEB0408D1807C711EE2B6BB /* PrivacyInfo.xcprivacy */,
|
|
88
61
|
);
|
|
@@ -111,7 +84,6 @@
|
|
|
111
84
|
children = (
|
|
112
85
|
13B07FAE1A68108700A75B9A /* TapjoyReactNativeSdkExample */,
|
|
113
86
|
832341AE1AAA6A7D00B99B32 /* Libraries */,
|
|
114
|
-
00E356EF1AD99517003FC87E /* TapjoyReactNativeSdkExampleTests */,
|
|
115
87
|
83CBBA001A601CBA00E9B192 /* Products */,
|
|
116
88
|
2D16E6871FA4F8E400B85C8A /* Frameworks */,
|
|
117
89
|
BBD78D7AC51CEA395F1C20DB /* Pods */,
|
|
@@ -151,14 +123,12 @@
|
|
|
151
123
|
A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */,
|
|
152
124
|
00E356EA1AD99517003FC87E /* Sources */,
|
|
153
125
|
00E356EB1AD99517003FC87E /* Frameworks */,
|
|
154
|
-
00E356EC1AD99517003FC87E /* Resources */,
|
|
155
126
|
C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */,
|
|
156
127
|
F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */,
|
|
157
128
|
);
|
|
158
129
|
buildRules = (
|
|
159
130
|
);
|
|
160
131
|
dependencies = (
|
|
161
|
-
00E356F51AD99517003FC87E /* PBXTargetDependency */,
|
|
162
132
|
);
|
|
163
133
|
name = TapjoyReactNativeSdkExampleTests;
|
|
164
134
|
productName = TapjoyReactNativeSdkExampleTests;
|
|
@@ -224,13 +194,6 @@
|
|
|
224
194
|
/* End PBXProject section */
|
|
225
195
|
|
|
226
196
|
/* Begin PBXResourcesBuildPhase section */
|
|
227
|
-
00E356EC1AD99517003FC87E /* Resources */ = {
|
|
228
|
-
isa = PBXResourcesBuildPhase;
|
|
229
|
-
buildActionMask = 2147483647;
|
|
230
|
-
files = (
|
|
231
|
-
);
|
|
232
|
-
runOnlyForDeploymentPostprocessing = 0;
|
|
233
|
-
};
|
|
234
197
|
13B07F8E1A680F5B00A75B9A /* Resources */ = {
|
|
235
198
|
isa = PBXResourcesBuildPhase;
|
|
236
199
|
buildActionMask = 2147483647;
|
|
@@ -411,14 +374,6 @@
|
|
|
411
374
|
};
|
|
412
375
|
/* End PBXSourcesBuildPhase section */
|
|
413
376
|
|
|
414
|
-
/* Begin PBXTargetDependency section */
|
|
415
|
-
00E356F51AD99517003FC87E /* PBXTargetDependency */ = {
|
|
416
|
-
isa = PBXTargetDependency;
|
|
417
|
-
target = 13B07F861A680F5B00A75B9A /* TapjoyReactNativeSdkExample */;
|
|
418
|
-
targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */;
|
|
419
|
-
};
|
|
420
|
-
/* End PBXTargetDependency section */
|
|
421
|
-
|
|
422
377
|
/* Begin XCBuildConfiguration section */
|
|
423
378
|
00E356F61AD99517003FC87E /* Debug */ = {
|
|
424
379
|
isa = XCBuildConfiguration;
|
package/example/metro.config.js
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
const path = require('path');
|
|
2
2
|
const escape = require('escape-string-regexp');
|
|
3
|
-
const exclusionList = require('metro-config/src/defaults/exclusionList');
|
|
4
3
|
const pak = require('../package.json');
|
|
5
4
|
const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');
|
|
6
5
|
|
|
7
6
|
const root = path.resolve(__dirname, '..');
|
|
8
|
-
|
|
9
|
-
const modules = Object.keys({
|
|
10
|
-
...pak.peerDependencies,
|
|
11
|
-
});
|
|
7
|
+
const modules = Object.keys(pak.peerDependencies);
|
|
12
8
|
|
|
13
9
|
/**
|
|
14
10
|
* Metro configuration
|
|
@@ -17,20 +13,18 @@ const modules = Object.keys({
|
|
|
17
13
|
* @type {import('@react-native/metro-config').MetroConfig}
|
|
18
14
|
*/
|
|
19
15
|
|
|
20
|
-
|
|
16
|
+
const defaultConfig = getDefaultConfig(__dirname);
|
|
17
|
+
|
|
18
|
+
const blockList = modules.map(
|
|
19
|
+
(m) => new RegExp(`^${escape(path.join(root, 'node_modules', m))}\\/.*$`)
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
module.exports = mergeConfig(defaultConfig, {
|
|
21
23
|
projectRoot: __dirname,
|
|
22
24
|
watchFolders: [root],
|
|
23
25
|
|
|
24
|
-
// We need to make sure that only one version is loaded for peerDependencies
|
|
25
|
-
// So we block them at the root, and alias them to the versions in example's node_modules
|
|
26
26
|
resolver: {
|
|
27
|
-
|
|
28
|
-
modules.map(
|
|
29
|
-
(m) =>
|
|
30
|
-
new RegExp(`^${escape(path.join(root, 'node_modules', m))}\\/.*$`)
|
|
31
|
-
)
|
|
32
|
-
),
|
|
33
|
-
|
|
27
|
+
blockList: blockList,
|
|
34
28
|
extraNodeModules: modules.reduce((acc, name) => {
|
|
35
29
|
acc[name] = path.join(__dirname, 'node_modules', name);
|
|
36
30
|
return acc;
|
package/example/package.json
CHANGED
|
@@ -1,41 +1,44 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "TapjoyReactNativeSdkExample",
|
|
3
|
-
"version": "14.
|
|
3
|
+
"version": "14.6.0",
|
|
4
4
|
"private": true,
|
|
5
5
|
"scripts": {
|
|
6
6
|
"android": "react-native run-android",
|
|
7
7
|
"ios": "react-native run-ios",
|
|
8
8
|
"start": "react-native start",
|
|
9
|
-
"pods": "pod-install --quiet"
|
|
9
|
+
"pods": "pod-install --quiet",
|
|
10
|
+
"set-new-arch": "./scripts/set-arch.sh true",
|
|
11
|
+
"set-old-arch": "./scripts/set-arch.sh false"
|
|
10
12
|
},
|
|
11
13
|
"dependencies": {
|
|
12
14
|
"tapjoy-react-native-sdk": "file:../",
|
|
13
15
|
"@react-native-async-storage/async-storage": "^2.1.2",
|
|
14
16
|
"@react-native-masked-view/masked-view": "^0.3.2",
|
|
15
|
-
"@react-native-picker/picker": "^2.11.
|
|
17
|
+
"@react-native-picker/picker": "^2.11.1",
|
|
16
18
|
"@react-navigation/bottom-tabs": "^7.3.13",
|
|
17
19
|
"@react-navigation/native": "^7.1.9",
|
|
20
|
+
"@react-native/new-app-screen": "0.81.0",
|
|
18
21
|
"dayjs": "^1.11.13",
|
|
19
|
-
"react": "19.
|
|
20
|
-
"react-native": "0.
|
|
21
|
-
"react-native-gesture-handler": "^2.
|
|
22
|
+
"react": "19.1.0",
|
|
23
|
+
"react-native": "0.81.0",
|
|
24
|
+
"react-native-gesture-handler": "^2.28.0",
|
|
22
25
|
"react-native-picker-select": "^9.3.1",
|
|
23
|
-
"react-native-reanimated": "^3.
|
|
24
|
-
"react-native-safe-area-context": "^5.
|
|
25
|
-
"react-native-screens": "^4.
|
|
26
|
-
"react-native-toast-message": "^2.
|
|
26
|
+
"react-native-reanimated": "^3.19.1",
|
|
27
|
+
"react-native-safe-area-context": "^5.6.1",
|
|
28
|
+
"react-native-screens": "^4.15.2",
|
|
29
|
+
"react-native-toast-message": "^2.3.3",
|
|
27
30
|
"react-native-tracking-transparency": "^0.1.2"
|
|
28
31
|
},
|
|
29
32
|
"devDependencies": {
|
|
30
33
|
"@babel/core": "^7.25.2",
|
|
31
34
|
"@babel/preset-env": "^7.25.4",
|
|
32
35
|
"@babel/runtime": "^7.25.6",
|
|
33
|
-
"@react-native-community/cli": "
|
|
34
|
-
"@react-native-community/cli-platform-android": "
|
|
35
|
-
"@react-native-community/cli-platform-ios": "
|
|
36
|
-
"@react-native/babel-preset": "0.
|
|
37
|
-
"@react-native/metro-config": "
|
|
38
|
-
"@react-native/typescript-config": "0.
|
|
36
|
+
"@react-native-community/cli": "20.0.0",
|
|
37
|
+
"@react-native-community/cli-platform-android": "20.0.0",
|
|
38
|
+
"@react-native-community/cli-platform-ios": "20.0.0",
|
|
39
|
+
"@react-native/babel-preset": "0.81.0",
|
|
40
|
+
"@react-native/metro-config": "0.81.0",
|
|
41
|
+
"@react-native/typescript-config": "0.81.0"
|
|
39
42
|
},
|
|
40
43
|
"engines": {
|
|
41
44
|
"node": ">=18"
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
set -eu
|
|
3
|
+
BASE_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
4
|
+
GRADLE_PROPERTIES="$BASE_DIR/../android/gradle.properties"
|
|
5
|
+
PODFILE="$BASE_DIR/../ios/Podfile"
|
|
6
|
+
ANDROID_DIR="$BASE_DIR/../android"
|
|
7
|
+
IOS_DIR="$BASE_DIR/../ios"
|
|
8
|
+
if [ "$#" -ne 1 ]; then
|
|
9
|
+
echo "Usage: set-arch.sh <true|false>"
|
|
10
|
+
exit 1
|
|
11
|
+
fi
|
|
12
|
+
VALUE="$1"
|
|
13
|
+
if [ "$VALUE" != "true" ] && [ "$VALUE" != "false" ]; then
|
|
14
|
+
echo "Expected true or false"
|
|
15
|
+
exit 1
|
|
16
|
+
fi
|
|
17
|
+
/usr/bin/sed -i '' "s/^newArchEnabled=.*/newArchEnabled=$VALUE/" "$GRADLE_PROPERTIES"
|
|
18
|
+
/usr/bin/sed -i '' "s/:new_arch_enabled => .*/:new_arch_enabled => $VALUE/" "$PODFILE"
|
|
19
|
+
|
|
20
|
+
echo "Running gradle clean..."
|
|
21
|
+
cd "$ANDROID_DIR" && ./gradlew clean
|
|
22
|
+
|
|
23
|
+
echo "Running pod install..."
|
|
24
|
+
cd "$IOS_DIR" && pod install
|
|
25
|
+
|
package/example/src/App.tsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { useState } from 'react';
|
|
2
2
|
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
|
|
3
3
|
import { NavigationContainer } from '@react-navigation/native';
|
|
4
4
|
import { Dimensions } from 'react-native';
|
|
@@ -20,7 +20,6 @@ export default function App() {
|
|
|
20
20
|
<ConnectContext.Provider value={{ isSdkConnected, setIsSdkConnected }}>
|
|
21
21
|
<Tab.Navigator
|
|
22
22
|
screenOptions={{
|
|
23
|
-
scrollEnabled: true,
|
|
24
23
|
tabBarLabelPosition: 'beside-icon',
|
|
25
24
|
tabBarLabelStyle: styles.tabBarLabelStyle,
|
|
26
25
|
tabBarIconStyle: styles.tabBarIconStyle,
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import React, { useState, useEffect, useContext } from 'react';
|
|
2
2
|
import {
|
|
3
3
|
View,
|
|
4
|
-
SafeAreaView,
|
|
5
4
|
TextInput,
|
|
6
5
|
Platform,
|
|
7
6
|
Text,
|
|
8
7
|
ScrollView,
|
|
8
|
+
TurboModuleRegistry
|
|
9
9
|
} from 'react-native';
|
|
10
|
+
import {
|
|
11
|
+
SafeAreaProvider,
|
|
12
|
+
useSafeAreaInsets,
|
|
13
|
+
} from 'react-native-safe-area-context';
|
|
10
14
|
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
11
15
|
import {
|
|
12
16
|
getTrackingStatus,
|
|
@@ -73,17 +77,17 @@ const MainScreen: React.FC = () => {
|
|
|
73
77
|
}
|
|
74
78
|
|
|
75
79
|
await Tapjoy.connect(sdkKey, flags, (event: TapjoyEvent) => {
|
|
76
|
-
|
|
77
|
-
|
|
80
|
+
setStatusLabelText(`Tapjoy SDK connected with Warning: ErrorCode: ${event.code} ${event.message} `);
|
|
81
|
+
},
|
|
78
82
|
);
|
|
79
83
|
setIsConnecting(false);
|
|
80
84
|
setSelectedLoggingLevel(await Tapjoy.getLoggingLevel());
|
|
81
85
|
Tapjoy.setCustomParameter("my_parameter");
|
|
82
86
|
setStatusLabelText(
|
|
83
87
|
'Tapjoy SDK Connected' +
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
88
|
+
(Object.keys(flags).length > 0
|
|
89
|
+
? `\nFlags: ${JSON.stringify(flags)}`
|
|
90
|
+
: '')
|
|
87
91
|
);
|
|
88
92
|
setIsSdkConnected(true);
|
|
89
93
|
} catch (error: any) {
|
|
@@ -107,9 +111,9 @@ const MainScreen: React.FC = () => {
|
|
|
107
111
|
let result = await Tapjoy.getCurrencyBalance();
|
|
108
112
|
setStatusLabelText(
|
|
109
113
|
'getCurrencyBalance returned ' +
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
114
|
+
result.currencyName +
|
|
115
|
+
': ' +
|
|
116
|
+
result.amount
|
|
113
117
|
);
|
|
114
118
|
} catch (error: any) {
|
|
115
119
|
setStatusLabelText(error.toString());
|
|
@@ -154,69 +158,81 @@ const MainScreen: React.FC = () => {
|
|
|
154
158
|
}
|
|
155
159
|
};
|
|
156
160
|
|
|
161
|
+
const safeAreaInsets = useSafeAreaInsets();
|
|
162
|
+
|
|
157
163
|
return (
|
|
158
|
-
<
|
|
159
|
-
<
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
style={[styles.zeroFlex, styles.leftSpacing]}
|
|
174
|
-
onPress={handleConnect}
|
|
175
|
-
disabled={isConnecting || Tapjoy.isConnected()}
|
|
176
|
-
/>
|
|
177
|
-
</View>
|
|
178
|
-
<View style={styles.currencyOuterContainer}>
|
|
179
|
-
<Text style={styles.labelText}>{'Managed Currency:'}</Text>
|
|
164
|
+
<SafeAreaProvider>
|
|
165
|
+
<View style={[
|
|
166
|
+
styles.mainContainer,
|
|
167
|
+
{
|
|
168
|
+
paddingTop: safeAreaInsets.top,
|
|
169
|
+
paddingBottom: safeAreaInsets.bottom,
|
|
170
|
+
paddingLeft: safeAreaInsets.left,
|
|
171
|
+
paddingRight: safeAreaInsets.right,
|
|
172
|
+
},
|
|
173
|
+
]}>
|
|
174
|
+
<ScrollView>
|
|
175
|
+
<View style={styles.container}>
|
|
176
|
+
<View style={styles.lineGap}>
|
|
177
|
+
<Text style={styles.statusText}>{statusLabelText}</Text>
|
|
178
|
+
</View>
|
|
180
179
|
<View style={styles.inputContainer}>
|
|
181
|
-
<Text style={styles.userPropertiesLabel}>Amount:</Text>
|
|
182
180
|
<TextInput
|
|
183
181
|
style={styles.textInput}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
placeholder="Managed Currency value"
|
|
188
|
-
/>
|
|
189
|
-
</View>
|
|
190
|
-
<View style={styles.currencyInnerContainer}>
|
|
191
|
-
<Button
|
|
192
|
-
style={styles.buttonGap}
|
|
193
|
-
title="Get"
|
|
194
|
-
onPress={getCurrencyBalance}
|
|
182
|
+
value={sdkKey}
|
|
183
|
+
onChangeText={setSdkKey}
|
|
184
|
+
placeholder="Enter SDK Key"
|
|
195
185
|
/>
|
|
196
186
|
<Button
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
onPress={
|
|
187
|
+
title="Connect"
|
|
188
|
+
style={[styles.zeroFlex, styles.leftSpacing]}
|
|
189
|
+
onPress={handleConnect}
|
|
190
|
+
disabled={isConnecting || Tapjoy.isConnected()}
|
|
200
191
|
/>
|
|
201
|
-
<Button title="Award" onPress={awardCurrency} />
|
|
202
192
|
</View>
|
|
203
|
-
<View style={styles.
|
|
204
|
-
<
|
|
205
|
-
|
|
206
|
-
<
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
193
|
+
<View style={styles.currencyOuterContainer}>
|
|
194
|
+
<Text style={styles.labelText}>{'Managed Currency:'}</Text>
|
|
195
|
+
<View style={styles.inputContainer}>
|
|
196
|
+
<Text style={styles.userPropertiesLabel}>Amount:</Text>
|
|
197
|
+
<TextInput
|
|
198
|
+
style={styles.textInput}
|
|
199
|
+
keyboardType='numeric'
|
|
200
|
+
value={curerncySpendAwardAmount}
|
|
201
|
+
onChangeText={handleAmountChange}
|
|
202
|
+
placeholder="Managed Currency value"
|
|
210
203
|
/>
|
|
211
204
|
</View>
|
|
205
|
+
<View style={styles.currencyInnerContainer}>
|
|
206
|
+
<Button
|
|
207
|
+
style={styles.buttonGap}
|
|
208
|
+
title="Get"
|
|
209
|
+
onPress={getCurrencyBalance}
|
|
210
|
+
/>
|
|
211
|
+
<Button
|
|
212
|
+
style={styles.buttonGap}
|
|
213
|
+
title="Spend"
|
|
214
|
+
onPress={spendCurrency}
|
|
215
|
+
/>
|
|
216
|
+
<Button title="Award" onPress={awardCurrency} />
|
|
217
|
+
</View>
|
|
218
|
+
<View style={styles.selectionContainer}>
|
|
219
|
+
<View style={styles.horizontalContainer}>
|
|
220
|
+
<Text style={styles.userPropertiesLabel}>Logging Level:</Text>
|
|
221
|
+
<SelectionMenu
|
|
222
|
+
data={loggingLevelData}
|
|
223
|
+
onSelectItem={handleLoggingLevelChange}
|
|
224
|
+
initialSelectedItem={loggingLevelData[selectedLoggingLevel]}
|
|
225
|
+
/>
|
|
226
|
+
</View>
|
|
227
|
+
</View>
|
|
212
228
|
</View>
|
|
213
229
|
</View>
|
|
214
|
-
</
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
</
|
|
219
|
-
</
|
|
230
|
+
</ScrollView>
|
|
231
|
+
<Text style={styles.versionText}>
|
|
232
|
+
Version: {TJVersion.getPluginVersion()}
|
|
233
|
+
</Text>
|
|
234
|
+
</View>
|
|
235
|
+
</SafeAreaProvider>
|
|
220
236
|
);
|
|
221
237
|
};
|
|
222
238
|
|