| 959 | } |
| 960 | |
| 961 | void T2DActivity::loadCacheDir() { |
| 962 | |
| 963 | // Attaches the current thread to the JVM. |
| 964 | jint lResult; |
| 965 | jint lFlags = 0; |
| 966 | JavaVM* lJavaVM = platState.engine->app->activity->vm; |
| 967 | JNIEnv* lJNIEnv = platState.engine->app->activity->env; |
| 968 | |
| 969 | JavaVMAttachArgs lJavaVMAttachArgs; |
| 970 | lJavaVMAttachArgs.version = JNI_VERSION_1_6; |
| 971 | lJavaVMAttachArgs.name = "NativeThread"; |
| 972 | lJavaVMAttachArgs.group = NULL; |
| 973 | |
| 974 | lResult=lJavaVM->AttachCurrentThread(&lJNIEnv, &lJavaVMAttachArgs); |
| 975 | if (lResult == JNI_ERR) { |
| 976 | return; |
| 977 | } |
| 978 | |
| 979 | // Retrieves NativeActivity. |
| 980 | jobject lNativeActivity = platState.engine->app->activity->clazz; |
| 981 | jclass ClassNativeActivity = lJNIEnv->GetObjectClass(lNativeActivity); |
| 982 | |
| 983 | jmethodID getCacheDir = lJNIEnv->GetMethodID(ClassNativeActivity, "getCacheDir", "()Ljava/io/File;"); |
| 984 | jobject file = lJNIEnv->CallObjectMethod(platState.engine->app->activity->clazz, getCacheDir); |
| 985 | jclass fileClass = lJNIEnv->FindClass("java/io/File"); |
| 986 | jmethodID getAbsolutePath = lJNIEnv->GetMethodID(fileClass, "getAbsolutePath", "()Ljava/lang/String;"); |
| 987 | jstring jpath = (jstring)lJNIEnv->CallObjectMethod(file, getAbsolutePath); |
| 988 | const char* app_dir = lJNIEnv->GetStringUTFChars(jpath, NULL); |
| 989 | |
| 990 | strcpy(cacheDir, app_dir); |
| 991 | cacheDir[strlen(app_dir)] = '\0'; |
| 992 | |
| 993 | lJNIEnv->ReleaseStringUTFChars(jpath, app_dir); |
| 994 | |
| 995 | // Finished with the JVM. |
| 996 | lJavaVM->DetachCurrentThread(); |
| 997 | |
| 998 | } |
| 999 | |
| 1000 | void T2DActivity::enumerateFonts() { |
| 1001 | |