| 2192 | } |
| 2193 | |
| 2194 | void android_AlertRetry(const char *title, const char *message) |
| 2195 | { |
| 2196 | // Attaches the current thread to the JVM. |
| 2197 | jint lResult; |
| 2198 | jint lFlags = 0; |
| 2199 | |
| 2200 | JavaVM* lJavaVM = engine.app->activity->vm; |
| 2201 | JNIEnv* lJNIEnv = engine.app->activity->env; |
| 2202 | |
| 2203 | JavaVMAttachArgs lJavaVMAttachArgs; |
| 2204 | lJavaVMAttachArgs.version = JNI_VERSION_1_6; |
| 2205 | lJavaVMAttachArgs.name = "NativeThread"; |
| 2206 | lJavaVMAttachArgs.group = NULL; |
| 2207 | |
| 2208 | lResult=lJavaVM->AttachCurrentThread(&lJNIEnv, &lJavaVMAttachArgs); |
| 2209 | if (lResult == JNI_ERR) { |
| 2210 | return; |
| 2211 | } |
| 2212 | |
| 2213 | // Retrieves NativeActivity. |
| 2214 | jobject lNativeActivity = engine.app->activity->clazz; |
| 2215 | jclass ClassNativeActivity = lJNIEnv->GetObjectClass(lNativeActivity); |
| 2216 | |
| 2217 | jmethodID getClassLoader = lJNIEnv->GetMethodID(ClassNativeActivity,"getClassLoader", "()Ljava/lang/ClassLoader;"); |
| 2218 | jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader); |
| 2219 | jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader"); |
| 2220 | jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;"); |
| 2221 | jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.T2DUtilities"); |
| 2222 | jclass T2DUtilitiesClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName); |
| 2223 | jstring strTitle = lJNIEnv->NewStringUTF(title); |
| 2224 | jstring strMessage = lJNIEnv->NewStringUTF(message); |
| 2225 | jmethodID MethodT2DUtilities = lJNIEnv->GetStaticMethodID(T2DUtilitiesClass, "DisplayAlertRetry", "(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V"); |
| 2226 | lJNIEnv->CallStaticVoidMethod(T2DUtilitiesClass, MethodT2DUtilities, lNativeActivity, strTitle, strMessage); |
| 2227 | |
| 2228 | lJNIEnv->DeleteLocalRef(strClassName); |
| 2229 | lJNIEnv->DeleteLocalRef(strTitle); |
| 2230 | lJNIEnv->DeleteLocalRef(strMessage); |
| 2231 | |
| 2232 | // Finished with the JVM. |
| 2233 | lJavaVM->DetachCurrentThread(); |
| 2234 | } |
| 2235 | |
| 2236 | void android_AlertYesNo(const char *title, const char *message) |
| 2237 | { |