| 130 | The Channel class was changed to be immutable, and all its setter methods produce a new Channel. Convenience static methods for direct replacement of one channel in its container after a change were added. TimelineEntry is immutable by design, just the diagram was wrong. |
| 131 | |
| 132 | |
| 133 | An ImmList implementation of an immutable list was added to serve for channels and elements. |
| 134 | |
| 135 | |
| 136 | PageElement and ElementContainer interfaces were merged into Element, and PageElementView was renamed to ElementView. All page, group, frame, sticky and audio annotation classes implement Element, while their corresponding views implement ElementView. The elements property of Element was changed to be of type RwProp<ImmList<ActivationChannel>>, so each sub element of a page or group is now an ActivationChannel. |
| 137 | |
| 138 | |
| 139 | ResourceProperty was changed to have status Ready independent of problems that might have occured. The corresponding test was changed to pass. |
| 140 | |
| 141 | |
| 142 | Persistence was added for channels and entries. |
| 143 | |
| 144 | |
| 145 | There are problems with the preview right now so the way to demonstrate is to save a book with timelines set and open it in reader. |
| 146 | |
| 147 | |