@@ -5,6 +5,7 @@ import android.content.Intent
5
5
import android.net.Uri
6
6
import androidx.browser.customtabs.CustomTabsIntent
7
7
import com.google.gson.Gson
8
+ import com.google.gson.annotations.SerializedName
8
9
import com.openlogin.core.types.*
9
10
import java.util.*
10
11
import java8.util.concurrent.CompletableFuture
@@ -15,7 +16,20 @@ class OpenLogin(openLoginOptions: OpenLoginOptions) {
15
16
}
16
17
17
18
enum class Provider {
18
- GOOGLE , FACEBOOK , REDDIT , DISCORD , TWITCH , APPLE , LINE , GITHUB , KAKAO , LINKEDIN , TWITTER , WEIBO , WECHAT , EMAIL_PASSWORDLESS
19
+ @SerializedName(" google" )GOOGLE ,
20
+ @SerializedName(" facebook" )FACEBOOK ,
21
+ @SerializedName(" reddit" )REDDIT ,
22
+ @SerializedName(" discord" )DISCORD ,
23
+ @SerializedName(" twitch" )TWITCH ,
24
+ @SerializedName(" apple" )APPLE ,
25
+ @SerializedName(" line" )LINE ,
26
+ @SerializedName(" github" )GITHUB ,
27
+ @SerializedName(" kakao" )KAKAO ,
28
+ @SerializedName(" linkedin" )LINKEDIN ,
29
+ @SerializedName(" twitter" )TWITTER ,
30
+ @SerializedName(" weibo" )WEIBO ,
31
+ @SerializedName(" wechat" )WECHAT ,
32
+ @SerializedName(" email_passwordless" )EMAIL_PASSWORDLESS
19
33
}
20
34
21
35
private val gson = Gson ()
@@ -40,13 +54,15 @@ class OpenLogin(openLoginOptions: OpenLoginOptions) {
40
54
this .context = openLoginOptions.context
41
55
}
42
56
43
- private fun request (path : String , params : Map <String , Any >? ) {
44
- val hash = gson.toJson(
45
- mapOf (
46
- " init" to initParams,
47
- " params" to params
48
- )
49
- ).toByteArray(Charsets .UTF_8 ).toBase64URLString()
57
+ private fun request (path : String , params : LoginParams ? = null, extraParams : Map <String , Any >? = null) {
58
+ val paramMap = mapOf (
59
+ " init" to initParams,
60
+ " params" to params
61
+ )
62
+ extraParams?.let { paramMap.plus(" params" to extraParams) }
63
+
64
+ val hash = gson.toJson(paramMap).toByteArray(Charsets .UTF_8 ).toBase64URLString()
65
+
50
66
val url = Uri .Builder ().scheme(sdkUrl.scheme)
51
67
.encodedAuthority(sdkUrl.encodedAuthority)
52
68
.encodedPath(sdkUrl.encodedPath)
@@ -99,22 +115,14 @@ class OpenLogin(openLoginOptions: OpenLoginOptions) {
99
115
}
100
116
101
117
fun login (loginParams : LoginParams ) : CompletableFuture <OpenLoginResponse > {
102
- val params = mutableMapOf<String , Any >(
103
- " loginProvider" to loginParams.loginProvider.name.lowercase(Locale .ROOT ),
104
- )
105
- if (loginParams.reLogin != null ) params[" relogin" ] = loginParams.reLogin
106
- if (loginParams.skipTKey != null ) params[" skipTKey" ] = loginParams.skipTKey
107
- if (loginParams.extraLoginOptions != null ) params[" extraLoginOptions" ] = loginParams.extraLoginOptions
108
- if (loginParams.redirectUrl != null ) params[" redirectUrl" ] = loginParams.redirectUrl.toString()
109
- if (loginParams.appState != null ) params[" appState" ] = loginParams.appState
110
- request(" login" , params)
118
+ request(" login" , loginParams)
111
119
112
120
loginCompletableFuture = CompletableFuture ()
113
121
return loginCompletableFuture
114
122
}
115
123
116
124
fun logout (params : Map <String , Any >? = null) : CompletableFuture <Void > {
117
- request(" logout" , params)
125
+ request(" logout" , extraParams = params)
118
126
119
127
logoutCompletableFuture = CompletableFuture ()
120
128
return logoutCompletableFuture
0 commit comments