From 85b7b4c395999ffb6c235629a12bbba9e56ddb35 Mon Sep 17 00:00:00 2001 From: Wisest_wizard <12suhangp34@gmail.com> Date: Mon, 16 Aug 2021 16:29:50 +0530 Subject: [PATCH] Squash bugs and use another simpler approach --- .../java/com/termux/x11/LorieService.java | 7 ++++-- .../jni/lorie/backend/android/android-app.cpp | 25 +++---------------- app/src/main/res/xml/preferences.xml | 1 + 3 files changed, 9 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/com/termux/x11/LorieService.java b/app/src/main/java/com/termux/x11/LorieService.java index fb108f4..4e5aaae 100644 --- a/app/src/main/java/com/termux/x11/LorieService.java +++ b/app/src/main/java/com/termux/x11/LorieService.java @@ -74,8 +74,11 @@ public class LorieService extends Service { @Override public void onCreate() { if (isServiceRunningInForeground(this, LorieService.class)) return; + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); + + String Xdgpath = preferences.getString("CustXDG", "/data/data/com.termux/files/usr/tmp/"); + compositor = createLorieThread(Xdgpath); - compositor = createLorieThread(); if (compositor == 0) { Log.e("LorieService", "compositor thread was not created"); return; @@ -397,7 +400,7 @@ public class LorieService extends Service { private void keyboardKey(int key, int type, int shift, String characters) {keyboardKey(compositor, key, type, shift, characters);} private native void keyboardKey(long compositor, int key, int type, int shift, String characters); - private native long createLorieThread(); + private native long createLorieThread(String CustXdgpath); private native void terminate(long compositor); diff --git a/app/src/main/jni/lorie/backend/android/android-app.cpp b/app/src/main/jni/lorie/backend/android/android-app.cpp index 9a5ead9..1d5d3a6 100644 --- a/app/src/main/jni/lorie/backend/android/android-app.cpp +++ b/app/src/main/jni/lorie/backend/android/android-app.cpp @@ -179,31 +179,12 @@ static LorieBackendAndroid* fromLong(jlong v) { return u.b; } - -jstring spname(JNIEnv *env) { - return env->NewStringUTF("sharedstore"); -} - - extern "C" JNIEXPORT jlong JNICALL -JNI_DECLARE(LorieService, createLorieThread)(JNIEnv *env, jobject __unused instance) { +JNI_DECLARE(LorieService, createLorieThread)(JNIEnv *env, jobject __unused instance, jstring CustXdgpath) { - jclass spcls = env->FindClass("android/content/SharedPreferences"); - jclass contextcls = env->FindClass("android/content/Context"); - mainClass = env->NewGlobalRef(activity); - jmethodID mid = env->GetMethodID(contextcls, "getSharedPreferences", - "(Ljava/lang/String;I)Landroid/content/SharedPreferences;"); + const char *pathx = env->GetStringUTFChars(CustXdgpath, NULL); - jmethodID midstring = env->GetMethodID(spcls, "getSring", - "(Ljava/lang/String;Z)Z"); - - jobject jobjectshared = env->CallObjectMethod(mainClass, mid, spname(env), 0); - jstring xdgcustpath = env->CallStringMethod(jobjectshared, mistring, objectname(env), "/data/data/com.termux/files/usr/tmp"); - - const char *pathxdg = env->GetStringUTFChars(xdgcustpath, 0); - env->ReleaseStringUTFChars(xdgcustpath, pathxdg); - - setenv("XDG_RUNTIME_DIR", pathxdg, 1); + setenv("XDG_RUNTIME_DIR", pathx, 1); return (jlong) new LorieBackendAndroid; } diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index c1bed82..5a6d969 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -24,6 +24,7 @@ android:defaultValue="false" android:key="showIMEWhileExternalConnected" android:summary="Show software keyboard while hardware keyboard is connected" /> +