You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+87-2Lines changed: 87 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,68 @@ All notable changes to this project will be documented in this file. Take a look
4
4
5
5
**Warning:** Features marked as *experimental* may change or be removed in a future release without notice. Use with caution.
6
6
7
-
<!-- ## [Unreleased] -->
7
+
## [Unreleased]
8
+
9
+
:warning: Please consult [the migration guide](docs/migration-guide.md#300-alpha1) to assist you in handling the breaking changes in this latest major release.
10
+
11
+
### Added
12
+
13
+
#### Shared
14
+
15
+
* A new `Format` type was introduced to augment `MediaType` with more precise information about the format specifications of an `Asset`.
16
+
* The `DownloadManager` interface handles HTTP downloads. Components like the `LcpService` rely on it for downloading publications. Readium v3 ships with two implementations:
17
+
*`ForegroundDownloadManager` uses an `HttpClient` to download files while the app is running.
18
+
*`AndroidDownloadManager` is built upon [Android's `DownloadManager`](https://developer.android.com/reference/android/app/DownloadManager) to manage HTTP downloads, even when the application is closed. It allows for resuming downloads after losing connection.
19
+
* The default `ZipArchiveOpener` now supports streaming ZIP archives, which enables opening a packaged publication (e.g. EPUB or LCP protected audiobook):
20
+
* served by a remote HTTP server,
21
+
* accessed through an Android `ContentProvider`, such as the shared storage.
22
+
23
+
#### Navigator
24
+
25
+
* Support for keyboard events in the EPUB, PDF and image navigators. See `VisualNavigator.addInputListener()`.
26
+
27
+
#### LCP
28
+
29
+
* You can now stream an LCP protected publication using its LCP License Document. This is useful for example to read a large audiobook without downloading it on the device first.
30
+
* The hash of protected publications is now verified upon download.
31
+
32
+
### Changed
33
+
34
+
*:warning: To avoid conflicts when merging your app resources, all resources declared in the Readium toolkit now have the prefix `readium_`. This means that you must rename any layouts or strings you have overridden. Some resources were removed from the toolkit. Please consult [the migration guide](docs/migration-guide.md#300-alpha1).
35
+
* Most APIs now return an `Error` instance instead of an `Exception` in case of failure, as these objects are not thrown by the toolkit but returned as values
36
+
37
+
#### Shared
38
+
39
+
*:warning: To improve the interoperability with other Readium toolkits (in particular the Readium Web Toolkits, which only work in a streaming context) **Readium v3 now generates and expects valid URLs** for `Locator` and `Link`'s `href`. **You must migrate the HREFs or Locators stored in your database**, please consult [the migration guide](docs/migration-guide.md#300-alpha1).
40
+
*`Link.href` and `Locator.href` are now respectively `Href` and `Url` objects. If you still need the string value, you can call `toString()`
41
+
*`MediaType` no longer has static helpers for sniffing it from a file or URL. Instead, you can use an `AssetRetriever` to retrieve the format of a file.
42
+
43
+
#### Navigator
44
+
45
+
* Version 3 includes a new component called `DirectionalNavigationAdapter` that replaces `EdgeTapNavigation`. This helper enables users to navigate between pages using arrow and space keys on their keyboard or by tapping the edge of the screen.
46
+
* The `onTap` and `onDrag` events of `VisualNavigator.Listener` have been deprecated. You can now use multiple implementations of `InputListener` with `VisualNavigator.addInputListener()`.
47
+
48
+
#### Streamer
49
+
50
+
* The `Streamer` object has been deprecated in favor of components with smaller responsibilities: `AssetRetriever` and `PublicationOpener`.
51
+
52
+
#### LCP
53
+
54
+
*`LcpService.acquirePublication()` is deprecated in favor of `LcpService.publicationRetriever()`, which provides greater flexibility thanks to the `DownloadManager`.
55
+
* The way the host view of a `LcpDialogAuthentication` is retrieved was changed to support Android configuration changes.
56
+
57
+
### Deprecated
58
+
59
+
* Both the Fuel and Kovenant libraries have been completely removed from the toolkit. With that, several deprecated functions have also been removed.
60
+
61
+
#### Shared
62
+
63
+
* The `putPublication` and `getPublication` helpers in `Intent` are deprecated. Now, it is the application's responsibility to pass `Publication` objects between activities and reopen them when necessary.
64
+
65
+
#### Navigator
66
+
67
+
* EPUB external links are no longer handled by the navigator. You need to open the link in your own Web View or Chrome Custom Tab.
68
+
8
69
9
70
## [2.4.0]
10
71
@@ -48,10 +109,35 @@ All notable changes to this project will be documented in this file. Take a look
48
109
49
110
### Changed
50
111
112
+
* Readium resources are now prefixed with `readium_`. Take care of updating any overridden resource by following [the migration guide](docs/migration-guide.md#300).
113
+
*`Link` and `Locator`'s `href` are normalized as valid URLs to improve interoperability with the Readium Web toolkits.
114
+
***You MUST migrate your database if you were persisting HREFs and Locators**. Take a look at [the migration guide](docs/migration-guide.md) for guidance.
115
+
116
+
#### Shared
117
+
118
+
*`Publication.localizedTitle` is nullable, as we cannot guarantee that all publication sources offer a title.
119
+
* The `MediaType` sniffing helpers are deprecated in favor of `MediaTypeRetriever` (for media type and file extension hints and raw content) and `AssetRetriever` (for URLs).
120
+
51
121
#### Navigator
52
122
53
123
*`EpubNavigatorFragment.firstVisibleElementLocator()` now returns the first *block* element that is visible on the screen, even if it starts on previous pages.
54
124
* This is used to make sure the user will not miss any context when restoring a TTS session in the middle of a resource.
125
+
* The `VisualNavigator`'s drag and tap listener events are moved to a new `addInputListener()` API.
126
+
* The new `DirectionalNavigationAdapter` component replaces `EdgeTapNavigation`, helping you turn pages with the arrow and space keyboard keys, or taps on the edge of the screen.
127
+
128
+
### Deprecated
129
+
130
+
#### Shared
131
+
132
+
*`DefaultHttClient.additionalHeaders` is deprecated. Set all the headers when creating a new `HttpRequest`, or modify outgoing requests in `DefaultHttpClient.Callback.onStartRequest()`.
133
+
134
+
#### Navigator
135
+
136
+
* All the navigator `Activity` are deprecated in favor of the `Fragment` variants.
137
+
138
+
#### Streamer
139
+
140
+
* The `Fetcher` interface was deprecated in favor of the `Container` one in `readium-shared`.
55
141
56
142
### Fixed
57
143
@@ -63,7 +149,6 @@ All notable changes to this project will be documented in this file. Take a look
63
149
64
150
* Fixed issue with the TTS starting from the beginning of the chapter instead of the current position.
0 commit comments