added get email support

This commit is contained in:
Nick Leeman 2021-02-26 21:55:23 +01:00
parent 9acfbf8484
commit d0bf4fe4b9
4 changed files with 18 additions and 4 deletions

View File

@ -12,8 +12,7 @@ extern "C" {
* Method: siwgAddToQueue_first_arg * Method: siwgAddToQueue_first_arg
* Signature: (ILjava/lang/String;I)V * Signature: (ILjava/lang/String;I)V
*/ */
JNIEXPORT void JNICALL Java_com_aterve_siwg_SiwgJNI_siwgAddToQueue JNIEXPORT void JNICALL Java_com_aterve_siwg_SiwgJNI_siwgAddToQueue(JNIEnv *, jclass, jint, jstring);
(JNIEnv *, jclass, jint, jstring);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -172,6 +172,9 @@ public class SiwgJNI {
builder.requestServerAuthCode(client_id); builder.requestServerAuthCode(client_id);
} }
// Request email
builder.requestEmail();
mSignInOptions = builder.build(); mSignInOptions = builder.build();
} }
@ -246,6 +249,10 @@ public class SiwgJNI {
return isLoggedIn() ? mSignedInAccount.getDisplayName() : null; return isLoggedIn() ? mSignedInAccount.getDisplayName() : null;
} }
public String getEmail() {
return isLoggedIn() ? mSignedInAccount.getEmail() : null;
}
public String getId() { public String getId() {
return isLoggedIn() ? mSignedInAccount.getId() : null; return isLoggedIn() ? mSignedInAccount.getId() : null;
} }

View File

@ -146,6 +146,7 @@ struct SIWG
jmethodID m_logout; jmethodID m_logout;
jmethodID m_activityResult; jmethodID m_activityResult;
jmethodID m_getDisplayName; jmethodID m_getDisplayName;
jmethodID m_getEmail;
jmethodID m_getId; jmethodID m_getId;
jmethodID m_getIdToken; jmethodID m_getIdToken;
jmethodID m_getServerAuthCode; jmethodID m_getServerAuthCode;
@ -178,6 +179,11 @@ static int SiwgAuth_getDisplayName(lua_State* L)
return CallStringMethod(L, g_siwg.m_SiwgJNI, g_siwg.m_getDisplayName); return CallStringMethod(L, g_siwg.m_SiwgJNI, g_siwg.m_getDisplayName);
} }
static int SiwgAuth_getEmail(lua_State* L)
{
return CallStringMethod(L, g_siwg.m_SiwgJNI, g_siwg.m_getEmail);
}
static int SiwgAuth_getId(lua_State* L) static int SiwgAuth_getId(lua_State* L)
{ {
return CallStringMethod(L, g_siwg.m_SiwgJNI, g_siwg.m_getId); return CallStringMethod(L, g_siwg.m_SiwgJNI, g_siwg.m_getId);
@ -236,6 +242,7 @@ static const luaL_reg Siwg_methods[] =
{"logout", SiwgAuth_Logout}, {"logout", SiwgAuth_Logout},
{"silent_login", SiwgAuth_SilentLogin}, {"silent_login", SiwgAuth_SilentLogin},
{"get_display_name", SiwgAuth_getDisplayName}, {"get_display_name", SiwgAuth_getDisplayName},
{"get_email", SiwgAuth_getEmail},
{"get_id", SiwgAuth_getId}, {"get_id", SiwgAuth_getId},
{"get_id_token", SiwgAuth_getIdToken}, {"get_id_token", SiwgAuth_getIdToken},
{"get_server_auth_code", SiwgAuth_getServerAuthCode}, {"get_server_auth_code", SiwgAuth_getServerAuthCode},
@ -285,6 +292,7 @@ static void InitJNIMethods(JNIEnv* env, jclass cls)
g_siwg.m_logout = env->GetMethodID(cls, "logout", "()V"); g_siwg.m_logout = env->GetMethodID(cls, "logout", "()V");
g_siwg.m_isLoggedIn = env->GetMethodID(cls, "isLoggedIn", "()Z"); g_siwg.m_isLoggedIn = env->GetMethodID(cls, "isLoggedIn", "()Z");
g_siwg.m_getDisplayName = env->GetMethodID(cls, "getDisplayName", "()Ljava/lang/String;"); g_siwg.m_getDisplayName = env->GetMethodID(cls, "getDisplayName", "()Ljava/lang/String;");
g_siwg.m_getEmail = env->GetMethodID(cls, "getEmail", "()Ljava/lang/String;");
g_siwg.m_getId = env->GetMethodID(cls, "getId", "()Ljava/lang/String;"); g_siwg.m_getId = env->GetMethodID(cls, "getId", "()Ljava/lang/String;");
g_siwg.m_getIdToken = env->GetMethodID(cls, "getIdToken", "()Ljava/lang/String;"); g_siwg.m_getIdToken = env->GetMethodID(cls, "getIdToken", "()Ljava/lang/String;");
g_siwg.m_getServerAuthCode = env->GetMethodID(cls, "getServerAuthCode", "()Ljava/lang/String;"); g_siwg.m_getServerAuthCode = env->GetMethodID(cls, "getServerAuthCode", "()Ljava/lang/String;");

View File

@ -41,7 +41,7 @@ static void siwg_invoke_callback(MESSAGE_ID type, char*json)
SIWG_callback *cbk = &m_callback; SIWG_callback *cbk = &m_callback;
if(cbk->m_Callback == LUA_NOREF) if(cbk->m_Callback == LUA_NOREF)
{ {
dmLogInfo("GPGS callback do not exist."); dmLogInfo("SIWG callback do not exist.");
return; return;
} }
@ -55,7 +55,7 @@ static void siwg_invoke_callback(MESSAGE_ID type, char*json)
if (!dmScript::IsInstanceValid(L)) if (!dmScript::IsInstanceValid(L))
{ {
UnregisterCallback(); UnregisterCallback();
dmLogError("Could not run GPGS callback because the instance has been deleted."); dmLogError("Could not run SIWG callback because the instance has been deleted.");
lua_pop(L, 2); lua_pop(L, 2);
} }
else { else {