Skip to content

Releases: pablobaxter/Harmony

Harmony-Crypto Version 0.0.1 / 2021-05-29

02 Jun 02:45
2e33111
Compare
Choose a tag to compare

v1.1.5

28 Feb 20:53
01f8bff
Compare
Choose a tag to compare

Version 1.1.5 / 2021-02-27

  • Removed dependency on Kotlin Coroutines. This is to reduce bringing in libraries that may not already exist into the project.
  • Create a global thread to handle Harmony updates, instead of each Harmony object having their own thread.
  • Note: The test times may appear better this release, but that is only because I was previously testing on a debug build of the demo app instead of a release build. In actuality, v1.1.5 performs just as well as v1.1.4 with the listed changes. Sorry if there is any confusion.

v1.1.4

11 Feb 09:23
cf77fd0
Compare
Choose a tag to compare

Version 1.1.4 / 2021-02-10

  • Added FileDescriptor.sync() for each transaction written (in response to #15)
  • Minor restructure for reading JSON string from main file
  • Updated Kotlin libraries and Android plugins
  • Migrated to releasing directly to MavenCentral instead of Bintra

v1.1.3

03 Jan 02:45
Compare
Choose a tag to compare

Version 1.1.3 / 2021-01-02

  • MIN SDK Raised to API 17
  • Adds batching to transactions, making inter-process data replication much faster
  • Updates several core Kotlin and Coroutines libraries
  • Fixes potential bug where an IOException could be thrown by a function, but isn't declared as throws when compiled to JVM bytecode.
  • Slight improvements with memory usage
  • Fixes a file descriptor crash
  • Additional unit tests for apply() and commit() functions
  • Fixed crasg bug when storing a large string (64K limit with DataOutputStream.writeUTF())
  • Known issues:
    • There is a bug where changes don't always emit on OnSharedPreferenceChangeListener across processes (#13)
    • When targeting API 30, OnSharedPreferenceChangeListener emits an event when Editor.clear() is called for SharedPreferences. Harmony does not currently honor this, as modifying this affects the above bug (#14)
    • Harmony apply() fails occasionally (#15)

v1.1.2

16 Jun 05:17
e743991
Compare
Choose a tag to compare
  • Renamed several functions and variables

v1.1.1

16 Jun 00:23
4f65f48
Compare
Choose a tag to compare
  • Fixes minor issue where phone restart could cause transactions to come in out of order

v1.1.0

15 Jun 21:18
9419913
Compare
Choose a tag to compare
  • Fixes a bug where calling apply() in both processes at once would potentially cause removed data to be restored
  • Improves in-memory replication time between processes when using apply()
  • Creates a transaction file where changes get written to before being written to the master preferences file
    • Every time apply() or commit() is called, a new transaction is written to the transaction file
    • Each time a process restarts and gets an instance of a Harmony preference object, all transactions are flushed and written to the master file
    • Transactions are also flushed when transaction file grows beyond a certain size (128 KB currently, or about ~3k single key transactions)
    • All transactions contain a checksum value to validate transaction integrity

v1.0.0

23 May 19:53
afe6e59
Compare
Choose a tag to compare
  • FIRST MAJOR RELEASE!
  • Fixes a bug where getAll() only holds long numbers, instead of int and float
  • Fixes a but where lock files could be deleted but not recreated, causing a crash
  • Changes underlying data structure (BREAKING CHANGE)
  • Updates Kotlin Coroutines library
  • Updates min Android SDK to API 14
  • Adds instrumented tests via Firebase Test Lab
  • Added additional tests, especially around testing Harmony in multiprocess
  • Change to casting logic from in-memory map, to match documentation of SharedPreferences

v0.0.7

20 May 09:07
4b0c087
Compare
Choose a tag to compare
v0.0.7 Pre-release
Pre-release
  • Slight improvement to apply() performance
  • Adds code for performance testing of Harmony vs SharedPreferences
  • Removes unused library from example app (MMKV)

v0.0.6

16 May 04:35
Compare
Choose a tag to compare
v0.0.6 Pre-release
Pre-release
  • License change from MIT to Apache-2.0