@ohos-ports/react-native-fbsdk-next 13.4.3-beta.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.
Files changed (284) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +943 -0
  3. package/android/build.gradle +57 -0
  4. package/android/src/main/AndroidManifest.xml +46 -0
  5. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBAccessTokenModule.java +151 -0
  6. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBActivityEventListener.java +40 -0
  7. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBAppEventsLoggerModule.java +414 -0
  8. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBAppLinkModule.java +86 -0
  9. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBGameRequestDialogModule.java +94 -0
  10. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBGraphRequestModule.java +283 -0
  11. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBLoginButtonManager.java +83 -0
  12. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBLoginManagerModule.java +171 -0
  13. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBMessageDialogModule.java +111 -0
  14. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBProfileModule.java +68 -0
  15. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBSDKCallbackManagerBaseJavaModule.java +41 -0
  16. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBSDKPackage.java +60 -0
  17. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBSendButtonManager.java +51 -0
  18. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBSettingsModule.java +95 -0
  19. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBShareButtonManager.java +53 -0
  20. package/android/src/main/java/com/facebook/reactnative/androidsdk/FBShareDialogModule.java +107 -0
  21. package/android/src/main/java/com/facebook/reactnative/androidsdk/RCTLoginButton.java +126 -0
  22. package/android/src/main/java/com/facebook/reactnative/androidsdk/RCTLoginButtonEvent.java +27 -0
  23. package/android/src/main/java/com/facebook/reactnative/androidsdk/ReactNativeFacebookSDKCallback.java +58 -0
  24. package/android/src/main/java/com/facebook/reactnative/androidsdk/Utility.java +283 -0
  25. package/app.plugin.js +1 -0
  26. package/expo-module.config.json +10 -0
  27. package/ios/ExpoAdapterFBSDKNext/FacebookAppDelegate.swift +21 -0
  28. package/ios/ExpoAdapterFBSDKNext.podspec +33 -0
  29. package/ios/RCTFBSDK/core/RCTConvert+FBSDKAccessToken.h +27 -0
  30. package/ios/RCTFBSDK/core/RCTConvert+FBSDKAccessToken.m +41 -0
  31. package/ios/RCTFBSDK/core/RCTFBSDKAEMReporter.m +30 -0
  32. package/ios/RCTFBSDK/core/RCTFBSDKAccessToken.h +24 -0
  33. package/ios/RCTFBSDK/core/RCTFBSDKAccessToken.m +115 -0
  34. package/ios/RCTFBSDK/core/RCTFBSDKAppEvents.h +24 -0
  35. package/ios/RCTFBSDK/core/RCTFBSDKAppEvents.m +251 -0
  36. package/ios/RCTFBSDK/core/RCTFBSDKAppLink.h +24 -0
  37. package/ios/RCTFBSDK/core/RCTFBSDKAppLink.m +52 -0
  38. package/ios/RCTFBSDK/core/RCTFBSDKAuthenticationToken.h +6 -0
  39. package/ios/RCTFBSDK/core/RCTFBSDKAuthenticationToken.m +35 -0
  40. package/ios/RCTFBSDK/core/RCTFBSDKGraphRequestConnectionContainer.h +50 -0
  41. package/ios/RCTFBSDK/core/RCTFBSDKGraphRequestConnectionContainer.m +124 -0
  42. package/ios/RCTFBSDK/core/RCTFBSDKGraphRequestManager.h +25 -0
  43. package/ios/RCTFBSDK/core/RCTFBSDKGraphRequestManager.m +43 -0
  44. package/ios/RCTFBSDK/core/RCTFBSDKProfile.h +6 -0
  45. package/ios/RCTFBSDK/core/RCTFBSDKProfile.m +58 -0
  46. package/ios/RCTFBSDK/core/RCTFBSDKSettings.h +14 -0
  47. package/ios/RCTFBSDK/core/RCTFBSDKSettings.m +80 -0
  48. package/ios/RCTFBSDK/login/RCTConvert+FBSDKLogin.h +28 -0
  49. package/ios/RCTFBSDK/login/RCTConvert+FBSDKLogin.m +35 -0
  50. package/ios/RCTFBSDK/login/RCTFBSDKLoginButtonManager.h +25 -0
  51. package/ios/RCTFBSDK/login/RCTFBSDKLoginButtonManager.m +73 -0
  52. package/ios/RCTFBSDK/login/RCTFBSDKLoginButtonView.h +12 -0
  53. package/ios/RCTFBSDK/login/RCTFBSDKLoginButtonView.m +57 -0
  54. package/ios/RCTFBSDK/login/RCTFBSDKLoginManager.h +22 -0
  55. package/ios/RCTFBSDK/login/RCTFBSDKLoginManager.m +154 -0
  56. package/ios/RCTFBSDK/share/RCTConvert+FBSDKSharingContent.h +29 -0
  57. package/ios/RCTFBSDK/share/RCTConvert+FBSDKSharingContent.m +111 -0
  58. package/ios/RCTFBSDK/share/RCTFBSDKGameRequestDialog.h +24 -0
  59. package/ios/RCTFBSDK/share/RCTFBSDKGameRequestDialog.m +134 -0
  60. package/ios/RCTFBSDK/share/RCTFBSDKMessageDialog.h +24 -0
  61. package/ios/RCTFBSDK/share/RCTFBSDKMessageDialog.m +116 -0
  62. package/ios/RCTFBSDK/share/RCTFBSDKSendButtonManager.h +25 -0
  63. package/ios/RCTFBSDK/share/RCTFBSDKSendButtonManager.m +39 -0
  64. package/ios/RCTFBSDK/share/RCTFBSDKShareButtonManager.h +23 -0
  65. package/ios/RCTFBSDK/share/RCTFBSDKShareButtonManager.m +39 -0
  66. package/ios/RCTFBSDK/share/RCTFBSDKShareDialog.h +24 -0
  67. package/ios/RCTFBSDK/share/RCTFBSDKShareDialog.m +134 -0
  68. package/ios/RCTFBSDK/share/RCTFBSDKShareHelper.h +21 -0
  69. package/ios/RCTFBSDK/share/RCTFBSDKShareHelper.m +32 -0
  70. package/ios/RCTFBSDK.xcodeproj/project.pbxproj +446 -0
  71. package/ios/RCTFBSDK.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  72. package/ios/RCTFBSDK.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  73. package/jest/mocks/index.js +81 -0
  74. package/jest/setup.js +3 -0
  75. package/lib/commonjs/FBAEMReporter.js +39 -0
  76. package/lib/commonjs/FBAEMReporter.js.map +1 -0
  77. package/lib/commonjs/FBAccessToken.js +198 -0
  78. package/lib/commonjs/FBAccessToken.js.map +1 -0
  79. package/lib/commonjs/FBAppEventsLogger.js +221 -0
  80. package/lib/commonjs/FBAppEventsLogger.js.map +1 -0
  81. package/lib/commonjs/FBAppLink.js +36 -0
  82. package/lib/commonjs/FBAppLink.js.map +1 -0
  83. package/lib/commonjs/FBAuthenticationToken.js +55 -0
  84. package/lib/commonjs/FBAuthenticationToken.js.map +1 -0
  85. package/lib/commonjs/FBGameRequestDialog.js +45 -0
  86. package/lib/commonjs/FBGameRequestDialog.js.map +1 -0
  87. package/lib/commonjs/FBGraphRequest.js +66 -0
  88. package/lib/commonjs/FBGraphRequest.js.map +1 -0
  89. package/lib/commonjs/FBGraphRequestManager.js +96 -0
  90. package/lib/commonjs/FBGraphRequestManager.js.map +1 -0
  91. package/lib/commonjs/FBLoginButton.js +67 -0
  92. package/lib/commonjs/FBLoginButton.js.map +1 -0
  93. package/lib/commonjs/FBLoginManager.js +102 -0
  94. package/lib/commonjs/FBLoginManager.js.map +1 -0
  95. package/lib/commonjs/FBMessageDialog.js +51 -0
  96. package/lib/commonjs/FBMessageDialog.js.map +1 -0
  97. package/lib/commonjs/FBProfile.js +134 -0
  98. package/lib/commonjs/FBProfile.js.map +1 -0
  99. package/lib/commonjs/FBSendButton.js +48 -0
  100. package/lib/commonjs/FBSendButton.js.map +1 -0
  101. package/lib/commonjs/FBSettings.js +115 -0
  102. package/lib/commonjs/FBSettings.js.map +1 -0
  103. package/lib/commonjs/FBShareButton.js +48 -0
  104. package/lib/commonjs/FBShareButton.js.map +1 -0
  105. package/lib/commonjs/FBShareDialog.js +57 -0
  106. package/lib/commonjs/FBShareDialog.js.map +1 -0
  107. package/lib/commonjs/index.js +323 -0
  108. package/lib/commonjs/index.js.map +1 -0
  109. package/lib/commonjs/models/FBAppGroupCreationContent.js +2 -0
  110. package/lib/commonjs/models/FBAppGroupCreationContent.js.map +1 -0
  111. package/lib/commonjs/models/FBGameRequestContent.js +2 -0
  112. package/lib/commonjs/models/FBGameRequestContent.js.map +1 -0
  113. package/lib/commonjs/models/FBSDKCallback.js +2 -0
  114. package/lib/commonjs/models/FBSDKCallback.js.map +1 -0
  115. package/lib/commonjs/models/FBShareContent.js +6 -0
  116. package/lib/commonjs/models/FBShareContent.js.map +1 -0
  117. package/lib/commonjs/models/FBShareLinkContent.js +6 -0
  118. package/lib/commonjs/models/FBShareLinkContent.js.map +1 -0
  119. package/lib/commonjs/models/FBSharePhoto.js +2 -0
  120. package/lib/commonjs/models/FBSharePhoto.js.map +1 -0
  121. package/lib/commonjs/models/FBSharePhotoContent.js +6 -0
  122. package/lib/commonjs/models/FBSharePhotoContent.js.map +1 -0
  123. package/lib/commonjs/models/FBShareVideo.js +2 -0
  124. package/lib/commonjs/models/FBShareVideo.js.map +1 -0
  125. package/lib/commonjs/models/FBShareVideoContent.js +6 -0
  126. package/lib/commonjs/models/FBShareVideoContent.js.map +1 -0
  127. package/lib/commonjs/util/validate.js +180 -0
  128. package/lib/commonjs/util/validate.js.map +1 -0
  129. package/lib/commonjs/utils/index.js +2 -0
  130. package/lib/commonjs/utils/index.js.map +1 -0
  131. package/lib/module/FBAEMReporter.js +34 -0
  132. package/lib/module/FBAEMReporter.js.map +1 -0
  133. package/lib/module/FBAccessToken.js +191 -0
  134. package/lib/module/FBAccessToken.js.map +1 -0
  135. package/lib/module/FBAppEventsLogger.js +215 -0
  136. package/lib/module/FBAppEventsLogger.js.map +1 -0
  137. package/lib/module/FBAppLink.js +29 -0
  138. package/lib/module/FBAppLink.js.map +1 -0
  139. package/lib/module/FBAuthenticationToken.js +48 -0
  140. package/lib/module/FBAuthenticationToken.js.map +1 -0
  141. package/lib/module/FBGameRequestDialog.js +39 -0
  142. package/lib/module/FBGameRequestDialog.js.map +1 -0
  143. package/lib/module/FBGraphRequest.js +60 -0
  144. package/lib/module/FBGraphRequest.js.map +1 -0
  145. package/lib/module/FBGraphRequestManager.js +90 -0
  146. package/lib/module/FBGraphRequestManager.js.map +1 -0
  147. package/lib/module/FBLoginButton.js +62 -0
  148. package/lib/module/FBLoginButton.js.map +1 -0
  149. package/lib/module/FBLoginManager.js +97 -0
  150. package/lib/module/FBLoginManager.js.map +1 -0
  151. package/lib/module/FBMessageDialog.js +45 -0
  152. package/lib/module/FBMessageDialog.js.map +1 -0
  153. package/lib/module/FBProfile.js +127 -0
  154. package/lib/module/FBProfile.js.map +1 -0
  155. package/lib/module/FBSendButton.js +41 -0
  156. package/lib/module/FBSendButton.js.map +1 -0
  157. package/lib/module/FBSettings.js +108 -0
  158. package/lib/module/FBSettings.js.map +1 -0
  159. package/lib/module/FBShareButton.js +41 -0
  160. package/lib/module/FBShareButton.js.map +1 -0
  161. package/lib/module/FBShareDialog.js +51 -0
  162. package/lib/module/FBShareDialog.js.map +1 -0
  163. package/lib/module/index.js +44 -0
  164. package/lib/module/index.js.map +1 -0
  165. package/lib/module/models/FBAppGroupCreationContent.js +2 -0
  166. package/lib/module/models/FBAppGroupCreationContent.js.map +1 -0
  167. package/lib/module/models/FBGameRequestContent.js +2 -0
  168. package/lib/module/models/FBGameRequestContent.js.map +1 -0
  169. package/lib/module/models/FBSDKCallback.js +2 -0
  170. package/lib/module/models/FBSDKCallback.js.map +1 -0
  171. package/lib/module/models/FBShareContent.js +2 -0
  172. package/lib/module/models/FBShareContent.js.map +1 -0
  173. package/lib/module/models/FBShareLinkContent.js +2 -0
  174. package/lib/module/models/FBShareLinkContent.js.map +1 -0
  175. package/lib/module/models/FBSharePhoto.js +2 -0
  176. package/lib/module/models/FBSharePhoto.js.map +1 -0
  177. package/lib/module/models/FBSharePhotoContent.js +2 -0
  178. package/lib/module/models/FBSharePhotoContent.js.map +1 -0
  179. package/lib/module/models/FBShareVideo.js +2 -0
  180. package/lib/module/models/FBShareVideo.js.map +1 -0
  181. package/lib/module/models/FBShareVideoContent.js +2 -0
  182. package/lib/module/models/FBShareVideoContent.js.map +1 -0
  183. package/lib/module/util/validate.js +157 -0
  184. package/lib/module/util/validate.js.map +1 -0
  185. package/lib/module/utils/index.js +2 -0
  186. package/lib/module/utils/index.js.map +1 -0
  187. package/lib/typescript/FBAEMReporter.d.ts +21 -0
  188. package/lib/typescript/FBAEMReporter.d.ts.map +1 -0
  189. package/lib/typescript/FBAccessToken.d.ts +118 -0
  190. package/lib/typescript/FBAccessToken.d.ts.map +1 -0
  191. package/lib/typescript/FBAppEventsLogger.d.ts +201 -0
  192. package/lib/typescript/FBAppEventsLogger.d.ts.map +1 -0
  193. package/lib/typescript/FBAppLink.d.ts +5 -0
  194. package/lib/typescript/FBAppLink.d.ts.map +1 -0
  195. package/lib/typescript/FBAuthenticationToken.d.ts +29 -0
  196. package/lib/typescript/FBAuthenticationToken.d.ts.map +1 -0
  197. package/lib/typescript/FBGameRequestDialog.d.ts +39 -0
  198. package/lib/typescript/FBGameRequestDialog.d.ts.map +1 -0
  199. package/lib/typescript/FBGraphRequest.d.ts +70 -0
  200. package/lib/typescript/FBGraphRequest.d.ts.map +1 -0
  201. package/lib/typescript/FBGraphRequestManager.d.ts +51 -0
  202. package/lib/typescript/FBGraphRequestManager.d.ts.map +1 -0
  203. package/lib/typescript/FBLoginButton.d.ts +92 -0
  204. package/lib/typescript/FBLoginButton.d.ts.map +1 -0
  205. package/lib/typescript/FBLoginManager.d.ts +77 -0
  206. package/lib/typescript/FBLoginManager.d.ts.map +1 -0
  207. package/lib/typescript/FBMessageDialog.d.ts +42 -0
  208. package/lib/typescript/FBMessageDialog.d.ts.map +1 -0
  209. package/lib/typescript/FBProfile.d.ts +127 -0
  210. package/lib/typescript/FBProfile.d.ts.map +1 -0
  211. package/lib/typescript/FBSendButton.d.ts +42 -0
  212. package/lib/typescript/FBSendButton.d.ts.map +1 -0
  213. package/lib/typescript/FBSettings.d.ts +49 -0
  214. package/lib/typescript/FBSettings.d.ts.map +1 -0
  215. package/lib/typescript/FBShareButton.d.ts +42 -0
  216. package/lib/typescript/FBShareButton.d.ts.map +1 -0
  217. package/lib/typescript/FBShareDialog.d.ts +69 -0
  218. package/lib/typescript/FBShareDialog.d.ts.map +1 -0
  219. package/lib/typescript/index.d.ts +43 -0
  220. package/lib/typescript/index.d.ts.map +1 -0
  221. package/lib/typescript/models/FBAppGroupCreationContent.d.ts +43 -0
  222. package/lib/typescript/models/FBAppGroupCreationContent.d.ts.map +1 -0
  223. package/lib/typescript/models/FBGameRequestContent.d.ts +63 -0
  224. package/lib/typescript/models/FBGameRequestContent.d.ts.map +1 -0
  225. package/lib/typescript/models/FBSDKCallback.d.ts +4 -0
  226. package/lib/typescript/models/FBSDKCallback.d.ts.map +1 -0
  227. package/lib/typescript/models/FBShareContent.d.ts +48 -0
  228. package/lib/typescript/models/FBShareContent.d.ts.map +1 -0
  229. package/lib/typescript/models/FBShareLinkContent.d.ts +65 -0
  230. package/lib/typescript/models/FBShareLinkContent.d.ts.map +1 -0
  231. package/lib/typescript/models/FBSharePhoto.d.ts +43 -0
  232. package/lib/typescript/models/FBSharePhoto.d.ts.map +1 -0
  233. package/lib/typescript/models/FBSharePhotoContent.d.ts +45 -0
  234. package/lib/typescript/models/FBSharePhotoContent.d.ts.map +1 -0
  235. package/lib/typescript/models/FBShareVideo.d.ts +31 -0
  236. package/lib/typescript/models/FBShareVideo.d.ts.map +1 -0
  237. package/lib/typescript/models/FBShareVideoContent.d.ts +58 -0
  238. package/lib/typescript/models/FBShareVideoContent.d.ts.map +1 -0
  239. package/lib/typescript/util/validate.d.ts +62 -0
  240. package/lib/typescript/util/validate.d.ts.map +1 -0
  241. package/lib/typescript/utils/index.d.ts +2 -0
  242. package/lib/typescript/utils/index.d.ts.map +1 -0
  243. package/package.json +155 -0
  244. package/plugin/build/config.d.ts +53 -0
  245. package/plugin/build/config.js +46 -0
  246. package/plugin/build/withFacebook.d.ts +4 -0
  247. package/plugin/build/withFacebook.js +59 -0
  248. package/plugin/build/withFacebookAndroid.d.ts +6 -0
  249. package/plugin/build/withFacebookAndroid.js +197 -0
  250. package/plugin/build/withFacebookIOS.d.ts +15 -0
  251. package/plugin/build/withFacebookIOS.js +163 -0
  252. package/plugin/build/withSKAdNetworkIdentifiers.d.ts +9 -0
  253. package/plugin/build/withSKAdNetworkIdentifiers.js +36 -0
  254. package/plugin/tsconfig.json +9 -0
  255. package/react-native-fbsdk-next.podspec +34 -0
  256. package/src/FBAEMReporter.ts +44 -0
  257. package/src/FBAccessToken.ts +222 -0
  258. package/src/FBAppEventsLogger.ts +375 -0
  259. package/src/FBAppLink.ts +30 -0
  260. package/src/FBAuthenticationToken.ts +61 -0
  261. package/src/FBGameRequestDialog.ts +49 -0
  262. package/src/FBGraphRequest.ts +89 -0
  263. package/src/FBGraphRequestManager.ts +117 -0
  264. package/src/FBLoginButton.tsx +152 -0
  265. package/src/FBLoginManager.ts +133 -0
  266. package/src/FBMessageDialog.ts +53 -0
  267. package/src/FBProfile.ts +166 -0
  268. package/src/FBSendButton.tsx +61 -0
  269. package/src/FBSettings.ts +122 -0
  270. package/src/FBShareButton.tsx +61 -0
  271. package/src/FBShareDialog.ts +96 -0
  272. package/src/index.ts +85 -0
  273. package/src/models/FBAppGroupCreationContent.ts +48 -0
  274. package/src/models/FBGameRequestContent.ts +81 -0
  275. package/src/models/FBSDKCallback.ts +3 -0
  276. package/src/models/FBShareContent.ts +54 -0
  277. package/src/models/FBShareLinkContent.ts +71 -0
  278. package/src/models/FBSharePhoto.ts +45 -0
  279. package/src/models/FBSharePhotoContent.ts +48 -0
  280. package/src/models/FBShareVideo.ts +31 -0
  281. package/src/models/FBShareVideoContent.ts +64 -0
  282. package/src/util/validate.ts +167 -0
  283. package/src/utils/index.ts +1 -0
  284. package/tsconfig.json +103 -0
