From 7d76164e4476a4e6fbf9731962fcee20539e46fc Mon Sep 17 00:00:00 2001 From: "Christopher J. Brody" <brodybits@litehelpers.net> Date: Wed, 3 Jan 2018 22:35:44 -0500 Subject: [PATCH] Android NDK libraries in JAR Resolve issue on cordova-android@7 FIXES litehelpers/Cordova-sqlite-storage#729 --- CHANGES.md | 3 ++- README.md | 2 -- package.json | 4 ++-- plugin.xml | 12 ++++-------- 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 1b9cee80b..125314792 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,7 +1,8 @@ # Changes -## cordova-sqlite-storage 2.2.0-pre1 +## cordova-sqlite-storage 2.2.0 +- Android-sqlite-native-driver NDK objects in JAR to resolve issue on cordova-android@7 - Fix SQLiteAndroidDatabase implementation for Turkish and other foreign locales ## cordova-sqlite-storage 2.1.5 diff --git a/README.md b/README.md index 14889f47f..b5e99cd11 100644 --- a/README.md +++ b/README.md @@ -149,7 +149,6 @@ See the [Sample section](#sample) for a sample with a more detailed explanation. - The "standard" transaction API documented in [Standard asynchronous transactions section](#standard-asynchronous-transactions) (`db.transaction()` and `db.readTransaction` calls) are now deprecated in this plugin version and scheduled to be removed from the next major release ref: <https://github.com/litehelpers/Cordova-sqlite-storage/issues/720>. It is recommended to use `db.executeSql()` and `db.sqlBatch()` instead, as documented below. NOTE that the "standard", deprecated API calls will NOT be removed from other plugin versions such as `cordova-sqlite-ext` (permissive license terms) or `cordova-sqlite-evcore-extbuild-free` (GPL or commercial license terms). - This plugin is NOT supported by PhoneGap Developer App or PhoneGap Desktop App. - This plugin version uses a `before_plugin_install` hook to install sqlite3 library dependencies from `cordova-sqlite-storage-dependencies` via npm. -- This plugin version will NOT work on `cordova-android@7` due to issue with JAR and NDK library files as discussed in [litehelpers/Cordova-sqlite-storage#729](https://github.com/litehelpers/Cordova-sqlite-storage/issues/729). - Use of other systems such as Cordova Plugman, PhoneGap CLI, PhoneGap Build, and Intel XDK is no longer supported _by this plugin version_ since they do not honor the `before_plugin_install` hook. The supported solution is to _use [litehelpers / Cordova-sqlite-evcore-extbuild-free](https://github.com/litehelpers/Cordova-sqlite-evcore-extbuild-free) (GPL or commercial license terms); alternative with permissive license terms is available at: [brodybits / cordova-sqlite-legacy-build-support](https://github.com/brodybits/cordova-sqlite-legacy-build-support) (limited testing, limited updates)_. - SQLite `3.15.2` included when building (all platforms), with the following definitions *for iOS/macOS/Windows*: - `SQLITE_THREADSAFE=1` (`SQLITE_THREADSAFE=2` on iOS/macOS) @@ -478,7 +477,6 @@ See **Security of sensitive data** in the [Security](#security) section above. ## Known issues -- This plugin will NOT work on `cordova-android@7` due to issue with JAR and NDK library files as discussed in [litehelpers/Cordova-sqlite-storage#729](https://github.com/litehelpers/Cordova-sqlite-storage/issues/729). - The iOS/macOS platform versions do not support certain rapidly repeated open-and-close or open-and-delete test scenarios due to how the implementation handles background processing - The Android platform version does not always handle four-byte UTF-8 characters emoji characters such as `\u1F603` (SMILING FACE, MOUTH OPEN) correctly ref: [litehelpers/Cordova-sqlite-storage#564](https://github.com/litehelpers/Cordova-sqlite-storage/issues/564). It is sometimes possible to store and retrieve such characters but certain operations such as hex conversions do not work properly when using the default [Android-sqlite-connector](https://github.com/liteglue/Android-sqlite-connector) database implementation. It is suspected that such characters would be stored incorrectly by the default Android platform version. Note that this is not an issue in case the built-in Android database is used (using the `androidDatabaseImplementation: 2` setting in `window.sqlitePlugin.openDatabase`) - It is possible to request a SQL statement list such as "SELECT 1; SELECT 2" within a single SQL statement string, however the plugin will only execute the first statement and silently ignore the others ref: [litehelpers/Cordova-sqlite-storage#551](https://github.com/litehelpers/Cordova-sqlite-storage/issues/551) diff --git a/package.json b/package.json index d5cee6f4e..bd0611cdb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cordova-sqlite-storage", - "version": "2.2.0-pre1", + "version": "2.2.0", "description": "Native interface to SQLite for PhoneGap/Cordova", "cordova": { "id": "cordova-sqlite-storage", @@ -30,7 +30,7 @@ }, "homepage": "https://github.com/litehelpers/Cordova-sqlite-storage", "dependencies": { - "cordova-sqlite-storage-dependencies": "1.0.4" + "cordova-sqlite-storage-dependencies": "1.1.0" }, "scripts": { "start": "node scripts/prepareSpec.js" diff --git a/plugin.xml b/plugin.xml index d2c3a094b..f813a4d07 100644 --- a/plugin.xml +++ b/plugin.xml @@ -2,7 +2,7 @@ <plugin xmlns="http://www.phonegap.com/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android" id="cordova-sqlite-storage" - version="2.2.0-pre1"> + version="2.2.0"> <name>Cordova sqlite storage plugin</name> @@ -34,13 +34,9 @@ <source-file src="src/android/io/sqlc/SQLiteConnectorDatabase.java" target-dir="src/io/sqlc"/> <!-- Android-sqlite-connector [jar]: --> - <source-file src="node_modules/cordova-sqlite-storage-dependencies/libs/sqlite-connector.jar" target-dir="libs"/> - <!-- Android-sqlite-connector native driver [native libs]: --> - <source-file src="node_modules/cordova-sqlite-storage-dependencies/libs/arm64-v8a/libsqlc-native-driver.so" target-dir="libs/arm64-v8a"/> - <source-file src="node_modules/cordova-sqlite-storage-dependencies/libs/armeabi/libsqlc-native-driver.so" target-dir="libs/armeabi"/> - <source-file src="node_modules/cordova-sqlite-storage-dependencies/libs/armeabi-v7a/libsqlc-native-driver.so" target-dir="libs/armeabi-v7a"/> - <source-file src="node_modules/cordova-sqlite-storage-dependencies/libs/x86/libsqlc-native-driver.so" target-dir="libs/x86"/> - <source-file src="node_modules/cordova-sqlite-storage-dependencies/libs/x86_64/libsqlc-native-driver.so" target-dir="libs/x86_64"/> + <lib-file src="node_modules/cordova-sqlite-storage-dependencies/libs/sqlite-connector.jar" /> + <!-- Android-sqlite-connector native driver [native libs in jar]: --> + <lib-file src="node_modules/cordova-sqlite-storage-dependencies/libs/sqlite-native-driver.jar" /> </platform> <!-- iOS -->