diff options
Diffstat (limited to 'java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmAccount.java')
-rw-r--r-- | java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmAccount.java | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmAccount.java b/java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmAccount.java index 2d91634..5c1ad3c 100644 --- a/java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmAccount.java +++ b/java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmAccount.java @@ -117,12 +117,17 @@ public class OlmAccount extends CommonSerializeUtils implements Serializable { aErrorMsg.append("Invalid input parameters in serializeDataWithKey()"); } else { aErrorMsg.setLength(0); - pickleRetValue = serializeDataWithKeyJni(aKey, aErrorMsg); + try { + pickleRetValue = serializeDataWithKeyJni(aKey.getBytes("UTF-8"), aErrorMsg); + } catch (Exception e) { + Log.e(LOG_TAG, "## serializeDataWithKey() failed " + e.getMessage()); + aErrorMsg.append(e.getMessage()); + } } return pickleRetValue; } - private native String serializeDataWithKeyJni(String aKey, StringBuffer aErrorMsg); + private native String serializeDataWithKeyJni(byte[] aKey, StringBuffer aErrorMsg); /** @@ -138,23 +143,28 @@ public class OlmAccount extends CommonSerializeUtils implements Serializable { boolean retCode = false; String jniError; - if(null == aErrorMsg) { + if (null == aErrorMsg) { Log.e(LOG_TAG, "## initWithSerializedData(): invalid input error parameter"); } else { aErrorMsg.setLength(0); - if (TextUtils.isEmpty(aSerializedData) || TextUtils.isEmpty(aKey)) { - Log.e(LOG_TAG, "## initWithSerializedData(): invalid input parameters"); - } else if (null == (jniError = initWithSerializedDataJni(aSerializedData, aKey))) { - retCode = true; - } else { - aErrorMsg.append(jniError); + try { + if (TextUtils.isEmpty(aSerializedData) || TextUtils.isEmpty(aKey)) { + Log.e(LOG_TAG, "## initWithSerializedData(): invalid input parameters"); + } else if (null == (jniError = initWithSerializedDataJni(aSerializedData.getBytes("UTF-8"), aKey.getBytes("UTF-8")))) { + retCode = true; + } else { + aErrorMsg.append(jniError); + } + } catch (Exception e) { + Log.e(LOG_TAG, "## initWithSerializedData() failed " + e.getMessage()); + aErrorMsg.append(e.getMessage()); } } return retCode; } - private native String initWithSerializedDataJni(String aSerializedData, String aKey); + private native String initWithSerializedDataJni(byte[] aSerializedDataBuffer, byte[] aKeyBuffer); /** * Getter on the account ID. |