@@ -0,0 +1,68 @@
1
+ package com.facebook.reactnative.androidsdk;
2
+
3
+ import com.facebook.Profile;
4
+ import com.facebook.ProfileTracker;
5
+ import com.facebook.react.bridge.Callback;
6
+ import com.facebook.react.bridge.NativeModule;
7
+ import com.facebook.react.bridge.ReactContextBaseJavaModule;
8
+ import com.facebook.react.bridge.ReactMethod;
9
+ import com.facebook.react.bridge.ReactApplicationContext;
10
+ import com.facebook.react.module.annotations.ReactModule;
11
+
12
+ import androidx.annotation.NonNull;
13
+
14
+ import java.util.Timer;
15
+ import java.util.TimerTask;
16
+
17
+ /**
18
+ * This is a {@link NativeModule} that allows JS to use FBSDKProfile info of the current logged user.
19
+ */
20
+ @ReactModule(name = FBProfileModule.NAME)
21
+ public class FBProfileModule extends ReactContextBaseJavaModule {
22
+ public static final String NAME = "FBProfile";
23
+ private ProfileTracker mProfileTracker;
24
+
25
+ public FBProfileModule(ReactApplicationContext reactContext) {
26
+ super(reactContext);
27
+ }
28
+
29
+ @NonNull
30
+ @Override
31
+ public String getName() {
32
+ return NAME;
33
+ }
34
+
35
+ /**
36
+ * Get the current logged profile.
37
+ * @param callback Use callback to pass the current logged profile back to JS.
38
+ */
39
+ @ReactMethod
40
+ public void getCurrentProfile(final Callback callback) {
41
+ // Return the profile object as a ReactMap.
42
+ if (Profile.getCurrentProfile() == null) {
43
+ final Timer timer = new Timer();
44
+ synchronized (timer) {
45
+ timer.schedule(
46
+ new TimerTask() {
47
+ @Override
48
+ public void run() {
49
+ timer.cancel();
50
+ callback.invoke();
51
+ }
52
+ },
53
+ 30000
54
+ );
55
+ mProfileTracker = new ProfileTracker() {
56
+ @Override
57
+ protected void onCurrentProfileChanged(Profile oldProfile, Profile currentProfile) {
58
+ timer.cancel();
59
+ mProfileTracker.stopTracking();
60
+ callback.invoke(Utility.profileToReactMap(currentProfile));
61
+ }
62
+ };
63
+ }
64
+ } else {
65
+ callback.invoke(Utility.profileToReactMap(Profile.getCurrentProfile()));
66
+ }
67
+ }
68
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
3
+ *
4
+ * You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
5
+ * copy, modify, and distribute this software in source code or binary form for use
6
+ * in connection with the web services and APIs provided by Facebook.
7
+ *
8
+ * As with any software that integrates with the Facebook platform, your use of
9
+ * this software is subject to the Facebook Developer Principles and Policies
10
+ * [http://developers.facebook.com/policy/]. This copyright notice shall be
11
+ * included in all copies or substantial portions of the software.
12
+ *
13
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
15
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
16
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
17
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19
+ */
20
+
21
+ package com.facebook.reactnative.androidsdk;
22
+
23
+ import com.facebook.CallbackManager;
24
+ import com.facebook.react.bridge.ReactApplicationContext;
25
+ import com.facebook.react.bridge.ReactContextBaseJavaModule;
26
+
27
+ public abstract class FBSDKCallbackManagerBaseJavaModule extends ReactContextBaseJavaModule {
28
+
29
+ private final FBActivityEventListener mActivityEventListener;
30
+
31
+ protected CallbackManager getCallbackManager() {
32
+ return mActivityEventListener.getCallbackManager();
33
+ }
34
+
35
+ protected FBSDKCallbackManagerBaseJavaModule(ReactApplicationContext reactContext, FBActivityEventListener activityEventListener) {
36
+ super(reactContext);
37
+
38
+ mActivityEventListener = activityEventListener;
39
+ reactContext.addActivityEventListener(mActivityEventListener);
40
+ }
41
+ }
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
3
+ *
4
+ * You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
5
+ * copy, modify, and distribute this software in source code or binary form for use
6
+ * in connection with the web services and APIs provided by Facebook.
7
+ *
8
+ * As with any software that integrates with the Facebook platform, your use of
9
+ * this software is subject to the Facebook Developer Principles and Policies
10
+ * [http://developers.facebook.com/policy/]. This copyright notice shall be
11
+ * included in all copies or substantial portions of the software.
12
+ *
13
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
15
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
16
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
17
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19
+ */
20
+
21
+ package com.facebook.reactnative.androidsdk;
22
+
23
+ import com.facebook.react.ReactPackage;
24
+ import com.facebook.react.bridge.NativeModule;
25
+ import com.facebook.react.bridge.ReactApplicationContext;
26
+ import com.facebook.react.uimanager.ViewManager;
27
+
28
+ import java.util.Arrays;
29
+ import java.util.List;
30
+
31
+ public class FBSDKPackage implements ReactPackage {
32
+
33
+ private FBActivityEventListener mActivityEventListener = new FBActivityEventListener();
34
+
35
+ @Override
36
+ public List<NativeModule> createNativeModules(
37
+ ReactApplicationContext reactContext) {
38
+ return Arrays.<NativeModule>asList(
39
+ new FBAccessTokenModule(reactContext),
40
+ new FBAppEventsLoggerModule(reactContext),
41
+ new FBAppLinkModule(reactContext),
42
+ new FBGameRequestDialogModule(reactContext, mActivityEventListener),
43
+ new FBGraphRequestModule(reactContext),
44
+ new FBLoginManagerModule(reactContext, mActivityEventListener),
45
+ new FBMessageDialogModule(reactContext, mActivityEventListener),
46
+ new FBProfileModule(reactContext),
47
+ new FBSettingsModule(),
48
+ new FBShareDialogModule(reactContext, mActivityEventListener)
49
+ );
50
+ }
51
+
52
+ @Override
53
+ public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
54
+ return Arrays.<ViewManager>asList(
55
+ new FBLoginButtonManager(reactContext),
56
+ new FBSendButtonManager(),
57
+ new FBShareButtonManager()
58
+ );
59
+ }
60
+ }
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
3
+ *
4
+ * You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
5
+ * copy, modify, and distribute this software in source code or binary form for use
6
+ * in connection with the web services and APIs provided by Facebook.
7
+ *
8
+ * As with any software that integrates with the Facebook platform, your use of
9
+ * this software is subject to the Facebook Developer Principles and Policies
10
+ * [http://developers.facebook.com/policy/]. This copyright notice shall be
11
+ * included in all copies or substantial portions of the software.
12
+ *
13
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
15
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
16
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
17
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19
+ */
20
+
21
+ package com.facebook.reactnative.androidsdk;
22
+
23
+ import com.facebook.react.bridge.ReadableMap;
24
+ import com.facebook.react.uimanager.annotations.ReactProp;
25
+ import com.facebook.react.uimanager.SimpleViewManager;
26
+ import com.facebook.react.uimanager.ThemedReactContext;
27
+ import com.facebook.share.model.ShareContent;
28
+ import com.facebook.share.widget.SendButton;
29
+
30
+ public class FBSendButtonManager extends SimpleViewManager<SendButton> {
31
+
32
+ public static final String REACT_CLASS = "RCTFBSendButton";
33
+
34
+ @Override
35
+ public String getName() {
36
+ return REACT_CLASS;
37
+ }
38
+
39
+ @Override
40
+ protected SendButton createViewInstance(ThemedReactContext reactContext) {
41
+ return new SendButton(reactContext);
42
+ }
43
+
44
+ @ReactProp(name = "shareContent")
45
+ public void setShareContent(SendButton sendButton, ReadableMap shareContentMap) {
46
+ ShareContent shareContent = Utility.buildShareContent(shareContentMap);
47
+ if (shareContent != null) {
48
+ sendButton.setShareContent(shareContent);
49
+ }
50
+ }
51
+ }
@@ -0,0 +1,95 @@
1
+ /*
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ * All rights reserved.
4
+ *
5
+ * This source code is licensed under the license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+
9
+ package com.facebook.reactnative.androidsdk;
10
+
11
+ import androidx.annotation.Nullable;
12
+
13
+ import com.facebook.FacebookSdk;
14
+ import com.facebook.react.bridge.BaseJavaModule;
15
+ import com.facebook.react.bridge.ReactMethod;
16
+ import com.facebook.react.bridge.ReadableArray;
17
+ import com.facebook.react.module.annotations.ReactModule;
18
+ import java.util.ArrayList;
19
+ import java.util.List;
20
+
21
+ /**
22
+ * This is a {@link NativeModule} that allows JS to use SDK settings in Facebook Android SDK.
23
+ */
24
+ @ReactModule(name = FBSettingsModule.NAME)
25
+ public class FBSettingsModule extends BaseJavaModule {
26
+
27
+ public static final String NAME = "FBSettings";
28
+
29
+ public FBSettingsModule() {}
30
+
31
+ @Override
32
+ public String getName() {
33
+ return NAME;
34
+ }
35
+
36
+ /**
37
+ * Sets data processing options with country and state
38
+ * @param options list of the options
39
+ * @param country code of the country
40
+ * @param state code of the state
41
+ */
42
+ @ReactMethod
43
+ public void setDataProcessingOptions(ReadableArray options, int country, int state) {
44
+ List<String> opts = Utility.reactArrayToStringList(options);
45
+ String[] optsArray = opts.toArray(new String[0]);
46
+ FacebookSdk.setDataProcessingOptions(optsArray, country, state);
47
+ }
48
+
49
+ /**
50
+ * Initialize the sdk
51
+ * [FB SDK Best Practices for GDPR Compliance](https://developers.facebook.com/docs/app-events/gdpr-compliance/)
52
+ */
53
+ @ReactMethod
54
+ public void initializeSDK() {
55
+ FacebookSdk.fullyInitialize();
56
+ }
57
+
58
+ /**
59
+ * Set app id
60
+ * @param appID app id
61
+ */
62
+ @ReactMethod
63
+ public void setAppID(String appID) {
64
+ FacebookSdk.setApplicationId(appID);
65
+ }
66
+
67
+ /**
68
+ * Set client token
69
+ * @param clientToken client token
70
+ */
71
+ @ReactMethod
72
+ public void setClientToken(String clientToken) {
73
+ FacebookSdk.setClientToken(clientToken);
74
+ }
75
+
76
+ @ReactMethod
77
+ public void setAppName(String displayName) {
78
+ FacebookSdk.setApplicationName(displayName);
79
+ }
80
+
81
+ @ReactMethod
82
+ public void setGraphAPIVersion(String version) {
83
+ FacebookSdk.setGraphApiVersion(version);
84
+ }
85
+
86
+ @ReactMethod
87
+ public void setAutoLogAppEventsEnabled(Boolean enabled) {
88
+ FacebookSdk.setAutoLogAppEventsEnabled(enabled);
89
+ }
90
+
91
+ @ReactMethod
92
+ public void setAdvertiserIDCollectionEnabled(Boolean enabled) {
93
+ FacebookSdk.setAdvertiserIDCollectionEnabled(enabled);
94
+ }
95
+ }
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
3
+ *
4
+ * You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
5
+ * copy, modify, and distribute this software in source code or binary form for use
6
+ * in connection with the web services and APIs provided by Facebook.
7
+ *
8
+ * As with any software that integrates with the Facebook platform, your use of
9
+ * this software is subject to the Facebook Developer Principles and Policies
10
+ * [http://developers.facebook.com/policy/]. This copyright notice shall be
11
+ * included in all copies or substantial portions of the software.
12
+ *
13
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
15
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
16
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
17
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19
+ */
20
+
21
+ package com.facebook.reactnative.androidsdk;
22
+
23
+ import android.util.Log;
24
+
25
+ import com.facebook.react.bridge.ReadableMap;
26
+ import com.facebook.react.uimanager.annotations.ReactProp;
27
+ import com.facebook.react.uimanager.SimpleViewManager;
28
+ import com.facebook.react.uimanager.ThemedReactContext;
29
+ import com.facebook.share.model.ShareContent;
30
+ import com.facebook.share.widget.ShareButton;
31
+
32
+ public class FBShareButtonManager extends SimpleViewManager<ShareButton> {
33
+
34
+ public static final String REACT_CLASS = "RCTFBShareButton";
35
+
36
+ @Override
37
+ public String getName() {
38
+ return REACT_CLASS;
39
+ }
40
+
41
+ @Override
42
+ protected ShareButton createViewInstance(ThemedReactContext reactContext) {
43
+ return new ShareButton(reactContext);
44
+ }
45
+
46
+ @ReactProp(name = "shareContent")
47
+ public void setShareContent(ShareButton shareButton, ReadableMap shareContentMap) {
48
+ ShareContent shareContent = Utility.buildShareContent(shareContentMap);
49
+ if (shareContent != null) {
50
+ shareButton.setShareContent(shareContent);
51
+ }
52
+ }
53
+ }
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
3
+ *
4
+ * You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
5
+ * copy, modify, and distribute this software in source code or binary form for use
6
+ * in connection with the web services and APIs provided by Facebook.
7
+ *
8
+ * As with any software that integrates with the Facebook platform, your use of
9
+ * this software is subject to the Facebook Developer Principles and Policies
10
+ * [http://developers.facebook.com/policy/]. This copyright notice shall be
11
+ * included in all copies or substantial portions of the software.
12
+ *
13
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
15
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
16
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
17
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19
+ */
20
+
21
+ package com.facebook.reactnative.androidsdk;
22
+
23
+ import java.util.Locale;
24
+ import com.facebook.react.bridge.Arguments;
25
+ import com.facebook.react.bridge.Promise;
26
+ import com.facebook.react.bridge.ReactApplicationContext;
27
+ import com.facebook.react.bridge.ReactMethod;
28
+ import com.facebook.react.bridge.ReadableMap;
29
+ import com.facebook.react.bridge.WritableMap;
30
+ import com.facebook.react.module.annotations.ReactModule;
31
+ import com.facebook.share.Sharer;
32
+ import com.facebook.share.widget.ShareDialog;
33
+
34
+ @ReactModule(name = FBShareDialogModule.NAME)
35
+ public class FBShareDialogModule extends FBSDKCallbackManagerBaseJavaModule {
36
+
37
+ public static final String NAME = "FBShareDialog";
38
+
39
+ private class ShareDialogCallback extends ReactNativeFacebookSDKCallback<Sharer.Result> {
40
+
41
+ public ShareDialogCallback(Promise promise) {
42
+ super(promise);
43
+ }
44
+
45
+ @Override
46
+ public void onSuccess(Sharer.Result result) {
47
+ if (mPromise != null) {
48
+ WritableMap shareResult = Arguments.createMap();
49
+ shareResult.putString("postId", result.getPostId());
50
+ mPromise.resolve(shareResult);
51
+ mPromise = null;
52
+ }
53
+ }
54
+ }
55
+
56
+ private ShareDialog.Mode mShareDialogMode;
57
+ private boolean mShouldFailOnError;
58
+
59
+ public FBShareDialogModule(ReactApplicationContext reactContext, FBActivityEventListener activityEventListener) {
60
+ super(reactContext, activityEventListener);
61
+ }
62
+
63
+ @Override
64
+ public String getName() {
65
+ return NAME;
66
+ }
67
+
68
+ @ReactMethod
69
+ public void canShow(ReadableMap shareContent, Promise promise) {
70
+ if (getCurrentActivity() != null) {
71
+ ShareDialog shareDialog = new ShareDialog(getCurrentActivity());
72
+ promise.resolve(
73
+ mShareDialogMode == null
74
+ ? shareDialog.canShow(Utility.buildShareContent(shareContent))
75
+ : shareDialog.canShow(Utility.buildShareContent(shareContent), mShareDialogMode)
76
+ );
77
+ } else {
78
+ promise.reject("No current activity.");
79
+ }
80
+ }
81
+
82
+ @ReactMethod
83
+ public void show(ReadableMap shareContent, final Promise promise) {
84
+ if (getCurrentActivity() != null) {
85
+ ShareDialog shareDialog = new ShareDialog(getCurrentActivity());
86
+ shareDialog.registerCallback(getCallbackManager(), new ShareDialogCallback(promise));
87
+ shareDialog.setShouldFailOnDataError(mShouldFailOnError);
88
+ if (mShareDialogMode != null) {
89
+ shareDialog.show(Utility.buildShareContent(shareContent), mShareDialogMode);
90
+ } else {
91
+ shareDialog.show(Utility.buildShareContent(shareContent));
92
+ }
93
+ } else {
94
+ promise.reject("No current activity.");
95
+ }
96
+ }
97
+
98
+ @ReactMethod
99
+ public void setMode(String mode) {
100
+ mShareDialogMode = ShareDialog.Mode.valueOf(mode.toUpperCase(Locale.ROOT));
101
+ }
102
+
103
+ @ReactMethod
104
+ public void setShouldFailOnError(boolean shouldFailOnError) {
105
+ mShouldFailOnError = shouldFailOnError;
106
+ }
107
+ }
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
3
+ *
4
+ * You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
5
+ * copy, modify, and distribute this software in source code or binary form for use
6
+ * in connection with the web services and APIs provided by Facebook.
7
+ *
8
+ * As with any software that integrates with the Facebook platform, your use of
9
+ * this software is subject to the Facebook Developer Principles and Policies
10
+ * [http://developers.facebook.com/policy/]. This copyright notice shall be
11
+ * included in all copies or substantial portions of the software.
12
+ *
13
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
15
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
16
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
17
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19
+ */
20
+
21
+ package com.facebook.reactnative.androidsdk;
22
+
23
+ import com.facebook.AccessToken;
24
+ import com.facebook.AccessTokenTracker;
25
+ import com.facebook.CallbackManager;
26
+ import com.facebook.FacebookCallback;
27
+ import com.facebook.FacebookException;
28
+ import com.facebook.login.LoginResult;
29
+ import com.facebook.login.widget.LoginButton;
30
+ import com.facebook.react.bridge.Arguments;
31
+ import com.facebook.react.bridge.ReactContext;
32
+ import com.facebook.react.bridge.WritableMap;
33
+ import com.facebook.react.uimanager.ThemedReactContext;
34
+ import com.facebook.react.uimanager.UIManagerHelper;
35
+ import com.facebook.react.uimanager.events.EventDispatcher;
36
+
37
+ import java.util.Set;
38
+
39
+ /**
40
+ * A Log In/Log Out button that maintains login state and logs in/out for the app.
41
+ * This control requires the app ID to be specified in the AndroidManifest.xml.
42
+ */
43
+ public class RCTLoginButton extends LoginButton {
44
+
45
+ private final CallbackManager mCallbackManager;
46
+ private final EventDispatcher mEventDispatcher;
47
+
48
+ public RCTLoginButton(ThemedReactContext context, CallbackManager callbackManager) {
49
+ super(context);
50
+ this.setToolTipMode(ToolTipMode.NEVER_DISPLAY);
51
+ mCallbackManager = callbackManager;
52
+ mEventDispatcher = UIManagerHelper.getEventDispatcherForReactTag((ReactContext) getContext(), getId());
53
+ init();
54
+ }
55
+
56
+ public void init() {
57
+ new AccessTokenTracker() {
58
+ @Override
59
+ protected void onCurrentAccessTokenChanged(
60
+ AccessToken oldAccessToken,
61
+ AccessToken currentAccessToken) {
62
+ if (currentAccessToken == null) {
63
+ WritableMap event = Arguments.createMap();
64
+ event.putString("type", "logoutFinished");
65
+ ReactContext context = (ReactContext) getContext();
66
+ mEventDispatcher.dispatchEvent(new RCTLoginButtonEvent(UIManagerHelper.getSurfaceId(context), getId(), event));
67
+
68
+ }
69
+ }
70
+ };
71
+ this.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
72
+ @Override
73
+ public void onSuccess(LoginResult loginResult) {
74
+ WritableMap event = Arguments.createMap();
75
+ event.putString("type", "loginFinished");
76
+ event.putString("error", null);
77
+ WritableMap result = Arguments.createMap();
78
+ result.putBoolean("isCancelled", false);
79
+ result.putArray(
80
+ "grantedPermissions",
81
+ Arguments.fromJavaArgs(
82
+ setToStringArray(loginResult.getRecentlyGrantedPermissions())));
83
+ result.putArray(
84
+ "declinedPermissions",
85
+ Arguments.fromJavaArgs(
86
+ setToStringArray(loginResult.getRecentlyDeniedPermissions())));
87
+ event.putMap("result", result);
88
+ ReactContext context = (ReactContext) getContext();
89
+ mEventDispatcher.dispatchEvent(new RCTLoginButtonEvent(UIManagerHelper.getSurfaceId(context), getId(), event));
90
+ }
91
+
92
+ @Override
93
+ public void onError(FacebookException error) {
94
+ WritableMap event = Arguments.createMap();
95
+ event.putString("type", "loginFinished");
96
+ event.putString("error", error.toString());
97
+ WritableMap result = Arguments.createMap();
98
+ result.putBoolean("isCancelled", false);
99
+ event.putMap("result", result);
100
+ ReactContext context = (ReactContext) getContext();
101
+ mEventDispatcher.dispatchEvent(new RCTLoginButtonEvent(UIManagerHelper.getSurfaceId(context), getId(), event));
102
+ }
103
+
104
+ @Override
105
+ public void onCancel() {
106
+ WritableMap event = Arguments.createMap();
107
+ event.putString("type", "loginFinished");
108
+ event.putString("error", null);
109
+ WritableMap result = Arguments.createMap();
110
+ result.putBoolean("isCancelled", true);
111
+ event.putMap("result", result);
112
+ ReactContext context = (ReactContext) getContext();
113
+ mEventDispatcher.dispatchEvent(new RCTLoginButtonEvent(UIManagerHelper.getSurfaceId(context), getId(), event));
114
+ }
115
+ });
116
+ }
117
+
118
+ private String[] setToStringArray(Set<String> set) {
119
+ String[] array = new String[set.size()];
120
+ int i = 0;
121
+ for (String e : set) {
122
+ array[i++] = e;
123
+ }
124
+ return array;
125
+ }
126
+ }
@@ -0,0 +1,27 @@
1
+ package com.facebook.reactnative.androidsdk;
2
+
3
+ import androidx.annotation.NonNull;
4
+
5
+ import com.facebook.react.bridge.WritableMap;
6
+ import com.facebook.react.uimanager.events.Event;
7
+
8
+ public class RCTLoginButtonEvent extends Event<RCTLoginButtonEvent> {
9
+ public static final String EVENT_NAME = "topChange";
10
+ private final WritableMap mEvent;
11
+
12
+ public RCTLoginButtonEvent(int surfaceId, int viewTag, WritableMap event) {
13
+ super(surfaceId,viewTag);
14
+ mEvent = event;
15
+ }
16
+
17
+ @NonNull
18
+ @Override
19
+ public String getEventName() {
20
+ return EVENT_NAME;
21
+ }
22
+
23
+ @Override
24
+ protected WritableMap getEventData() {
25
+ return mEvent;
26
+ }
27
+ }