diff options
Diffstat (limited to 'java/android/OlmLibSdk/olm-sdk/src/main/java/org')
3 files changed, 26 insertions, 4 deletions
diff --git a/java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmInboundGroupSession.java b/java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmInboundGroupSession.java index 50e77f7..fa4ca1d 100644 --- a/java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmInboundGroupSession.java +++ b/java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmInboundGroupSession.java @@ -123,16 +123,26 @@ public class OlmInboundGroupSession extends CommonSerializeUtils implements Seri private native int initInboundGroupSessionWithSessionKeyJni(String aSessionKey); + /** + * Retrieve the base64-encoded identifier for this inbound group session. + * @return the session ID if operation succeed, null otherwise + */ public String sessionIdentifier() { return sessionIdentifierJni(); } private native String sessionIdentifierJni(); + /** + * Decrypt the message passed in parameter. + * @param aEncryptedMsg the message to be decrypted + * @return the decrypted message if operation succeed, null otherwise. + */ public String decryptMessage(String aEncryptedMsg) { - return decryptMessageJni(aEncryptedMsg); + String decryptedMessage = decryptMessageJni(aEncryptedMsg, OlmManager.ENABLE_STRING_UTF8_SPECIFIC_CONVERSION); + return decryptedMessage; } - private native String decryptMessageJni(String aEncryptedMsg); + private native String decryptMessageJni(String aEncryptedMsg, boolean aIsUtf8ConversionRequired); /** diff --git a/java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmManager.java b/java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmManager.java index 92fbe2b..5170ee9 100644 --- a/java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmManager.java +++ b/java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmManager.java @@ -25,6 +25,18 @@ import android.util.Log; public class OlmManager { private static final String LOG_TAG = "OlmManager"; private static final String SDK_OLM_VERSION = "V0.1.0_1"; + /** specific flag to enable UTF-8 specific conversion for pre Marshmallow(23) android versions.<br> + * <a href="https://github.com/eclipsesource/J2V8/issues/142">NDK NewStringUTF() UTF8 issue</a> + **/ + public static boolean ENABLE_STRING_UTF8_SPECIFIC_CONVERSION; + + /** + * Constructor. + * @param aIsUtf8SpecificConversionEnabled true to enable JNI specific UTF-8 conversion, false otherwie + */ + public OlmManager(boolean aIsUtf8SpecificConversionEnabled) { + ENABLE_STRING_UTF8_SPECIFIC_CONVERSION = aIsUtf8SpecificConversionEnabled; + } static { try { diff --git a/java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmSession.java b/java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmSession.java index 6d570d1..dddc588 100644 --- a/java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmSession.java +++ b/java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmSession.java @@ -361,10 +361,10 @@ public class OlmSession extends CommonSerializeUtils implements Serializable { * @return the decrypted message if operation succeed, null otherwise */ public String decryptMessage(OlmMessage aEncryptedMsg) { - return decryptMessageJni(aEncryptedMsg); + return decryptMessageJni(aEncryptedMsg, OlmManager.ENABLE_STRING_UTF8_SPECIFIC_CONVERSION); } - private native String decryptMessageJni(OlmMessage aEncryptedMsg); + private native String decryptMessageJni(OlmMessage aEncryptedMsg, boolean aIsUtf8ConversionRequired); /** * Return the number of unreleased OlmSession instances.<br> |