| 1710 | } |
| 1711 | |
| 1712 | void android_InitDirList(const char* dir) |
| 1713 | { |
| 1714 | // Attaches the current thread to the JVM. |
| 1715 | jint lResult; |
| 1716 | jint lFlags = 0; |
| 1717 | |
| 1718 | JavaVM* lJavaVM = engine.app->activity->vm; |
| 1719 | JNIEnv* lJNIEnv = engine.app->activity->env; |
| 1720 | |
| 1721 | JavaVMAttachArgs lJavaVMAttachArgs; |
| 1722 | lJavaVMAttachArgs.version = JNI_VERSION_1_6; |
| 1723 | lJavaVMAttachArgs.name = "NativeThread"; |
| 1724 | lJavaVMAttachArgs.group = NULL; |
| 1725 | |
| 1726 | lResult=lJavaVM->AttachCurrentThread(&lJNIEnv, &lJavaVMAttachArgs); |
| 1727 | if (lResult == JNI_ERR) { |
| 1728 | return; |
| 1729 | } |
| 1730 | |
| 1731 | // Retrieves NativeActivity. |
| 1732 | jobject lNativeActivity = engine.app->activity->clazz; |
| 1733 | jclass ClassNativeActivity = lJNIEnv->GetObjectClass(lNativeActivity); |
| 1734 | |
| 1735 | jmethodID getClassLoader = lJNIEnv->GetMethodID(ClassNativeActivity,"getClassLoader", "()Ljava/lang/ClassLoader;"); |
| 1736 | jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader); |
| 1737 | jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader"); |
| 1738 | jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;"); |
| 1739 | jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.FileWalker"); |
| 1740 | jclass FileWalkerClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName); |
| 1741 | jstring strDirName = lJNIEnv->NewStringUTF(dir); |
| 1742 | jmethodID MethodFileWalker = lJNIEnv->GetStaticMethodID(FileWalkerClass, "InitDirList", "(Landroid/content/Context;Ljava/lang/String;)V"); |
| 1743 | lJNIEnv->CallStaticObjectMethod(FileWalkerClass, MethodFileWalker, lNativeActivity, strDirName); |
| 1744 | lJNIEnv->DeleteLocalRef(strClassName); |
| 1745 | lJNIEnv->DeleteLocalRef(strDirName); |
| 1746 | |
| 1747 | // Finished with the JVM. |
| 1748 | lJavaVM->DetachCurrentThread(); |
| 1749 | |
| 1750 | |
| 1751 | } |
| 1752 | |
| 1753 | void android_GetNextDir(const char* pdir, char *dir) |
| 1754 | { |