pull/214/head
M66B 9 months ago
parent 9b862c8097
commit e7e731e04a

@ -2649,7 +2649,7 @@ public class Helper {
}
// CASA: External storage as well
if (!dir.exists() && !dir.mkdirs()) // TODO CASA
if (!dir.exists() && Log.jni_safe_mkdirs(dir))
throw new IllegalArgumentException("Failed to create directory");
return dir;
@ -2745,8 +2745,7 @@ public class Helper {
static void writeText(File file, String content) throws IOException {
try (FileOutputStream out = new FileOutputStream(file)) {
if (content != null)
out.write(content.getBytes()); // TODO CASA
Log.write(out, content);
}
}

@ -243,6 +243,10 @@ public class Log {
public static native int jni_safe_log(int prio, String tag, String msg);
public static native boolean jni_safe_mkdirs(File file);
public static native void jni_safe_write(OutputStream os, byte[] data);
public static native Process jni_safe_runtime_exec(Runtime runtime, String[] cmd);
public static native long[] jni_safe_runtime_stats();
@ -3813,9 +3817,9 @@ public class Log {
return ssb;
}
private static int write(OutputStream os, String text) throws IOException {
byte[] bytes = text.getBytes();
os.write(bytes); // TODO CASA
static int write(OutputStream os, String text) throws IOException {
byte[] bytes = (text == null ? new byte[0] : text.getBytes());
jni_safe_write(os, bytes);
return bytes.length;
}

@ -65,6 +65,24 @@ Java_eu_faircode_email_ThrowableWrapper_jni_1get_1safe_1stack_1trace_1string(
return (jstring) env->CallStaticObjectMethod(cls, mid, ex);
}
extern "C"
JNIEXPORT jboolean JNICALL
Java_eu_faircode_email_Log_jni_1safe_1mkdirs(JNIEnv *env, jclass clazz,
jobject file) {
jclass cls = env->FindClass("java/io/File");
jmethodID mid = env->GetMethodID(cls, "mkdirs", "()Z");
return (jboolean) env->CallBooleanMethod(file, mid);
}
extern "C"
JNIEXPORT void JNICALL
Java_eu_faircode_email_Log_jni_1safe_1write(JNIEnv *env, jclass clazz,
jobject os, jbyteArray data) {
jclass cls = env->FindClass("java/io/OutputStream");
jmethodID mid = env->GetMethodID(cls, "write", "([B)V");
env->CallVoidMethod(os, mid, data);
}
extern "C"
JNIEXPORT jobject JNICALL
Java_eu_faircode_email_Log_jni_1safe_1runtime_1exec(JNIEnv *env, jclass clazz,
@ -122,7 +140,8 @@ Java_eu_faircode_email_DB_jni_1safe_1support_1query(JNIEnv *env, jclass clazz,
extern "C"
JNIEXPORT jobject JNICALL
Java_eu_faircode_email_DB_jni_1safe_1sqlite_1query(JNIEnv *env, jclass clazz, jobject db, jstring table, jobjectArray columns,
Java_eu_faircode_email_DB_jni_1safe_1sqlite_1query(JNIEnv *env, jclass clazz, jobject db,
jstring table, jobjectArray columns,
jstring selection, jobjectArray selection_args, jstring group_by,
jstring having, jstring order_by, jstring limit) {
jclass cls = env->FindClass("android/database/sqlite/SQLiteDatabase");

Loading…
Cancel
Save