From fbf8f8710f71a6f0dd3b5f02e49f68166fc6d0c6 Mon Sep 17 00:00:00 2001 From: Volker Birk Date: Sat, 22 Aug 2015 18:44:10 +0200 Subject: [PATCH] Color correction --- src/gen_cpp_Engine.ysl2 | 31 +++++++++++++++++++++++++++++++ test/Testing.java | 8 ++++++++ 2 files changed, 39 insertions(+) diff --git a/src/gen_cpp_Engine.ysl2 b/src/gen_cpp_Engine.ysl2 index 00534df..ae91192 100644 --- a/src/gen_cpp_Engine.ysl2 +++ b/src/gen_cpp_Engine.ysl2 @@ -140,6 +140,36 @@ tstylesheet { || + when "$jtype = 'Color'" + || + jobject «$name»_ = NULL; + { + jclass clazz_color = findClass(env, "org/pEp/jniadapter/Color"); + assert(clazz_color); + jmethodID method_values = env->GetStaticMethodID(clazz_color, "values", + "()[Lorg/pEp/jniadapter/Color;"); + assert(method_values); + jfieldID field_value = env->GetFieldID(clazz_color, "value", "I"); + assert(field_value); + + jobjectArray values = (jobjectArray) env->CallStaticObjectMethod(clazz_color, + method_values); + assert(values); + + jsize values_size = env->GetArrayLength(values); + for (jsize i = 0; i < values_size; i++) { + jobject element = env->GetObjectArrayElement(values, i); + assert(element); + jint value = env->GetIntField(element, field_value); + if (value == (jint) _color) { + «$name»_ = element; + break; + } + } + } + + || + otherwise { | jobject «$name»_ = NULL; indent(0); @@ -147,6 +177,7 @@ tstylesheet { > {\n || jclass clazz_«$name»_ = findClass(env, "org/pEp/jniadapter/«$jtype»"); + assert(clazz_«$name»_); jmethodID constructor_«$name»_ = env->GetMethodID(clazz_«$name»_, "", "«$sig»"); assert(constructor_«$name»_); || diff --git a/test/Testing.java b/test/Testing.java index dd8547f..4bf3fd2 100644 --- a/test/Testing.java +++ b/test/Testing.java @@ -58,6 +58,14 @@ class Testing { System.out.println(enc.getLongmsg()); Vector attachments = enc.getAttachments(); System.out.println(e.toUTF16(attachments.get(1).data)); + + msg.setDir(Message.Direction.Outgoing); + try { + System.out.println(e.outgoing_message_color(msg)); + } + catch (pEpException ex) { + System.out.println("cannot measure outgoing message color"); + } } }