diff --git a/ion/src/simulator/android/Makefile b/ion/src/simulator/android/Makefile index b3634670d..09c641f5f 100644 --- a/ion/src/simulator/android/Makefile +++ b/ion/src/simulator/android/Makefile @@ -1,12 +1,12 @@ ion_src += $(addprefix ion/src/simulator/android/src/cpp/, \ haptics_enabled.cpp \ platform_images.cpp \ + platform_language.cpp \ ) ion_src += $(addprefix ion/src/simulator/shared/, \ dummy/journal.cpp \ dummy/keyboard_callback.cpp \ - dummy/language.cpp \ dummy/window_callback.cpp \ clipboard_helper.cpp \ haptics.cpp \ diff --git a/ion/src/simulator/android/src/cpp/platform_language.cpp b/ion/src/simulator/android/src/cpp/platform_language.cpp new file mode 100644 index 000000000..c8e4a353b --- /dev/null +++ b/ion/src/simulator/android/src/cpp/platform_language.cpp @@ -0,0 +1,32 @@ +#include "../../../shared/platform.h" +#include + +namespace Ion { +namespace Simulator { +namespace Platform { + +const char * languageCode() { + static char buffer[4] = {0}; + if (buffer[0] == 0) { + JNIEnv * env = static_cast(SDL_AndroidGetJNIEnv()); + jobject activity = static_cast(SDL_AndroidGetActivity()); + + jclass j_class = env->FindClass("com/numworks/calculator/EpsilonActivity"); + jmethodID j_methodId = env->GetMethodID( + j_class, + "retrieveLanguage", + "(V)Ljava/lang/String;" + ); + + jstring j_language = static_cast(env->CallObjectMethod(activity, j_methodId)); + const char * language = env->GetStringUTFChars(j_language, nullptr); + memcpy(buffer, language, 4); + buffer[3] = 0; + env->ReleaseStringUTFChars(j_language, language); + } + return buffer; +} + +} +} +} diff --git a/ion/src/simulator/android/src/java/com/numworks/calculator/EpsilonActivity.java b/ion/src/simulator/android/src/java/com/numworks/calculator/EpsilonActivity.java index a11c8b805..213199c32 100644 --- a/ion/src/simulator/android/src/java/com/numworks/calculator/EpsilonActivity.java +++ b/ion/src/simulator/android/src/java/com/numworks/calculator/EpsilonActivity.java @@ -28,13 +28,6 @@ public class EpsilonActivity extends SDLActivity { }; } - @Override - protected String[] getArguments() { - Locale currentLocale = getResources().getConfiguration().locale; - String[] arguments = {"--language", currentLocale.getLanguage()}; - return arguments; - } - public Bitmap retrieveBitmapAsset(String identifier) { Bitmap bitmap = null; try { @@ -47,6 +40,10 @@ public class EpsilonActivity extends SDLActivity { return bitmap; } + public String retrieveLanguage() { + return getResources().getConfiguration().locale.getLanguage(); + } + public void telemetryInit() { sAnalytics = GoogleAnalytics.getInstance(this); sTracker = sAnalytics.newTracker("UA-93775823-3");