All Versions
169
Latest Version
Avg Release Cycle
35 days
Latest Release
1019 days ago

Changelog History
Page 12

  • v2.2.0 Changes

    November 12, 2016

    Object Server API Changes (In Beta)

    • โž• Added support for SyncUser.getManagementRealm() and permission changes.

    ๐Ÿ› Bug fixes

    • 0๏ธโƒฃ Kotlin projects no longer create the RealmDefaultModule if no Realm model classes are present (#3746).
    • โœ‚ Remove includedescriptorclasses option from ProGuard rule file in order to support built-in shrinker of Android Gradle Plugin (#3714).
    • ๐Ÿ”€ Unexpected RealmMigrationNeededException was thrown when a field was added to synced Realm.

    โœจ Enhancements

    • โž• Added support for the annotationProcessor configuration provided by Android Gradle Plugin 2.2.0 or later. Realm plugin adds its annotation processor to the annotationProcessor configuration instead of apt configuration if it is available and the com.neenbedankt.android-apt plugin is not used. In Kotlin projects, kapt is used instead of the annotationProcessor configuration (#3026).
  • v2.1.1 Changes

    October 27, 2016

    ๐Ÿ› Bug fixes

    • ๐Ÿ›  Fixed a bug in Realm.insert and Realm.insertOrUpdate methods causing a StackOverFlow when you try to insert a cyclic graph of objects between Realms (#3732).

    Object Server API Changes (In Beta)

    • ๐Ÿ”€ Set default RxFactory to SyncConfiguration.

    ๐Ÿ› Bug fixes

    • ๐Ÿ”ง ProGuard configuration introduced in 2.1.0 unexpectedly kept classes that did not have the @KeepMember annotation (#3689).
  • v2.1.0 Changes

    October 25, 2016

    ๐Ÿ’ฅ Breaking changes

    Object Server API Changes (In Beta)

    • ๐Ÿ”€ Renamed User to SyncUser, Credentials to SyncCredentials and Session to SyncSession to align names with Cocoa.
    • โœ‚ Removed SyncManager.setLogLevel(). Use RealmLog.setLevel() instead.
    • ๐Ÿ”€ SyncUser.logout() now correctly clears SyncUser.currentUser() (#3638).
    • ๐Ÿ”ง Missing ProGuard configuration for libraries used by Sync extension (#3596).
    • ๐Ÿ”€ Error handler was not called when sync session failed (#3597).
    • โž• Added User.all() that returns all known Realm Object Server users.
    • โฌ†๏ธ Upgraded Realm Sync to 1.0.0-BETA-3.2

    ๐Ÿ—„ Deprecated

    • Logger. Use RealmLogger instead.
    • AndroidLogger. The logger for Android is implemented in native code instead.

    ๐Ÿ› Bug fixes

    • ๐Ÿ“ฆ The following were not kept by ProGuard: names of native methods not in the io.realm.internal package, names of classes used in method signature (#3596).
    • Permission error when a database file was located on external storage (#3140).
    • Memory leak when unsubscribing from a RealmResults/RealmObject RxJava Observable (#3552).

    โœจ Enhancements

    • Realm.compactRealm() now works for encrypted Realms.
    • โž• Added first(E defaultValue) and last(E defaultValue) methods to RealmList and RealmResult. These methods will return the provided object instead of throwing an IndexOutOfBoundsException if the list is empty.
    • โฌ‡๏ธ Reduce transformer logger verbosity (#3608).
    • ๐ŸŒฒ RealmLog.setLevel(int) for setting the log level across all loggers.

    Internal

    • โฌ†๏ธ Upgraded Realm Core to 2.1.3

    Credits

    • 0๏ธโƒฃ Thanks to Max Furman (@maxfurman) for adding support for first() and last() default values.
  • v2.0.2 Changes

    October 06, 2016

    ๐Ÿš€ This release is not protocol-compatible with previous versions of the Realm Mobile Platform. The base library is still fully compatible.

    ๐Ÿ› Bug fixes

    • ๐Ÿ— Build error when using Java 7 (#3563).

    Internal

    • โฌ†๏ธ Upgraded Realm Core to 2.1.0
    • โฌ†๏ธ Upgraded Realm Sync to 1.0.0-BETA-2.0.
  • v2.0.1 Changes

    October 05, 2016

    ๐Ÿ› Bug fixes

    • ๐Ÿ”€ android.net.conn.CONNECTIVITY_CHANGE broadcast caused RuntimeException if sync extension was disabled (#3505).
    • android.net.conn.CONNECTIVITY_CHANGE was not delivered on Android 7 devices.
    • distinctAsync did not respect other query parameters (#3537).
    • ๐Ÿ— ConcurrentModificationException from Gradle when building an application (#3501).

    Internal

    • โฌ†๏ธ Upgraded to Realm Core 2.0.1 / Realm Sync 1.3-BETA
  • v2.0.0 Changes

    September 27, 2016

    ๐Ÿš€ This release introduces support for the Realm Mobile Platform! ๐Ÿ‘€ See https://realm.io/news/introducing-realm-mobile-platform/ for an overview of these great new features.

    ๐Ÿ’ฅ Breaking Changes

    • Files written by Realm 2.0 cannot be read by 1.x or earlier versions. Old files can still be opened.
    • It is now required to call Realm.init(Context) before calling any other Realm API.
    • โœ‚ Removed RealmConfiguration.Builder(Context), RealmConfiguration.Builder(Context, File) and RealmConfiguration.Builder(File) constructors.
    • isValid() now always returns true instead of false for unmanaged RealmObject and RealmList. This puts it in line with the behaviour of the Cocoa and .NET API's (#3101).
    • ๐Ÿ‘ armeabi is not supported anymore.
    • โž• Added new RealmFileException.
      • IncompatibleLockFileException has been removed and replaced by RealmFileException with kind INCOMPATIBLE_LOCK_FILE.
      • RealmIOExcpetion has been removed and replaced by RealmFileException.
    • ๐Ÿ— RealmConfiguration.Builder.assetFile(Context, String) has been renamed to RealmConfiguration.Builder.assetFile(String).
    • Object with primary key is now required to define it when the object is created. This means that Realm.createObject(Class<E>) and DynamicRealm.createObject(String) now throws RealmException if they are used to create an object with a primary key field. Use Realm.createObject(Class<E>, Object) or DynamicRealm.createObject(String, Object) instead.
    • Importing from JSON without the primary key field defined in the JSON object now throws IllegalArgumentException.
    • Now Realm.beginTransaction(), Realm.executeTransaction() and Realm.waitForChange() throw RealmMigrationNeededException if a remote process introduces incompatible schema changes (#3409).
    • The primary key value of an object can no longer be changed after the object was created. Instead a new object must be created and all fields copied over.
    • 0๏ธโƒฃ Now Realm.createObject(Class) and Realm.createObject(Class,Object) take the values from the model's fields and default constructor. Creating objects through the DynamicRealm does not use these values (#777).
    • 0๏ธโƒฃ When Realm.create*FromJson()s create a new RealmObject, now they take the default values defined by the field itself and its default constructor for those fields that are not defined in the JSON object.

    โœจ Enhancements

    • โž• Added realmObject.isManaged(), RealmObject.isManaged(obj) and RealmCollection.isManaged() (#3101).
    • โž• Added RealmConfiguration.Builder.directory(File).
    • ๐Ÿ‘€ RealmLog has been moved to the public API. It is now possible to control which events Realm emit to Logcat. See the RealmLog class for more details.
    • Typed RealmObjects can now continue to access their fields properly even though the schema was changed while the Realm was open (#3409).
    • A RealmMigrationNeededException will be thrown with a cause to show the detailed message when a migration is needed and the migration block is not in the RealmConfiguration.

    ๐Ÿ› Bug fixes

    • ๐Ÿ›  Fixed a lint error in proxy classes when the 'minSdkVersion' of user's project is smaller than 11 (#3356).
    • ๐Ÿ›  Fixed a potential crash when there were lots of async queries waiting in the queue.
    • ๐Ÿ›  Fixed a bug causing the Realm Transformer to not transform field access in the model's constructors (#3361).
    • ๐Ÿ›  Fixed a bug causing a build failure when the Realm Transformer adds accessors to a model class that was already transformed in other project (#3469).
    • ๐Ÿ›  Fixed a bug causing the NullPointerException when calling getters/setters in the model's constructors (#2536).

    Internal

    • ๐Ÿ— Moved JNI build to CMake.
    • โšก๏ธ Updated Realm Core to 2.0.0.
    • โšก๏ธ Updated ReLinker to 1.2.2.
  • v1.2.0 Changes

    August 19, 2016

    ๐Ÿ› Bug fixes

    • ๐Ÿ‘ป Throw a proper exception when operating on a non-existing field with the dynamic API (#3292).
    • DynamicRealmObject.setList should only accept RealmList<DynamicRealmObject> (#3280).
    • ๐Ÿ‘ป DynamicRealmObject.getX(fieldName) now throws a proper exception instead of a native crash when called with a field name of the wrong type (#3294).
    • ๐Ÿ›  Fixed a concurrency crash which might happen when Realm.executeTransactionAsync() tried to call onSucess after the Realm was closed.

    โœจ Enhancements

    • โž• Added RealmQuery.in() for a comparison against multiple values.
    • โž• Added byte array (byte[]) support to RealmQuery's equalTo and notEqualTo methods.
    • โšก๏ธ Optimized internal caching of schema classes (#3315).

    Internal

    • โšก๏ธ Updated Realm Core to 1.5.1.
    • ๐Ÿ‘Œ Improved sorting speed.
    • ๐Ÿšš Completely removed the OptionalAPITransformer.

    Credits

    • ๐Ÿ‘ Thanks to Brenden Kromhout (@bkromhout) for adding binary array support to equalTo and notEqualTo.
  • v1.1.1 Changes

    July 01, 2016

    ๐Ÿ› Bug fixes

    • ๐Ÿ›  Fixed a wrong JNI method declaration which might cause "method not found" crash on some devices.
    • ๐Ÿ›  Fixed a bug that Error in the background async thread is not forwarded to the caller thread.
    • ๐Ÿ›  Fixed a crash when an empty Collection is passed to insert()/insertOrUpdate() (#3103).
    • ๐Ÿ›  Fixed a bug that does not transfer the primary key when RealmSchemaObject.setClassName() is called to rename a class (#3118).
    • ๐Ÿ›  Fixed bug in Realm.insert and Realm.insertOrUpdate methods causing a RealmList to be cleared when inserting a managed RealmModel (#3105).
    • ๐Ÿ›  Fixed a concurrency allocation bug in storage engine which might lead to some random crashes.
    • Bulk insertion now throws if it is not called in a transaction (#3173).
    • The IllegalStateException thrown when accessing an empty RealmObject is now more meaningful (#3200).
    • ๐Ÿ‘ป insert() now correctly throws an exception if two different objects have the same primary key (#3212).
    • Blackberry Z10 throwing "Function not implemented" (#3178).
    • โฌ‡๏ธ Reduced the number of file descriptors used by Realm Core (#3197).
    • Throw a proper IllegalStateException if a RealmChangeListener is used inside an IntentService (#2875).

    โœจ Enhancements

    • The Realm Annotation processor no longer consumes the Realm annotations. Allowing other annotation processors to run.

    Internal

    • โšก๏ธ Updated Realm Core to 1.4.2.
    • ๐Ÿ‘Œ Improved sorting speed.
  • v1.1.0 Changes

    June 30, 2016

    ๐Ÿ› Bug fixes

    • ๐Ÿ›  A number of bug fixes in the storage engine related to memory management in rare cases when a Realm has been compacted.
    • Disabled the optional API transformer since it has problems with DexGuard (#3022).
    • OnSuccess.OnSuccess() might not be called with the correct Realm version for async transaction (#1893).
    • ๐Ÿ›  Fixed a bug in copyToRealm() causing a cyclic dependency objects being duplicated.
    • ๐Ÿ›  Fixed a build failure when model class has a conflicting name such as Map, List, String, ... (#3077).

    โœจ Enhancements

    • โž• Added insert(RealmModel obj), insertOrUpdate(RealmModel obj), insert(Collection<RealmModel> collection) and insertOrUpdate(Collection<RealmModel> collection) to perform batch inserts (#1684).
    • โœจ Enhanced Table.toString() to show a PrimaryKey field details (#2903).
    • ๐Ÿ— Enabled ReLinker when loading a Realm from a custom path by adding a RealmConfiguration.Builder(Context, File) constructor (#2900).
    • ๐Ÿ”„ Changed targetSdkVersion of realm-library to 24.
    • ๐Ÿ”Š Logs warning if DynamicRealm is not closed when GC happens as it does for Realm.

    ๐Ÿ—„ Deprecated

    • ๐Ÿ— RealmConfiguration.Builder(File). Use RealmConfiguration.Builder(Context, File) instead.

    Internal

    • โšก๏ธ Updated Realm Core to 1.2.0.
  • v1.0.1 Changes

    May 25, 2016

    ๐Ÿ› Bug fixes

    • ๐Ÿ›  Fixed a crash when calling Table.toString() in debugger (#2429).
    • ๐Ÿ›  Fixed a race condition which would cause some RealmResults to not be properly updated inside a RealmChangeListener. This could result in crashes when accessing items from those results (#2926/#2951).
    • Revised RealmResults.isLoaded() description (#2895).
    • ๐Ÿ›  Fixed a bug that could cause Realm to lose track of primary key when using RealmObjectSchema.removeField() and RealmObjectSchema.renameField() (#2829/#2926).
    • ๐Ÿ›  Fixed a bug that prevented some devices from finding async related JNI methods correctly.
    • โšก๏ธ Updated ProGuard configuration in order not to depend on Android's default configuration (#2972).
    • ๐Ÿ›  Fixed a race condition between Realms notifications and other UI events. This could e.g. cause ListView to crash (#2990).
    • ๐Ÿ›  Fixed a bug that allowed both RealmConfiguration.Builder.assetFile()/deleteRealmIfMigrationNeeded() to be configured at the same time, which leads to the asset file accidentally being deleted in migrations (#2933).
    • Realm crashed outright when the same Realm file was opened in two processes. Realm will now optimistically retry opening for 1 second before throwing an Error (#2459).

    โœจ Enhancements

    • โœ‚ Removes RxJava related APIs during bytecode transforming to make RealmObject plays well with reflection when rx.Observable doesn't exist.