@@ -5,6 +5,7 @@ import android.content.Intent
55import android.net.Uri
66import androidx.browser.customtabs.CustomTabsIntent
77import com.google.gson.Gson
8+ import com.google.gson.annotations.SerializedName
89import com.openlogin.core.types.*
910import java.util.*
1011import java8.util.concurrent.CompletableFuture
@@ -15,7 +16,20 @@ class OpenLogin(openLoginOptions: OpenLoginOptions) {
1516 }
1617
1718 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
1933 }
2034
2135 private val gson = Gson ()
@@ -40,13 +54,15 @@ class OpenLogin(openLoginOptions: OpenLoginOptions) {
4054 this .context = openLoginOptions.context
4155 }
4256
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+
5066 val url = Uri .Builder ().scheme(sdkUrl.scheme)
5167 .encodedAuthority(sdkUrl.encodedAuthority)
5268 .encodedPath(sdkUrl.encodedPath)
@@ -99,22 +115,14 @@ class OpenLogin(openLoginOptions: OpenLoginOptions) {
99115 }
100116
101117 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)
111119
112120 loginCompletableFuture = CompletableFuture ()
113121 return loginCompletableFuture
114122 }
115123
116124 fun logout (params : Map <String , Any >? = null) : CompletableFuture <Void > {
117- request(" logout" , params)
125+ request(" logout" , extraParams = params)
118126
119127 logoutCompletableFuture = CompletableFuture ()
120128 return logoutCompletableFuture
0 commit comments