Version 0.21.0 reverts to version 0.17.0+1 with fixes to support Dart 2. Versions 0.18, 0.19, and 0.20 were not used by the package authors and effectively unsupported. This resolves the fork that happened at version 0.18 and development can now be supported by the authors.
(From 0.20.1)
Observable<List|Set|Map>.unmodifiable
for immutable collectionsObservable<List|Set|Map>.EMPTY
for empty immutable collections(From 0.20.0)
ObservableSet
, SetChangeRecord
, and SetDiffer
(From 0.19.0)
ObservableMap
-specific APIObservableMap
no longer emits #keys
and #values
change recordsObservableMap.spy
is deprecated, becomes .delegate
insteadObservableMap
may no longer be extendedRevert considered deprecated to be notified of length
changes.
(From 0.18.0)
ObservableList
-specific APIObservableList.applyChangeRecords
ObservableList.calculateChangeRecords
ObservableList.withLength
ObservableList.deliverListChanges
ObservableList.discardListChanges
ObservableList.hasListChanges
ObservableList.listChanges
ObservableList.notifyListChange
ObservableList
may no longer be extendedRevert considered deprecated to be notified of length
, isEmpty
and isNotEmpty
PropertyChangeRecord
s on ObservableList
(With internal change numbers)
@protected
to @visibleForTesting
. cl/147029982ChangeRecord.NONE
creates a List<ChangeRecord>
, while the call sites expect a List<ListChangeRecord>
or List<MapChangeRecord>
, respectively. cl/155201160Observable._isNotGeneric
check. cl/162282107Observable{List|Map}.NONE
(not Dart2 compatible).ObservableList._notifyListChange
. cl/182284033pkg/quiver
(0.27).pkg/quiver
(0.26).extends ChangeNotifier
rather than extends ChangeNotifier<PropertyChangeRecord>
.ListChangeRecord.NONE
and MapChangeRecord.NONE
.pkg/quiver
(0.25).ObservableList.listChanges
ObservableList.listChanges
MapChangeRecord
ObservableList.discardListChanges
functionalityObservable<List|Set|Map>.unmodifiable
for immutable collectionsObservable<List|Set|Map>.EMPTY
for empty immutable collectionsObservableSet
, SetChangeRecord
, and SetDiffer
ObservableMap
-specific APIObservableMap
no longer emits #keys
and #values
change recordsObservableMap.spy
is deprecated, becomes .delegate
insteadObservableMap
may no longer be extendedIt is also considered deprecated to be notified of length
changes.
Observable<T>.notifyChange
is usedObservableList
-specific APIObservableList.applyChangeRecords
ObservableList.calculateChangeRecords
ObservableList.withLength
ObservableList.deliverListChanges
ObservableList.discardListChanges
ObservableList.hasListChanges
ObservableList.listChanges
ObservableList.notifyListChange
ObservableList
may no longer be extendedIt is also considered deprecated to be notified of length
, isEmpty
and isNotEmpty
PropertyChangeRecord
s on ObservableList
- in a future release ObservableList.changes
will be Stream<List<ListChangeRecord>>
.
PropertyChangeMixin
, which does not work in dart2jsThis is a larger change with a goal of no runtime changes for current customers, but in the future Observable
will become a very lightweight interface, i.e.:
abstract class Observable<C extends ChangeRecord> { Stream<List<C>> get changes; }
Observable
interfaceChangeNotifier
should be used as a base class for these methods:Observable.observed
Observable.unobserved
Observable.hasObservers
Observable.deliverChanges
Observable.notifyChange
PropertyChangeNotifier
should be used for these methods:Observable.notifyPropertyChange
Observable
uses ChangeNotifier
implements Observable
should move to implementing or extending ChangeNotifier
. In a future release Observable
will reduce API surface down to an abstract Stream<List<C>> get changes
.ChangeNotifier
and PropertyChangeNotifier
classesObservable
in a generic mannerObservable<C extends ChangeRecord>
C
, notifyPropertyChange
is illegalMapChangeRecord
MapChangeRecord.apply
to apply a change recordMapDiffer
, which implements Differ
for a Map
ListDiffer
that caused a RangeError
/*<E>*/
syntax in 0.15.0
Differ
interface, as well as EqualityDiffer
ListDiffer
ChangeRecord.ANY
and ChangeRecord.NONE
ListChangeRecord
ListChangeRecord.apply
to apply a change record@override
annotations to satisfy annotate_overrides
pkg/meta
.