diff --git a/app/src/main/cpp/CMakeLists.txt b/app/src/main/cpp/CMakeLists.txt index 6b990e3..28087b5 100644 --- a/app/src/main/cpp/CMakeLists.txt +++ b/app/src/main/cpp/CMakeLists.txt @@ -35,6 +35,7 @@ set (HEADERS types/RepeatTypes.h types/ShuffleTypes.h utility/GeneralUtility.h + utility/JNIObjectConversion.h ) set(JSON_BuildTests OFF CACHE INTERNAL "") diff --git a/app/src/main/cpp/model/Token.h b/app/src/main/cpp/model/Token.h index b59ea0b..65c88d4 100644 --- a/app/src/main/cpp/model/Token.h +++ b/app/src/main/cpp/model/Token.h @@ -14,8 +14,7 @@ namespace model { public: Token() = default; Token(const std::string& accessToken) : accessToken(accessToken) { } - Token(const std::string&& accessToken) : - accessToken(accessToken) { } + Token(const std::string&& accessToken) : accessToken(accessToken) { } std::string accessToken; }; diff --git a/app/src/main/cpp/utility/JNIObjectConversion.h b/app/src/main/cpp/utility/JNIObjectConversion.h new file mode 100644 index 0000000..b8e336b --- /dev/null +++ b/app/src/main/cpp/utility/JNIObjectConversion.h @@ -0,0 +1,49 @@ +// +// Created by brahmix on 1/13/20. +// + +#ifndef MEAR_JNIOBJECTCONVERSION_H +#define MEAR_JNIOBJECTCONVERSION_H + +#include +#include +#include + +#include "../model/Token.h" +#include "../model/User.h" + +namespace utility { + template + class JNIObjectConversion { + public: + // jobject to classes + template + static Token ObjToToken(JE *env, Obj tokenObj) { + auto tokenClass = env->GetObjectClass(tokenObj); + + auto accessTokenId = env->GetFieldId(tokenClass, "accessToken", "Ljava/lang/String;"); + + auto accessTokenVal = env->GetObjectField(tokenObj, accessTokenId); + + Token token(std::move(env->GetStringUTFChars(accessTokenVal, nullptr))); + + return token; + } + + + // classes to jobject + template + static Obj TokenToObj(JE *env, const Token& token) { + auto tokenClass = env->FindClass("com/example/mear/models/Token"); + auto tokenConstructor = env->GetMethodID(tokenClass, "", "()V"); + auto tokenObj = env->NewObject(tokenClass, tokenConstructor); + + auto accessTokenId = env->GetFieldID(tokenClass, "accessToken", "Ljava/lang/String;"); + + // TODO: left off here + } + private: + }; +} + +#endif //MEAR_JNIOBJECTCONVERSION_H diff --git a/app/src/main/java/com/example/mear/activities/LoginActivity.kt b/app/src/main/java/com/example/mear/activities/LoginActivity.kt index 58ebf88..78b844b 100644 --- a/app/src/main/java/com/example/mear/activities/LoginActivity.kt +++ b/app/src/main/java/com/example/mear/activities/LoginActivity.kt @@ -5,7 +5,6 @@ import kotlinx.android.synthetic.main.content_login.* import android.content.Intent import android.os.Bundle -import com.google.android.material.snackbar.Snackbar import org.jetbrains.anko.toast import com.example.mear.models.* @@ -25,11 +24,6 @@ class LoginActivity : BaseServiceActivity() { login.setOnClickListener { loginButton() } - - fab.setOnClickListener {view -> - Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) - .setAction("Action", null).show() - } } @@ -40,7 +34,7 @@ class LoginActivity : BaseServiceActivity() { } val saveCred = saveUserCred.isChecked - var apiInfo = APIInfo(apiUri.text.toString(), 1) + val apiInfo = APIInfo(apiUri.text.toString(), 1) val usr = User(username.text.toString(), password.text.toString()) val usrRepo = UserRepository() diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index f3010fd..9b7f9fd 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -20,14 +20,6 @@ - - \ No newline at end of file diff --git a/app/src/main/res/layout/content_login.xml b/app/src/main/res/layout/content_login.xml index 0066cb2..3d115f3 100644 --- a/app/src/main/res/layout/content_login.xml +++ b/app/src/main/res/layout/content_login.xml @@ -8,17 +8,6 @@ tools:context=".activities.LoginActivity" tools:showIn="@layout/activity_login"> -