All Versions
147
Latest Version
Avg Release Cycle
21 days
Latest Release
124 days ago

Changelog History
Page 9

  • v3.1.1

    April 07, 2017

    ๐Ÿ› Bug Fixes

    • Crash caused by Listeners on RealmObject getting triggered the 2nd time with different changed field (#4437).
    • Unintentionally exposing StandardRealmSchema (#4443).
    • ๐Ÿšš Workaround for crashes on specific Samsung devices which are caused by a buggy memmove call (#3651).
  • v3.1.0

    April 05, 2017

    ๐Ÿ’ฅ Breaking Changes

    • โšก๏ธ Updated file format of Realm files. Existing Realm files will automatically be migrated to the new format when they are opened, but older versions of Realm cannot open these files.
    • [ObjectServer] Due to file format changes, Realm Object Server 1.3.0 or later is required.

    โœจ Enhancements

    • โž• Added support for reverse relationships through the @LinkingObjects annotation. See io.realm.annotations.LinkingObjects for documentation.
      • This feature is in @Beta.
      • Queries on linking objects do not work. Queries like where(...).equalTo("field.linkingObjects.id", 7).findAll() are not yet supported.
      • Backlink verification is incomplete. Evil code can cause native crashes.
    • The listener on RealmObject will only be triggered if the object changes (#3894).
    • โž• Added RealmObjectChangeListener interface that provide detailed information about RealmObject field changes.
    • Listeners on RealmList and RealmResults will be triggered immediately when the transaction is committed on the same thread (#4245).
    • The real RealmMigrationNeededException is now thrown instead of IllegalArgumentException if no migration is provided for a Realm that requires it.
    • RealmQuery.distinct() can be performed on unindexed fields (#2285).
    • targetSdkVersion is now 25.
    • [ObjectServer] In case of a Client Reset, information about the location of the backed up Realm file is now reported through the ErrorHandler interface (#4080).
    • [ObjectServer] Authentication URLs now automatically append /auth if no other path segment is set (#4370).

    ๐Ÿ› Bug Fixes

    • Crash with LogicError with Bad version number on notifier thread (#4369).
    • ๐Ÿ”€ Realm.migrateRealm(RealmConfiguration) now fails correctly with an IllegalArgumentException if a SyncConfiguration is provided (#4075).
    • Potential cause for Realm file corruptions (never reported).
    • โž• Add @Override annotation to proxy class accessors and stop using raw type in proxy classes in order to remove warnings from javac (#4329).
    • findFirstAsync() now returns an invalid object if there is no object matches the query condition instead of running the query repeatedly until it can find one (#4352).
    • ๐ŸŒฒ [ObjectServer] Changing the log level after starting a session now works correctly (#4337).

    Internal

    • ๐Ÿ”€ Using the Object Store's Session and SyncManager.
    • โฌ†๏ธ Upgraded to Realm Sync 1.5.0.
    • โฌ†๏ธ Upgraded to Realm Core 2.5.1.
    • โฌ†๏ธ Upgraded Gradle to 3.4.1
  • v3.0.0

    February 28, 2017

    ๐Ÿ’ฅ Breaking Changes

    • RealmResults.distinct() returns a new RealmResults object instead of filtering on the original object (#2947).
    • โšก๏ธ RealmResults is auto-updated continuously. Any transaction on the current thread which may have an impact on the order or elements of the RealmResults will change the RealmResults immediately instead of change it in the next event loop. The standard RealmResults.iterator() will continue to work as normal, which means that you can still delete or modify elements without impacting the iterator. The same is not true for simple for-loops. In some cases a simple for-loop will not work (https://realm.io/docs/java/3.0.0/api/io/realm/OrderedRealmCollection.html#loops), and you must use the new createSnapshot() method.
    • RealmChangeListener on RealmObject will now also be triggered when the object is deleted. Use RealmObject.isValid() to check this state(#3138).
    • RealmObject.asObservable() will now emit the object when it is deleted. Use RealmObject.isValid() to check this state (#3138).
    • โœ‚ Removed deprecated classes Logger and AndroidLogger (#4050).

    ๐Ÿ—„ Deprecated

    • ๐Ÿšš RealmResults.removeChangeListeners(). Use RealmResults.removeAllChangeListeners() instead.
    • ๐Ÿšš RealmObject.removeChangeListeners(). Use RealmObject.removeAllChangeListeners() instead.
    • RealmResults.distinct() and RealmResults.distinctAsync(). Use RealmQuery.distinct() and RealmQuery.distinctAsync() instead.

    โœจ Enhancements

    • โž• Added support for sorting by link's field (#672).
    • โž• Added OrderedRealmCollectionSnapshot class and OrderedRealmCollection.createSnapshot() method. OrderedRealmCollectionSnapshot is useful when changing RealmResults or RealmList in simple loops.
    • โž• Added OrderedRealmCollectionChangeListener interface for supporting fine-grained collection notifications.
    • โž• Added support for ChangeListeners on RealmList.
    • โž• Added RealmList.asObservable().

    ๐Ÿ› Bug Fixes

    • Element type checking in DynamicRealmObject#setList() (#4252).
    • Now throws IllegalStateException instead of process crash when any of thread confined methods in RealmQuery is called from wrong thread (#4228).
    • Now throws IllegalStateException when any of thread confined methods in DynamicRealmObject is called from wrong thread (#4258).

    Internal

    • ๐Ÿ‘‰ Use Object Store's Results as the backend for RealmResults (#3372).
      • Use Object Store's notification mechanism to trigger listeners.
      • Local commits triggers Realm global listener and RealmObject listener on current thread immediately instead of in the next event loop.
  • v2.3.2

    February 27, 2017

    ๐Ÿ› Bug fixes

    • ๐ŸŒฒ Log levels in JNI layer were all reported as "Error" (#4204).
    • Encrypted realms can end up corrupted if many threads are reading and writing at the same time (#4128).
    • ๐Ÿ‘ป "Read-only file system" exception when compacting Realm file on external storage (#4140).

    Internal

    • โšก๏ธ Updated to Realm Sync v1.2.1.
    • โšก๏ธ Updated to Realm Core v2.3.2.

    โœจ Enhancements

    • ๐Ÿ‘Œ Improved performance of getters and setters in proxy classes.
  • v2.3.1

    February 07, 2017

    โœจ Enhancements

    • ๐Ÿ— [ObjectServer] The serverUrl given to SyncConfiguration.Builder() is now more lenient and will also accept only paths as argument (#4144).
    • [ObjectServer] Add a timer to refresh periodically the access_token.

    ๐Ÿ› Bug fixes

    • NPE problem in SharedRealm.finalize() (#3730).
    • RealmList.contains() and RealmResults.contains() now correctly use custom equals() method on Realm model classes.
    • ๐Ÿ— Build error when the project is using Kotlin (#4087).
    • ๐Ÿ› Bug causing classes to be replaced by classes already in Gradle's classpath (#3568).
    • NullPointerException when notifying a single object that it changed (#4086).
  • v2.3.0

    January 19, 2017

    Object Server API Changes

    • ๐Ÿš€ Realm Sync v1.0.0 has been released, and Realm Mobile Platform is no longer considered in beta.
    • ๐Ÿ’ฅ Breaking change: Location of Realm files are now placed in getFilesDir()/<userIdentifier> instead of getFilesDir()/. This is done in order to support shared Realms among users, while each user retaining their own local copy.
    • ๐Ÿ’ฅ Breaking change: SyncUser.all() now returns Map instead of List.
    • ๐Ÿ’ฅ Breaking change: Added a default UserStore saving users in a Realm file (RealmFileUserStore).
    • ๐Ÿ’ฅ Breaking change: Added multi-user support to UserStore. Added get(String) and remove(String), removed remove() and renamed get() to getCurrent().
    • ๐Ÿ’ฅ Breaking change: Changed the order of arguments to SyncCredentials.custom() to match iOS: token, provider, userInfo.
    • โž• Added support for PermissionOffer and PermissionOfferResponse to SyncUser.getManagementRealm().
    • Exceptions thrown in error handlers are ignored but logged (#3559).
    • โœ‚ Removed unused public constants in SyncConfiguration (#4047).
    • ๐Ÿ›  Fixed bug, preventing Sync client to renew the access token (#4038) (#4039).
    • ๐Ÿ”€ Now SyncUser.logout() properly revokes tokens (#3639).

    ๐Ÿ› Bug fixes

    • ๐Ÿ›  Fixed native memory leak setting the value of a primary key (#3993).
    • โœ… Activated Realm's annotation processor on connectedTest when the project is using kapt (#4008).
    • ๐Ÿ›  Fixed "too many open files" issue (#4002).
    • โž• Added temporary work-around for bug crashing Samsung Tab 3 devices on startup (#3651).

    โœจ Enhancements

    • โž• Added like predicate for String fields (#3752).

    Internal

    • โšก๏ธ Updated to Realm Sync v1.0.0.
    • โž• Added a Realm backup when receiving a Sync client reset message from the server.
  • v2.2.2

    January 16, 2017

    Object Server API Changes (In Beta)

    ๐Ÿ› Bug fixes

    • "operation not permitted" issue when creating Realm file on some devices' external storage (#3629).
    • Crash on API 10 devices (#3726).
    • UnsatisfiedLinkError caused by pipe2 (#3945).
    • Unrecoverable error with message "Try again" when the notification fifo is full (#3964).
    • Realm migration wasn't triggered when the primary key definition was altered (#3966).
    • ๐Ÿ‘‰ Use phantom reference to solve the finalize time out issue (#2496).

    โœจ Enhancements

    • ๐Ÿคก All major public classes are now non-final. This is mostly a compromise to support Mockito. All protected fields/methods are still not considered part of the public API and can change without notice (#3869).
    • All Realm instances share a single notification daemon thread.
    • ๐Ÿ›  Fixed Java lint warnings with generated proxy classes (#2929).

    Internal

    • โฌ†๏ธ Upgraded Realm Core to 2.3.0.
    • โฌ†๏ธ Upgraded Realm Sync to 1.0.0-BETA-6.5.
  • v2.2.1

    November 12, 2016

    Object Server API Changes (In Beta)

    • ๐Ÿ›  Fixed SyncConfiguration.toString() so it now outputs a correct description instead of an empty string (#3787).

    ๐Ÿ› Bug fixes

    • โž• Added version number to the native library, preventing ReLinker from accidentally loading old code (#3775).
    • Realm.getLocalInstanceCount(config) throwing NullPointerException if called after all Realms have been closed (#3791).
  • v2.2.0

    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

    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).