|
@@ -8886,7 +8886,6 @@ static const int KeycodeMap[KEYCODE_MAP_SIZE] = {
|
|
|
|
|
|
static int32_t la_AndroidInputCallback(struct android_app *app, AInputEvent *event)
|
|
|
{
|
|
|
- __android_log_print(ANDROID_LOG_DEBUG, "huh 5678", "123 input");
|
|
|
if(!MAIN.AppEnabled){return 0;}
|
|
|
//laRedrawAllWindows();
|
|
|
static int prev_button_state=0;
|
|
@@ -9170,7 +9169,7 @@ void la_DisplayKeyboard(bool pShow) {
|
|
|
jint lFlags = 0;
|
|
|
|
|
|
JavaVM* lJavaVM = MAIN.app->activity->vm;
|
|
|
- JNIEnv* lJNIEnv = MAIN.app->activity->env;
|
|
|
+ JNIEnv* lJNIEnv;// = MAIN.app->activity->env;
|
|
|
|
|
|
JavaVMAttachArgs lJavaVMAttachArgs;
|
|
|
lJavaVMAttachArgs.version = JNI_VERSION_1_6;
|
|
@@ -9244,13 +9243,19 @@ void la_DisplayKeyboard(bool pShow) {
|
|
|
lBinder, lFlags);
|
|
|
}
|
|
|
|
|
|
+ if((*lJNIEnv)->ExceptionOccurred(lJNIEnv)){
|
|
|
+ logPrintNew("Java exception occured in la_DisplayKeyboard().\n");
|
|
|
+ (*lJNIEnv)->ExceptionClear(lJNIEnv);
|
|
|
+ }
|
|
|
// Finished with the JVM.
|
|
|
(*lJavaVM)->DetachCurrentThread(lJavaVM);
|
|
|
}
|
|
|
|
|
|
bool la_check_permission(const char* permission) {
|
|
|
+ int granted=0;
|
|
|
JavaVM* lJavaVM = MAIN.app->activity->vm;
|
|
|
- JNIEnv* lJNIEnv = MAIN.app->activity->env;
|
|
|
+ JNIEnv* lJNIEnv=0;// = MAIN.app->activity->env;
|
|
|
+ (*lJavaVM)->AttachCurrentThread(lJavaVM, &lJNIEnv,0);logPrintNew("Attach\n");
|
|
|
(*lJavaVM)->AttachCurrentThread(lJavaVM, &lJNIEnv,0);
|
|
|
jobject lNativeActivity = MAIN.app->activity->clazz;
|
|
|
jclass ClassNativeActivity = (*lJNIEnv)->GetObjectClass(lJNIEnv,lNativeActivity);
|
|
@@ -9258,12 +9263,18 @@ bool la_check_permission(const char* permission) {
|
|
|
jstring jobj_permission = (*lJNIEnv)->NewStringUTF(lJNIEnv,permission);
|
|
|
jint result = (*lJNIEnv)->CallIntMethod(lJNIEnv,ClassNativeActivity, activity_checkSelfPermission, jobj_permission);
|
|
|
(*lJNIEnv)->DeleteLocalRef(lJNIEnv,jobj_permission);
|
|
|
+ granted = (result == 0);
|
|
|
+ if((*lJNIEnv)->ExceptionOccurred(lJNIEnv)){
|
|
|
+ logPrintNew("Java exception occured in la_check_permission().\n");
|
|
|
+ (*lJNIEnv)->ExceptionClear(lJNIEnv);
|
|
|
+ granted=0;
|
|
|
+ }
|
|
|
(*lJavaVM)->DetachCurrentThread(lJavaVM);
|
|
|
- return result == 0;
|
|
|
+ return granted;
|
|
|
}
|
|
|
void la_request_permission(const char* permission) {
|
|
|
JavaVM* lJavaVM = MAIN.app->activity->vm;
|
|
|
- JNIEnv* lJNIEnv = MAIN.app->activity->env;
|
|
|
+ JNIEnv* lJNIEnv=0;// = MAIN.app->activity->env;
|
|
|
(*lJavaVM)->AttachCurrentThread(lJavaVM, &lJNIEnv,0);
|
|
|
jobject lNativeActivity = MAIN.app->activity->clazz;
|
|
|
jclass ClassNativeActivity = (*lJNIEnv)->GetObjectClass(lJNIEnv,lNativeActivity);
|
|
@@ -9275,6 +9286,10 @@ void la_request_permission(const char* permission) {
|
|
|
(*lJNIEnv)->CallVoidMethod (lJNIEnv,lNativeActivity, activity_requestPermissions, jobj_permission_list, 0);
|
|
|
(*lJNIEnv)->DeleteLocalRef(lJNIEnv,jobj_permission);
|
|
|
(*lJNIEnv)->DeleteLocalRef(lJNIEnv,jobj_permission_list);
|
|
|
+ if((*lJNIEnv)->ExceptionOccurred(lJNIEnv)){
|
|
|
+ logPrintNew("Java exception occured in la_request_permission().\n");
|
|
|
+ (*lJNIEnv)->ExceptionClear(lJNIEnv);
|
|
|
+ }
|
|
|
(*lJavaVM)->DetachCurrentThread(lJavaVM);
|
|
|
}
|
|
|
|