Skip to content

Commit 1d5a853

Browse files
committed
fix issue#426 for Android & iOS
1 parent 4165516 commit 1d5a853

File tree

4 files changed

+23
-8
lines changed

4 files changed

+23
-8
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
# 5.0.2 (2023-06-07)
2+
3+
### Bug Fixes
4+
5+
- fix issue#426 for Android & iOS
6+
17
# 5.0.1 (2023-05-31)
28

39
### Added Features
0 Bytes
Binary file not shown.

android/src/main/java/com/getcapacitor/community/database/sqlite/SQLite/Database.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
import android.content.Context;
1010
import android.content.SharedPreferences;
11+
import android.os.Build;
1112
import android.util.Log;
1213
import androidx.sqlite.db.SimpleSQLiteQuery;
1314
import androidx.sqlite.db.SupportSQLiteDatabase;
@@ -22,6 +23,7 @@
2223
import java.text.SimpleDateFormat;
2324
import java.util.ArrayList;
2425
import java.util.Arrays;
26+
import java.util.Base64;
2527
import java.util.Collections;
2628
import java.util.Date;
2729
import java.util.Dictionary;
@@ -795,7 +797,12 @@ public JSArray selectSQL(String statement, ArrayList<Object> values) throws Exce
795797
row.put(colName, c.getDouble(index));
796798
break;
797799
case FIELD_TYPE_BLOB:
798-
row.put(colName, c.getBlob(index));
800+
// row.put(colName, c.getBlob(index));
801+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
802+
row.put(colName, Base64.getEncoder().encodeToString(c.getBlob(index)));
803+
} else {
804+
row.put(colName, JSONObject.NULL);
805+
}
799806
break;
800807
case FIELD_TYPE_NULL:
801808
row.put(colName, JSONObject.NULL);

ios/Plugin/Utils/UtilsSQLCipher.swift

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -909,13 +909,15 @@ class UtilsSQLCipher {
909909
let val: Double = sqlite3_column_double(handle, index)
910910
rowData[String(cString: name)] = val
911911
case SQLITE_BLOB:
912-
let data = sqlite3_column_blob(handle, index)
913-
let size = sqlite3_column_bytes(handle, index)
914-
let val = NSData(bytes: data, length: Int(size))
915-
// Convert to string
916-
let strVal: String = String(decoding: val,
917-
as: UTF8.self)
918-
rowData[String(cString: name)] = strVal
912+
if let dataBlob = sqlite3_column_blob(handle, index){
913+
let dataBlobLength = sqlite3_column_bytes(handle,index)
914+
let data = Data(bytes: dataBlob,
915+
count:Int(dataBlobLength))
916+
rowData[String(cString: name)] = data.base64EncodedString()
917+
} else {
918+
rowData[String(cString: name)] = NSNull()
919+
}
920+
919921
case SQLITE_TEXT:
920922
let buffer = sqlite3_column_text(handle, index)
921923
if let mBuffer = buffer {

0 commit comments

Comments
 (0)