@@ -5,19 +5,6 @@ import com.facebook.react.bridge.ReactContextBaseJavaModule
55import com.facebook.react.bridge.ReactMethod
66import com.facebook.react.bridge.Promise
77
8- import android.app.Activity
9- import android.content.Intent
10- import android.net.Uri
11- import com.facebook.react.bridge.*
12- import com.openlogin.core.OpenLogin
13- import java.lang.Exception
14- import java.util.*package com.openloginreactnativesdk
15-
16- import com.facebook.react.bridge.ReactApplicationContext
17- import com.facebook.react.bridge.ReactContextBaseJavaModule
18- import com.facebook.react.bridge.ReactMethod
19- import com.facebook.react.bridge.Promise
20-
218import android.app.Activity
229import android.content.Intent
2310import android.net.Uri
@@ -154,131 +141,3 @@ class OpenloginReactNativeSdkModule(reactContext: ReactApplicationContext) : Rea
154141
155142}
156143
157- import com.facebook.react.bridge.WritableMap
158-
159- import com.facebook.react.bridge.ReactContext
160- import com.facebook.react.modules.core.DeviceEventManagerModule.RCTDeviceEventEmitter
161- import com.openlogin.core.types.LoginParams
162- import com.openlogin.core.types.OpenLoginOptions
163- import com.openlogin.core.types.OpenLoginResponse
164- import kotlinx.coroutines.CoroutineScope
165- import kotlinx.coroutines.Dispatchers
166- import kotlinx.coroutines.launch
167- import java8.util.concurrent.CompletableFuture
168-
169- // Quick note on allowing RN Modules to receive Activity Events
170- // https://stackoverflow.com/questions/45744013/onnewintent-is-not-called-on-reactcontextbasejavamodule-react-native
171-
172- class OpenloginReactNativeSdkModule (reactContext : ReactApplicationContext ) : ReactContextBaseJavaModule(reactContext) {
173-
174- override fun getName (): String {
175- return " OpenloginReactNativeSdk"
176- }
177-
178- private lateinit var openlogin: OpenLogin
179-
180- @ReactMethod
181- fun init (params : ReadableMap , promise : Promise ) = try {
182- val clientId = params.getString(" clientId" ) as String
183- val network = params.getString(" network" ) as String
184- val redirectUrl = params.getString(" redirectUrl" )
185- openlogin = OpenLogin (
186- OpenLoginOptions (
187- context = currentActivity!! ,
188- clientId = clientId,
189- network = OpenLogin .Network .valueOf(network.toUpperCase(Locale .ROOT )),
190- redirectUrl = Uri .parse(redirectUrl ? : " ${reactApplicationContext!! .packageName} ://auth" )
191- )
192- )
193-
194- openlogin.setResultUrl(reactApplicationContext.currentActivity?.intent?.data)
195-
196- reactApplicationContext.addActivityEventListener(object : ActivityEventListener {
197- override fun onActivityResult (p0 : Activity ? , p1 : Int , p2 : Int , p3 : Intent ? ) {}
198-
199- override fun onNewIntent (p0 : Intent ? ) {
200- openlogin.setResultUrl(p0?.data)
201- }
202- })
203- promise.resolve(null )
204- } catch (e: Exception ) {
205- promise.reject(e)
206- }
207-
208- @ReactMethod
209- fun login (params : ReadableMap , promise : Promise ) {
210- val provider = params.getString(" provider" ) as String
211-
212- CoroutineScope (Dispatchers .Default ).launch {
213- try {
214- val loginCF = openlogin.login(LoginParams (getOpenLoginProvider(provider)))
215- loginCF.join()
216- loginCF.whenComplete { result, error ->
217- launch(Dispatchers .Main ) {
218- if (error != null ) {
219- promise.reject(error)
220- } else {
221- val map = Arguments .createMap()
222- map.putString(" privKey" , result.privKey)
223- val userInfoMap = Arguments .createMap()
224- userInfoMap.putString(" email" , result.userInfo?.email)
225- userInfoMap.putString(" name" , result.userInfo?.name)
226- userInfoMap.putString(" profileImage" , result.userInfo?.profileImage)
227- userInfoMap.putString(" aggregateVerifier" , result.userInfo?.aggregateVerifier)
228- userInfoMap.putString(" verifier" , result.userInfo?.verifier)
229- userInfoMap.putString(" verifierId" , result.userInfo?.verifierId)
230- userInfoMap.putString(" typeOfLogin" , result.userInfo?.typeOfLogin)
231- map.putMap(" userInfo" , userInfoMap)
232- promise.resolve(map)
233- }
234- }
235- }
236- } catch (e: Exception ) {
237- launch(Dispatchers .Main ) { promise.reject(e) }
238- }
239- }
240- }
241-
242- @ReactMethod
243- fun logout (params : ReadableMap , promise : Promise ) {
244- CoroutineScope (Dispatchers .Default ).launch {
245- try {
246- val logoutCF = openlogin.logout()
247- logoutCF.join()
248- logoutCF.whenComplete { _, error ->
249- launch(Dispatchers .Main ) {
250- if (error != null ) {
251- promise.reject(error)
252- } else {
253- promise.resolve(null )
254- }
255- }
256- }
257- } catch (e: Exception ) {
258- launch(Dispatchers .Main ) { promise.reject(e) }
259- }
260- }
261- }
262-
263- fun getOpenLoginProvider (provider : String ): OpenLogin .Provider {
264- return when (provider) {
265- " google" -> OpenLogin .Provider .GOOGLE
266- " facebook" -> OpenLogin .Provider .FACEBOOK
267- " reddit" -> OpenLogin .Provider .REDDIT
268- " discord" -> OpenLogin .Provider .DISCORD
269- " twitch" -> OpenLogin .Provider .TWITCH
270- " apple" -> OpenLogin .Provider .APPLE
271- " line" -> OpenLogin .Provider .LINE
272- " github" -> OpenLogin .Provider .GITHUB
273- " kakao" -> OpenLogin .Provider .KAKAO
274- " linkedin" -> OpenLogin .Provider .LINKEDIN
275- " twitter" -> OpenLogin .Provider .TWITTER
276- " weibo" -> OpenLogin .Provider .WEIBO
277- " wechat" -> OpenLogin .Provider .WECHAT
278- " email_passwordless" -> OpenLogin .Provider .EMAIL_PASSWORDLESS
279-
280- else -> OpenLogin .Provider .GOOGLE
281- }
282- }
283-
284- }
0 commit comments