From d0bf4fe4b988a37e89266c89d0fffb4388ceb209 Mon Sep 17 00:00:00 2001 From: Nick Leeman Date: Fri, 26 Feb 2021 21:55:23 +0100 Subject: [PATCH] added get email support --- siwg/src/com_aterve_siwg_SiwgJNI.h | 3 +-- siwg/src/java/com/aterve/siwg/SiwgJNI.java | 7 +++++++ siwg/src/siwg.cpp | 8 ++++++++ siwg/src/siwg_callback.cpp | 4 ++-- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/siwg/src/com_aterve_siwg_SiwgJNI.h b/siwg/src/com_aterve_siwg_SiwgJNI.h index ef2265d..3ad0c5e 100644 --- a/siwg/src/com_aterve_siwg_SiwgJNI.h +++ b/siwg/src/com_aterve_siwg_SiwgJNI.h @@ -12,8 +12,7 @@ extern "C" { * Method: siwgAddToQueue_first_arg * Signature: (ILjava/lang/String;I)V */ - JNIEXPORT void JNICALL Java_com_aterve_siwg_SiwgJNI_siwgAddToQueue - (JNIEnv *, jclass, jint, jstring); + JNIEXPORT void JNICALL Java_com_aterve_siwg_SiwgJNI_siwgAddToQueue(JNIEnv *, jclass, jint, jstring); #ifdef __cplusplus } diff --git a/siwg/src/java/com/aterve/siwg/SiwgJNI.java b/siwg/src/java/com/aterve/siwg/SiwgJNI.java index 2a620d6..60fa726 100644 --- a/siwg/src/java/com/aterve/siwg/SiwgJNI.java +++ b/siwg/src/java/com/aterve/siwg/SiwgJNI.java @@ -172,6 +172,9 @@ public class SiwgJNI { builder.requestServerAuthCode(client_id); } + // Request email + builder.requestEmail(); + mSignInOptions = builder.build(); } @@ -246,6 +249,10 @@ public class SiwgJNI { return isLoggedIn() ? mSignedInAccount.getDisplayName() : null; } + public String getEmail() { + return isLoggedIn() ? mSignedInAccount.getEmail() : null; + } + public String getId() { return isLoggedIn() ? mSignedInAccount.getId() : null; } diff --git a/siwg/src/siwg.cpp b/siwg/src/siwg.cpp index 48e9eee..ec1431f 100644 --- a/siwg/src/siwg.cpp +++ b/siwg/src/siwg.cpp @@ -146,6 +146,7 @@ struct SIWG jmethodID m_logout; jmethodID m_activityResult; jmethodID m_getDisplayName; + jmethodID m_getEmail; jmethodID m_getId; jmethodID m_getIdToken; 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); } +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) { return CallStringMethod(L, g_siwg.m_SiwgJNI, g_siwg.m_getId); @@ -236,6 +242,7 @@ static const luaL_reg Siwg_methods[] = {"logout", SiwgAuth_Logout}, {"silent_login", SiwgAuth_SilentLogin}, {"get_display_name", SiwgAuth_getDisplayName}, + {"get_email", SiwgAuth_getEmail}, {"get_id", SiwgAuth_getId}, {"get_id_token", SiwgAuth_getIdToken}, {"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_isLoggedIn = env->GetMethodID(cls, "isLoggedIn", "()Z"); 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_getIdToken = env->GetMethodID(cls, "getIdToken", "()Ljava/lang/String;"); g_siwg.m_getServerAuthCode = env->GetMethodID(cls, "getServerAuthCode", "()Ljava/lang/String;"); diff --git a/siwg/src/siwg_callback.cpp b/siwg/src/siwg_callback.cpp index 0eee991..fea71a3 100644 --- a/siwg/src/siwg_callback.cpp +++ b/siwg/src/siwg_callback.cpp @@ -41,7 +41,7 @@ static void siwg_invoke_callback(MESSAGE_ID type, char*json) SIWG_callback *cbk = &m_callback; if(cbk->m_Callback == LUA_NOREF) { - dmLogInfo("GPGS callback do not exist."); + dmLogInfo("SIWG callback do not exist."); return; } @@ -55,7 +55,7 @@ static void siwg_invoke_callback(MESSAGE_ID type, char*json) if (!dmScript::IsInstanceValid(L)) { 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); } else {