react-native-readium 1.0.0-alpha.1 → 1.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -3
- package/android/src/main/java/com/reactnativereadium/reader/BaseReaderFragment.kt +0 -21
- package/android/src/main/java/com/reactnativereadium/reader/EpubReaderFragment.kt +0 -183
- package/android/src/main/res/values/strings.xml +0 -197
- package/ios/App/AppModule.swift +0 -2
- package/package.json +2 -2
- package/react-native-readium.podspec +2 -1
- package/android/src/main/java/com/reactnativereadium/reader/ImageReaderFragment.kt +0 -68
- package/android/src/main/java/com/reactnativereadium/reader/PdfReaderFragment.kt +0 -82
- package/android/src/main/res/drawable/background_action_mode.xml +0 -6
- package/android/src/main/res/drawable/cnl.png +0 -0
- package/android/src/main/res/drawable/cover.png +0 -0
- package/android/src/main/res/drawable/ic_add_white_24dp.xml +0 -9
- package/android/src/main/res/drawable/ic_baseline_arrow_forward_24.xml +0 -5
- package/android/src/main/res/drawable/ic_baseline_bookmark_24.xml +0 -10
- package/android/src/main/res/drawable/ic_baseline_delete_24.xml +0 -10
- package/android/src/main/res/drawable/ic_baseline_edit_24.xml +0 -10
- package/android/src/main/res/drawable/ic_baseline_enhanced_encryption_24.xml +0 -10
- package/android/src/main/res/drawable/ic_baseline_fast_forward_24.xml +0 -10
- package/android/src/main/res/drawable/ic_baseline_fast_rewind_24.xml +0 -10
- package/android/src/main/res/drawable/ic_baseline_headphones_24.xml +0 -10
- package/android/src/main/res/drawable/ic_baseline_pause_24.xml +0 -10
- package/android/src/main/res/drawable/ic_baseline_play_arrow_24.xml +0 -10
- package/android/src/main/res/drawable/ic_baseline_search_24.xml +0 -10
- package/android/src/main/res/drawable/ic_baseline_skip_next_24.xml +0 -10
- package/android/src/main/res/drawable/ic_baseline_skip_previous_24.xml +0 -10
- package/android/src/main/res/drawable/ic_dashboard_black_24dp.xml +0 -9
- package/android/src/main/res/drawable/ic_fastforward_30.xml +0 -7
- package/android/src/main/res/drawable/ic_info_black_24dp.xml +0 -9
- package/android/src/main/res/drawable/ic_local_library_black_24dp.xml +0 -9
- package/android/src/main/res/drawable/ic_notch.xml +0 -4
- package/android/src/main/res/drawable/ic_outline_add_24.xml +0 -10
- package/android/src/main/res/drawable/ic_outline_format_align_justify_24.xml +0 -10
- package/android/src/main/res/drawable/ic_outline_format_align_left_24.xml +0 -11
- package/android/src/main/res/drawable/ic_outline_format_size_24.xml +0 -10
- package/android/src/main/res/drawable/ic_outline_light_mode_24.xml +0 -10
- package/android/src/main/res/drawable/ic_outline_menu_24.xml +0 -10
- package/android/src/main/res/drawable/ic_outline_remove_24.xml +0 -10
- package/android/src/main/res/drawable/ic_outline_wb_sunny_24.xml +0 -10
- package/android/src/main/res/drawable/ic_rewind_30.xml +0 -7
- package/android/src/main/res/drawable/icon_font_decrease.png +0 -0
- package/android/src/main/res/drawable/icon_font_increase.png +0 -0
- package/android/src/main/res/drawable/icon_overflow.png +0 -0
- package/android/src/main/res/drawable/rbtn_selector.xml +0 -25
- package/android/src/main/res/drawable/rbtn_textcolor_selector.xml +0 -16
- package/android/src/main/res/drawable/repfr.png +0 -0
- package/android/src/main/res/drawable/selector_blue.xml +0 -42
- package/android/src/main/res/drawable/selector_green.xml +0 -42
- package/android/src/main/res/drawable/selector_purple.xml +0 -42
- package/android/src/main/res/drawable/selector_red.xml +0 -42
- package/android/src/main/res/drawable/selector_yellow.xml +0 -41
- package/android/src/main/res/layout/activity_epub.xml +0 -23
- package/android/src/main/res/layout/activity_main.xml +0 -32
- package/android/src/main/res/layout/activity_reader.xml +0 -6
- package/android/src/main/res/layout/add_catalog_dialog.xml +0 -25
- package/android/src/main/res/layout/filter_row.xml +0 -34
- package/android/src/main/res/layout/filter_window.xml +0 -24
- package/android/src/main/res/layout/fragment_about.xml +0 -150
- package/android/src/main/res/layout/fragment_audiobook.xml +0 -151
- package/android/src/main/res/layout/fragment_bookshelf.xml +0 -35
- package/android/src/main/res/layout/fragment_catalog.xml +0 -56
- package/android/src/main/res/layout/fragment_catalog_feed_list.xml +0 -27
- package/android/src/main/res/layout/fragment_drm_management.xml +0 -284
- package/android/src/main/res/layout/fragment_listview.xml +0 -24
- package/android/src/main/res/layout/fragment_outline.xml +0 -31
- package/android/src/main/res/layout/fragment_publication_detail.xml +0 -55
- package/android/src/main/res/layout/fragment_screen_reader.xml +0 -143
- package/android/src/main/res/layout/item_group_view.xml +0 -22
- package/android/src/main/res/layout/item_recycle_book.xml +0 -55
- package/android/src/main/res/layout/item_recycle_bookmark.xml +0 -72
- package/android/src/main/res/layout/item_recycle_button.xml +0 -23
- package/android/src/main/res/layout/item_recycle_catalog.xml +0 -56
- package/android/src/main/res/layout/item_recycle_highlight.xml +0 -85
- package/android/src/main/res/layout/item_recycle_horizontal.xml +0 -45
- package/android/src/main/res/layout/item_recycle_navigation.xml +0 -34
- package/android/src/main/res/layout/item_spinner_days.xml +0 -19
- package/android/src/main/res/layout/my_fragment.xml +0 -13
- package/android/src/main/res/layout/popup_delete.xml +0 -29
- package/android/src/main/res/layout/popup_note.xml +0 -105
- package/android/src/main/res/layout/popup_passphrase.xml +0 -126
- package/android/src/main/res/layout/popup_window_user_settings.xml +0 -576
- package/android/src/main/res/layout/section_header.xml +0 -25
- package/android/src/main/res/layout/view_action_mode.xml +0 -100
- package/android/src/main/res/layout/view_action_mode_reverse.xml +0 -99
- package/android/src/main/res/menu/bottom_nav_menu.xml +0 -19
- package/android/src/main/res/menu/menu_action_mode.xml +0 -26
- package/android/src/main/res/menu/menu_bookmark.xml +0 -18
- package/android/src/main/res/menu/menu_epub.xml +0 -41
- package/android/src/main/res/menu/menu_filter.xml +0 -21
- package/android/src/main/res/menu/menu_reader.xml +0 -33
- package/android/src/main/res/navigation/navigation.xml +0 -46
- package/android/src/main/res/values/arrays.xml +0 -18
- package/android/src/main/res/values/colors.xml +0 -22
- package/android/src/main/res/values/refs.xml +0 -5
- package/android/src/main/res/values/styles.xml +0 -46
- package/android/src/main/res/xml/network_security_config.xml +0 -38
package/README.md
CHANGED
|
@@ -10,10 +10,14 @@ A react-native wrapper for https://readium.org/
|
|
|
10
10
|
- [Release](#release)
|
|
11
11
|
- [License](#license)
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
| Dark Mode| Light Mode |
|
|
14
|
+
|---|---|
|
|
15
|
+
|  |  |
|
|
14
16
|
|
|
17
|
+
## Installation
|
|
15
18
|
|
|
16
19
|
#### Install Module
|
|
20
|
+
|
|
17
21
|
**NPM**
|
|
18
22
|
|
|
19
23
|
```sh
|
|
@@ -26,8 +30,13 @@ npm install react-native-readium
|
|
|
26
30
|
yarn add react-native-readium
|
|
27
31
|
```
|
|
28
32
|
|
|
33
|
+
#### iOS
|
|
34
|
+
|
|
35
|
+
###### Requirements
|
|
36
|
+
|
|
37
|
+
This project requires an iOS target >= `13.0`.
|
|
29
38
|
|
|
30
|
-
|
|
39
|
+
###### Pod Install
|
|
31
40
|
|
|
32
41
|
Due to the current state of the `Readium` swift libraries you need to manually
|
|
33
42
|
update your `Podfile` ([see more on that here](https://github.com/readium/swift-toolkit/issues/38)).
|
|
@@ -43,7 +52,6 @@ target 'ExampleApp' do
|
|
|
43
52
|
pod 'R2Shared', podspec: 'https://raw.githubusercontent.com/readium/swift-toolkit/2.2.0/Support/CocoaPods/ReadiumShared.podspec'
|
|
44
53
|
pod 'R2Streamer', podspec: 'https://raw.githubusercontent.com/readium/swift-toolkit/2.2.0/Support/CocoaPods/ReadiumStreamer.podspec'
|
|
45
54
|
pod 'R2Navigator', podspec: 'https://raw.githubusercontent.com/readium/swift-toolkit/2.2.0/Support/CocoaPods/ReadiumNavigator.podspec'
|
|
46
|
-
pod 'ReadiumOPDS', podspec: 'https://raw.githubusercontent.com/readium/swift-toolkit/2.2.0/Support/CocoaPods/ReadiumOPDS.podspec'
|
|
47
55
|
pod 'Minizip', modular_headers: true
|
|
48
56
|
...
|
|
49
57
|
end
|
|
@@ -8,7 +8,6 @@ import kotlinx.coroutines.flow.launchIn
|
|
|
8
8
|
import kotlinx.coroutines.flow.onEach
|
|
9
9
|
import org.readium.r2.navigator.*
|
|
10
10
|
import org.readium.r2.shared.publication.Locator
|
|
11
|
-
import com.reactnativereadium.R
|
|
12
11
|
import com.reactnativereadium.utils.EventChannel
|
|
13
12
|
import kotlinx.coroutines.channels.Channel
|
|
14
13
|
|
|
@@ -48,26 +47,6 @@ abstract class BaseReaderFragment : Fragment() {
|
|
|
48
47
|
requireActivity().invalidateOptionsMenu()
|
|
49
48
|
}
|
|
50
49
|
|
|
51
|
-
// TODO: this should probably be removed
|
|
52
|
-
override fun onCreateOptionsMenu(menu: Menu, menuInflater: MenuInflater) {
|
|
53
|
-
menuInflater.inflate(R.menu.menu_reader, menu)
|
|
54
|
-
menu.findItem(R.id.drm).isVisible = false
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
|
58
|
-
return when (item.itemId) {
|
|
59
|
-
R.id.toc -> {
|
|
60
|
-
model.channel.send(ReaderViewModel.Event.OpenOutlineRequested)
|
|
61
|
-
true
|
|
62
|
-
}
|
|
63
|
-
R.id.drm -> {
|
|
64
|
-
model.channel.send(ReaderViewModel.Event.OpenDrmManagementRequested)
|
|
65
|
-
true
|
|
66
|
-
}
|
|
67
|
-
else -> false
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
50
|
fun go(locator: Locator, animated: Boolean): Boolean {
|
|
72
51
|
// don't attempt to navigate if we're already there
|
|
73
52
|
val currentLocator = navigator.currentLocator.value
|
|
@@ -97,28 +97,6 @@ class EpubReaderFragment : VisualReaderFragment(), EpubNavigatorFragment.Listene
|
|
|
97
97
|
/* selectionActionModeCallback = customSelectionActionModeCallback */
|
|
98
98
|
}
|
|
99
99
|
)
|
|
100
|
-
// TODO: add search back in
|
|
101
|
-
// childFragmentManager.setFragmentResultListener(
|
|
102
|
-
// SearchFragment::class.java.name,
|
|
103
|
-
// this,
|
|
104
|
-
// FragmentResultListener { _, result ->
|
|
105
|
-
// menuSearch.collapseActionView()
|
|
106
|
-
// result.getParcelable<Locator>(SearchFragment::class.java.name)?.let {
|
|
107
|
-
// navigatorFragment.go(it)
|
|
108
|
-
// }
|
|
109
|
-
// }
|
|
110
|
-
// )
|
|
111
|
-
// TODO: add TTS back in
|
|
112
|
-
// childFragmentManager.setFragmentResultListener(
|
|
113
|
-
// ScreenReaderContract.REQUEST_KEY,
|
|
114
|
-
// this,
|
|
115
|
-
// FragmentResultListener { _, result ->
|
|
116
|
-
// val locator = ScreenReaderContract.parseResult(result).locator
|
|
117
|
-
// if (locator.href != navigator.currentLocator.value.href) {
|
|
118
|
-
// navigator.go(locator)
|
|
119
|
-
// }
|
|
120
|
-
// }
|
|
121
|
-
// )
|
|
122
100
|
|
|
123
101
|
setHasOptionsMenu(true)
|
|
124
102
|
|
|
@@ -182,134 +160,16 @@ class EpubReaderFragment : VisualReaderFragment(), EpubNavigatorFragment.Listene
|
|
|
182
160
|
}
|
|
183
161
|
}
|
|
184
162
|
|
|
185
|
-
override fun onCreateOptionsMenu(menu: Menu, menuInflater: MenuInflater) {
|
|
186
|
-
super.onCreateOptionsMenu(menu, menuInflater)
|
|
187
|
-
menuInflater.inflate(R.menu.menu_epub, menu)
|
|
188
|
-
|
|
189
|
-
menuScreenReader = menu.findItem(R.id.screen_reader)
|
|
190
|
-
menuSearch = menu.findItem(R.id.search)
|
|
191
|
-
menuSearchView = menuSearch.actionView as SearchView
|
|
192
|
-
|
|
193
|
-
/* connectSearch() */
|
|
194
|
-
if (!isSearchViewIconified) menuSearch.expandActionView()
|
|
195
|
-
}
|
|
196
|
-
|
|
197
163
|
override fun onSaveInstanceState(outState: Bundle) {
|
|
198
164
|
super.onSaveInstanceState(outState)
|
|
199
165
|
outState.putBoolean(IS_SCREEN_READER_VISIBLE_KEY, isScreenReaderVisible)
|
|
200
166
|
outState.putBoolean(IS_SEARCH_VIEW_ICONIFIED, isSearchViewIconified)
|
|
201
167
|
}
|
|
202
|
-
// TODO: add search
|
|
203
|
-
// private fun connectSearch() {
|
|
204
|
-
// menuSearch.setOnActionExpandListener(object : MenuItem.OnActionExpandListener {
|
|
205
|
-
//
|
|
206
|
-
// override fun onMenuItemActionExpand(item: MenuItem?): Boolean {
|
|
207
|
-
// if (isSearchViewIconified) { // It is not a state restoration.
|
|
208
|
-
// showSearchFragment()
|
|
209
|
-
// }
|
|
210
|
-
//
|
|
211
|
-
// isSearchViewIconified = false
|
|
212
|
-
// return true
|
|
213
|
-
// }
|
|
214
|
-
//
|
|
215
|
-
// override fun onMenuItemActionCollapse(item: MenuItem?): Boolean {
|
|
216
|
-
// isSearchViewIconified = true
|
|
217
|
-
// childFragmentManager.popBackStack()
|
|
218
|
-
// menuSearchView.clearFocus()
|
|
219
|
-
//
|
|
220
|
-
// return true
|
|
221
|
-
// }
|
|
222
|
-
// })
|
|
223
|
-
//
|
|
224
|
-
// menuSearchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
|
|
225
|
-
//
|
|
226
|
-
// override fun onQueryTextSubmit(query: String): Boolean {
|
|
227
|
-
// model.search(query)
|
|
228
|
-
// menuSearchView.clearFocus()
|
|
229
|
-
//
|
|
230
|
-
// return false
|
|
231
|
-
// }
|
|
232
|
-
//
|
|
233
|
-
// override fun onQueryTextChange(s: String): Boolean {
|
|
234
|
-
// return false
|
|
235
|
-
// }
|
|
236
|
-
// })
|
|
237
|
-
//
|
|
238
|
-
// menuSearchView.findViewById<ImageView>(R.id.search_close_btn).setOnClickListener {
|
|
239
|
-
// menuSearchView.requestFocus()
|
|
240
|
-
// model.cancelSearch()
|
|
241
|
-
// menuSearchView.setQuery("", false)
|
|
242
|
-
//
|
|
243
|
-
// (activity?.getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager)?.showSoftInput(
|
|
244
|
-
// this.view, InputMethodManager.SHOW_FORCED
|
|
245
|
-
// )
|
|
246
|
-
// }
|
|
247
|
-
// }
|
|
248
|
-
|
|
249
|
-
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
|
250
|
-
if (super.onOptionsItemSelected(item)) {
|
|
251
|
-
return true
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
return when (item.itemId) {
|
|
255
|
-
R.id.settings -> {
|
|
256
|
-
/* TODO: this should be stripped out */
|
|
257
|
-
/* userSettings.userSettingsPopUp().showAsDropDown(requireActivity().findViewById(R.id.settings), 0, 0, Gravity.END) */
|
|
258
|
-
true
|
|
259
|
-
}
|
|
260
|
-
R.id.search -> {
|
|
261
|
-
super.onOptionsItemSelected(item)
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
android.R.id.home -> {
|
|
265
|
-
menuSearch.collapseActionView()
|
|
266
|
-
true
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
// TODO: tts
|
|
270
|
-
// R.id.screen_reader -> {
|
|
271
|
-
// if (isScreenReaderVisible) {
|
|
272
|
-
// closeScreenReaderFragment()
|
|
273
|
-
// } else {
|
|
274
|
-
// showScreenReaderFragment()
|
|
275
|
-
// }
|
|
276
|
-
// true
|
|
277
|
-
// }
|
|
278
|
-
else -> false
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
168
|
|
|
282
169
|
override fun onTap(point: PointF): Boolean {
|
|
283
170
|
requireActivity().toggleSystemUi()
|
|
284
171
|
return true
|
|
285
172
|
}
|
|
286
|
-
// TODO: search
|
|
287
|
-
// private fun showSearchFragment() {
|
|
288
|
-
// childFragmentManager.commit {
|
|
289
|
-
// childFragmentManager.findFragmentByTag(SEARCH_FRAGMENT_TAG)?.let { remove(it) }
|
|
290
|
-
// add(R.id.fragment_reader_container, SearchFragment::class.java, Bundle(), SEARCH_FRAGMENT_TAG)
|
|
291
|
-
// hide(navigatorFragment)
|
|
292
|
-
// addToBackStack(SEARCH_FRAGMENT_TAG)
|
|
293
|
-
// }
|
|
294
|
-
// }
|
|
295
|
-
|
|
296
|
-
// TODO: tts
|
|
297
|
-
// private fun showScreenReaderFragment() {
|
|
298
|
-
// menuScreenReader.title = resources.getString(R.string.epubactivity_read_aloud_stop)
|
|
299
|
-
// isScreenReaderVisible = true
|
|
300
|
-
// val arguments = ScreenReaderContract.createArguments(navigator.currentLocator.value)
|
|
301
|
-
// childFragmentManager.commit {
|
|
302
|
-
// add(R.id.fragment_reader_container, ScreenReaderFragment::class.java, arguments)
|
|
303
|
-
// hide(navigatorFragment)
|
|
304
|
-
// addToBackStack(null)
|
|
305
|
-
// }
|
|
306
|
-
// }
|
|
307
|
-
//
|
|
308
|
-
// private fun closeScreenReaderFragment() {
|
|
309
|
-
// menuScreenReader.title = resources.getString(R.string.epubactivity_read_aloud_start)
|
|
310
|
-
// isScreenReaderVisible = false
|
|
311
|
-
// childFragmentManager.popBackStack()
|
|
312
|
-
// }
|
|
313
173
|
|
|
314
174
|
companion object {
|
|
315
175
|
|
|
@@ -330,46 +190,3 @@ class EpubReaderFragment : VisualReaderFragment(), EpubNavigatorFragment.Listene
|
|
|
330
190
|
}
|
|
331
191
|
}
|
|
332
192
|
}
|
|
333
|
-
|
|
334
|
-
/* TODO: remove */
|
|
335
|
-
// /**
|
|
336
|
-
// * Example of an HTML template for a custom Decoration Style.
|
|
337
|
-
// *
|
|
338
|
-
// * This one will display a tinted "pen" icon in the page margin to show that a highlight has an
|
|
339
|
-
// * associated note.
|
|
340
|
-
// */
|
|
341
|
-
// @OptIn(ExperimentalDecorator::class)
|
|
342
|
-
// private fun annotationMarkTemplate(context: Context, @ColorInt defaultTint: Int = Color.YELLOW): HtmlDecorationTemplate {
|
|
343
|
-
// // Converts the pen icon to a base 64 data URL, to be embedded in the decoration stylesheet.
|
|
344
|
-
// // Alternatively, serve the image with the local HTTP server and use its URL.
|
|
345
|
-
// val imageUrl = ContextCompat.getDrawable(context, R.drawable.ic_baseline_edit_24)
|
|
346
|
-
// ?.toBitmap()?.toDataUrl()
|
|
347
|
-
// requireNotNull(imageUrl)
|
|
348
|
-
//
|
|
349
|
-
// val className = "testapp-annotation-mark"
|
|
350
|
-
// return HtmlDecorationTemplate(
|
|
351
|
-
// layout = HtmlDecorationTemplate.Layout.BOUNDS,
|
|
352
|
-
// width = HtmlDecorationTemplate.Width.PAGE,
|
|
353
|
-
// element = { decoration ->
|
|
354
|
-
// val style = decoration.style as? DecorationStyleAnnotationMark
|
|
355
|
-
// val tint = style?.tint ?: defaultTint
|
|
356
|
-
// // Using `data-activable=1` prevents the whole decoration container from being
|
|
357
|
-
// // clickable. Only the icon will respond to activation events.
|
|
358
|
-
// """
|
|
359
|
-
// <div><div data-activable="1" class="$className" style="background-color: ${tint.toCss()} !important"/></div>"
|
|
360
|
-
// """
|
|
361
|
-
// },
|
|
362
|
-
// stylesheet = """
|
|
363
|
-
// .$className {
|
|
364
|
-
// float: left;
|
|
365
|
-
// margin-left: 8px;
|
|
366
|
-
// width: 30px;
|
|
367
|
-
// height: 30px;
|
|
368
|
-
// border-radius: 50%;
|
|
369
|
-
// background: url('$imageUrl') no-repeat center;
|
|
370
|
-
// background-size: auto 50%;
|
|
371
|
-
// opacity: 0.8;
|
|
372
|
-
// }
|
|
373
|
-
// """
|
|
374
|
-
// )
|
|
375
|
-
// }
|
|
@@ -1,200 +1,3 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
~ Module: r2-testapp-kotlin
|
|
3
|
-
~ Developers: Aferdita Muriqi, Clément Baumann
|
|
4
|
-
~
|
|
5
|
-
~ Copyright (c) 2018. European Digital Reading Lab. All rights reserved.
|
|
6
|
-
~ Licensed to the Readium Foundation under one or more contributor license agreements.
|
|
7
|
-
~ Use of this source code is governed by a BSD-style license which is detailed in the
|
|
8
|
-
~ LICENSE file present in the project repository where this source code is maintained.
|
|
9
|
-
-->
|
|
10
|
-
|
|
11
1
|
<resources>
|
|
12
|
-
<string name="app_name" translatable="false">R2 Reader</string>
|
|
13
|
-
<string name="menu_item_show_epub_list">Show List</string>
|
|
14
|
-
<string name="menu_item_add_epub">Add ePub</string>
|
|
15
|
-
<string name="menu_item_filter">Filter</string>
|
|
16
|
-
<string name="progress_wait_while_searching_book">Please wait.</string>
|
|
17
|
-
<string name="progress_wait">Please wait.</string>
|
|
18
|
-
<string name="progress_wait_while_downloading_book">Please wait while your publication is being downloaded.</string>
|
|
19
|
-
<string name="progress_wait_while_preparing_book">Please wait while your publication is being prepared.</string>
|
|
20
|
-
<string name="progress_wait_while_preparing_audiobook">Please wait while your audiobook is being prepared.</string>
|
|
21
|
-
<string name="progress_wait_while_loading_feed">Please wait while your feed is loading.</string>
|
|
22
|
-
<string name="error_invalid_epub">Invalid Epub</string>
|
|
23
|
-
<string name="fallback_no_description">No description</string>
|
|
24
|
-
<string name="button_dismiss">DISMISS</string>
|
|
25
|
-
|
|
26
|
-
<string name="epubactivity_drm_info">DRM Info</string>
|
|
27
|
-
<string name="epubactivity_set_bookmark">Add a bookmark</string>
|
|
28
|
-
<string name="epubactivity_settings">User Settings</string>
|
|
29
|
-
<string name="epubactivity_book_nav_options">Book navigation menu</string>
|
|
30
|
-
<string name="epubactivity_read_aloud_start">Read Aloud</string>
|
|
31
|
-
<string name="epubactivity_read_aloud_stop">Stop Read Aloud</string>
|
|
32
|
-
<string name="epubactivity_search">Search</string>
|
|
33
|
-
|
|
34
|
-
<string name="epubactivity_accessibility">Accessibility</string>
|
|
35
|
-
<string name="epubactivity_accessibility_screen_reader_start">Start Screen Reader</string>
|
|
36
|
-
<string name="epubactivity_accessibility_screen_reader_pause">Pause Screen Reader</string>
|
|
37
|
-
<string name="epubactivity_accessibility_screen_reader_resume">Resume Screen Reader</string>
|
|
38
|
-
<string name="epubactivity_accessibility_screen_reader_stop">Stop Screen Reader</string>
|
|
39
|
-
|
|
40
|
-
<string name="title_activity_opdscatalog">OPDS Catalog</string>
|
|
41
|
-
<string name="action_settings">Settings</string>
|
|
42
|
-
<string name="title_activity_r2_about">About R2 Reader</string>
|
|
43
|
-
<string name="title_activity_opds_list">OPDS Feeds</string>
|
|
44
|
-
<string name="title_activity_opds_detail">Detail</string>
|
|
45
|
-
<string name="title_fragment_drm_management">DRM Management</string>
|
|
46
|
-
<string name="title_activity_epub">Detail</string>
|
|
47
|
-
<string name="floating_button_add_book">Add a Book</string>
|
|
48
|
-
<string name="floating_button_add_feed">Add a OPDS Feed</string>
|
|
49
|
-
<string name="about_r2_reader">About R2 Reader</string>
|
|
50
|
-
<string name="more_options">More Options</string>
|
|
51
|
-
<string name="opds_feeds">OPDS Feeds</string>
|
|
52
|
-
<string name="popup_delete_button">DELETE</string>
|
|
53
|
-
<string name="add_publication_to_library">Add a publication to your library</string>
|
|
54
|
-
<string name="select_from_your_device">select from your device</string>
|
|
55
|
-
<string name="download_from_url">download from a url</string>
|
|
56
|
-
|
|
57
|
-
<string name="app_version_header">Version</string>
|
|
58
|
-
<string name="app_version_label">App Version:</string>
|
|
59
|
-
<string name="app_version">2.2.0</string>
|
|
60
|
-
<string name="github_tab_label">GitHub Tag:</string>
|
|
61
|
-
<string name="github_tag">2.2.0</string>
|
|
62
|
-
|
|
63
|
-
<string name="copyright_label">Copyright</string>
|
|
64
|
-
<string name="copyright">\@ 2019 European Digital Reading Lab</string>
|
|
65
|
-
<string name="bsd_license_label">[BSD-3 license]</string>
|
|
66
|
-
<string name="bsd_license_label_accessible">[B S D 3 license]</string>
|
|
67
|
-
<string name="acknowledgements_label">Acknowledgements</string>
|
|
68
|
-
<string name="acknowledgements_french_state">R2 Reader wouldn\'t have been developed without the financial help of the French state.</string>
|
|
69
|
-
<string name="catalog_list_more">More</string>
|
|
70
|
-
<string name="catalog_detail_download_button">Download</string>
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
<string name="menu_label_drm">DRM</string>
|
|
74
|
-
<string name="menu_label_settings">Settings</string>
|
|
75
|
-
<string name="menu_label_toc">TOC</string>
|
|
76
|
-
<string name="usersettings_label_font">Font</string>
|
|
77
|
-
<string name="usersettings_appearance_default">Default</string>
|
|
78
|
-
<string name="usersettings_appearance_sepia">Sepia</string>
|
|
79
|
-
<string name="usersettings_appearance_night">Night</string>
|
|
80
|
-
<string name="usersettings_label_scroll_mode">Scroll mode</string>
|
|
81
|
-
<string name="usersettings_publisher_default">"Publisher's Default"</string>
|
|
82
|
-
<string name="usersettings_publisher_default_accessibility">"Publisher's Default Settings"</string>
|
|
83
|
-
<string name="usersettings_label_columns">Columns</string>
|
|
84
|
-
<string name="usersettings_auto">Auto</string>
|
|
85
|
-
<string name="usersettings_column_one">1</string>
|
|
86
|
-
<string name="usersettings_column_two">2</string>
|
|
87
|
-
<string name="usersettings_label_page_margins">Page Margins</string>
|
|
88
|
-
<string name="usersettings_page_margin_default">0.75</string>
|
|
89
|
-
<string name="usersettings_label_word_spacing">Word Spacing</string>
|
|
90
|
-
<string name="usersettings_label_letter_spacing">Letter Spacing</string>
|
|
91
|
-
<string name="usersettings_label_line_height">Line Height</string>
|
|
92
|
-
<string name="usersettings_label_TTS_speech_speed">TTS speed</string>
|
|
93
|
-
|
|
94
|
-
<!-- Accessibility -->
|
|
95
|
-
|
|
96
|
-
<string name="usersettings_description_TTS_speech_speed">Set TTS speech speed</string>
|
|
97
|
-
<string name="usersettings_description_brightness">Set Brightness</string>
|
|
98
|
-
<string name="usersettings_description_font_increase">Increase Font Size</string>
|
|
99
|
-
<string name="usersettings_description_font_decrease">Decrease Font Size</string>
|
|
100
|
-
<string name="usersettings_description_pm_increase">Increase Page Margins Size</string>
|
|
101
|
-
<string name="usersettings_description_pm_decrease">Decrease Page Margins Size</string>
|
|
102
|
-
<string name="usersettings_description_ws_increase">Increase Word Spacing</string>
|
|
103
|
-
<string name="usersettings_description_ws_decrease">Decrease Word Spacing</string>
|
|
104
|
-
<string name="usersettings_description_ls_increase">Increase Letter Spacing</string>
|
|
105
|
-
<string name="usersettings_description_ls_decrease">Decrease Letter Spacing</string>
|
|
106
|
-
<string name="usersettings_description_lh_increase">Increase Line Height</string>
|
|
107
|
-
<string name="usersettings_description_lh_decrease">Decrease Line Height</string>
|
|
108
|
-
|
|
109
|
-
<string name="drm_information_header">INFORMATION</string>
|
|
110
|
-
<string name="drm_label_license_type">License Type</string>
|
|
111
|
-
<string name="drm_label_state">State</string>
|
|
112
|
-
<string name="drm_label_provider">Provider</string>
|
|
113
|
-
<string name="drm_label_issued">Issued</string>
|
|
114
|
-
<string name="drm_label_updated">Updated</string>
|
|
115
|
-
<string name="drm_label_rights">RIGHTS</string>
|
|
116
|
-
<string name="drm_label_prints_left">Prints left</string>
|
|
117
|
-
<string name="drm_label_copies_left">Copies left</string>
|
|
118
|
-
<string name="drm_label_start">Start</string>
|
|
119
|
-
<string name="drm_label_end">End</string>
|
|
120
|
-
<string name="drm_label_potential_right_end">Potential right end</string>
|
|
121
|
-
<string name="drm_label_actions">ACTIONS</string>
|
|
122
|
-
<string name="drm_label_renew">RENEW</string>
|
|
123
|
-
<string name="drm_label_return">RETURN</string>
|
|
124
|
-
<string name="zero">00:00</string>
|
|
125
|
-
<string name="chapter">Chapter</string>
|
|
126
|
-
<string name="chapter_page">Chapter / Page</string>
|
|
127
|
-
<string name="progression">Progression</string>
|
|
128
|
-
<string name="timestamp">Timestamp</string>
|
|
129
|
-
|
|
130
|
-
<!-- Outlines -->
|
|
131
|
-
<string name="contents_tab_label">Contents</string>
|
|
132
|
-
<string name="bookmarks_tab_label">Bookmarks</string>
|
|
133
|
-
<string name="highlights_tab_label">Highlights</string>
|
|
134
|
-
<string name="pagelist_tab_label">Page List</string>
|
|
135
|
-
<string name="landmarks_tab_label">Landmarks</string>
|
|
136
|
-
<string name="action_mode_menu_highlight">Highlight</string>
|
|
137
|
-
<string name="action_mode_menu_underline">Underline</string>
|
|
138
|
-
<string name="action_mode_menu_note">Note</string>
|
|
139
|
-
<string name="bookmark_added">Bookmark added</string>
|
|
140
|
-
<string name="bookmark_exists">Bookmark already exists</string>
|
|
141
|
-
|
|
142
|
-
<string name="title_catalogs">Catalogs</string>
|
|
143
|
-
<string name="title_bookshelf">Bookshelf</string>
|
|
144
|
-
<string name="title_about">About</string>
|
|
145
|
-
<string name="cover_image">Cover Image</string>
|
|
146
|
-
<string name="repfr">repfr</string>
|
|
147
|
-
|
|
148
|
-
<string name="delete">Delete</string>
|
|
149
|
-
<string name="cancel">Cancel</string>
|
|
150
|
-
<string name="confirm_delete_book_title">Delete Book?</string>
|
|
151
|
-
<string name="confirm_delete_book_text">Are you sure you want to delete this book?</string>
|
|
152
|
-
<string name="confirm_delete_catalog_title">Delete Catalog?</string>
|
|
153
|
-
<string name="confirm_delete_catalog_text">Are you sure you want to delete this Catalog feed?</string>
|
|
154
|
-
|
|
155
|
-
<string name="add_book">Add a Book</string>
|
|
156
|
-
<string name="add_catalog">Add an Catalog Feed</string>
|
|
157
|
-
<string name="ok">OK</string>
|
|
158
|
-
<string name="save">Save</string>
|
|
159
|
-
<string name="enter_title">Enter the Title</string>
|
|
160
|
-
<string name="enter_url">Enter the URL</string>
|
|
161
|
-
<string name="invalid_title">Please enter a title</string>
|
|
162
|
-
<string name="invalid_url">Please enter a valid URL</string>
|
|
163
|
-
<string name="catalog_parse_error">Error parsing Catalog feed. Please check the URL and try again</string>
|
|
164
|
-
|
|
165
|
-
<string name="publication_image_description">Cover image for %1$s</string>
|
|
166
|
-
|
|
167
|
-
<string name="return_publication">This will return the publication</string>
|
|
168
|
-
<string name="return_button">Return</string>
|
|
169
|
-
|
|
170
|
-
<string name="end_of_chapter">End of chapter</string>
|
|
171
|
-
|
|
172
|
-
<string name="unable_to_move_pub">Unable to move publication into the library</string>
|
|
173
|
-
<string name="import_publication_success">Publication added to your library</string>
|
|
174
|
-
<string name="unable_add_pub_database">Unable to add publication to the database</string>
|
|
175
|
-
<string name="failed_parsing_catalog">Failed parsing Catalog</string>
|
|
176
|
-
<string name="next_chapter">Next chapter</string>
|
|
177
|
-
<string name="next_sentence">Next sentence</string>
|
|
178
|
-
<string name="play_and_pause">Play and pause</string>
|
|
179
|
-
<string name="previous_sentence">Previous sentence</string>
|
|
180
|
-
<string name="previous_chapter">Previous chapter</string>
|
|
181
|
-
<string name="brightness_lower">Brightness lower</string>
|
|
182
|
-
<string name="brightness_higher">Brightness higher</string>
|
|
183
|
-
<string name="tts_slower">TTS slower</string>
|
|
184
|
-
<string name="tts_faster">TTS faster</string>
|
|
185
2
|
<string name="no_result">No result</string>
|
|
186
|
-
<string name="note">Note</string>
|
|
187
|
-
<string name="add_a_note">Add a note</string>
|
|
188
|
-
<string name="add_an_annotation">Add an annotation</string>
|
|
189
|
-
<string name="delete_highlight_or_annotation">Delete highlight or annotation</string>
|
|
190
|
-
<string name="yellow">Yellow</string>
|
|
191
|
-
<string name="green">Green</string>
|
|
192
|
-
<string name="blue">Blue</string>
|
|
193
|
-
<string name="red">Red</string>
|
|
194
|
-
<string name="purple">Purple</string>
|
|
195
|
-
<string name="seek_bar">Seek bar</string>
|
|
196
|
-
<string name="go_backward_30_seconds">Go backward 30 seconds</string>
|
|
197
|
-
<string name="play_or_pause">Play or pause</string>
|
|
198
|
-
<string name="go_forward_30_seconds">Go forward 30 seconds</string>
|
|
199
|
-
<string name="select_a_font">Select a font</string>
|
|
200
3
|
</resources>
|
package/ios/App/AppModule.swift
CHANGED
|
@@ -20,7 +20,6 @@ final class AppModule {
|
|
|
20
20
|
|
|
21
21
|
// App modules
|
|
22
22
|
var reader: ReaderModuleAPI! = nil
|
|
23
|
-
// var opds: OPDSModuleAPI! = nil
|
|
24
23
|
|
|
25
24
|
init() throws {
|
|
26
25
|
guard let server = PublicationServer() else {
|
|
@@ -29,7 +28,6 @@ final class AppModule {
|
|
|
29
28
|
}
|
|
30
29
|
|
|
31
30
|
reader = ReaderModule(delegate: self, resourcesServer: server)
|
|
32
|
-
// opds = OPDSModule(delegate: self)
|
|
33
31
|
|
|
34
32
|
// Set Readium 2's logging minimum level.
|
|
35
33
|
R2EnableLog(withMinimumSeverityLevel: .debug)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-readium",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.2",
|
|
4
4
|
"description": "A react-native wrapper for https://readium.org/",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"version": "yarn changelog && git add CHANGELOG.md",
|
|
34
34
|
"postversion": "npm run publish:git && npm run publish:npm",
|
|
35
35
|
"publish:git": "git push && git push --tags",
|
|
36
|
-
"publish:npm": "
|
|
36
|
+
"publish:npm": "npm run prepare && npm publish --access public",
|
|
37
37
|
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0"
|
|
38
38
|
},
|
|
39
39
|
"keywords": [
|
|
@@ -15,11 +15,12 @@ Pod::Spec.new do |s|
|
|
|
15
15
|
|
|
16
16
|
s.source_files = "ios/**/*.{h,m,mm,swift}"
|
|
17
17
|
|
|
18
|
+
s.swift_version = "5.0"
|
|
19
|
+
|
|
18
20
|
s.dependency "React-Core"
|
|
19
21
|
|
|
20
22
|
# this is an issue as these aren't currently published on cocoapods.org
|
|
21
23
|
s.dependency "R2Shared"
|
|
22
24
|
s.dependency "R2Streamer"
|
|
23
25
|
s.dependency "R2Navigator"
|
|
24
|
-
s.dependency "ReadiumOPDS"
|
|
25
26
|
end
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2021 Readium Foundation. All rights reserved.
|
|
3
|
-
* Use of this source code is governed by the BSD-style license
|
|
4
|
-
* available in the top-level LICENSE file of the project.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
package com.reactnativereadium.reader
|
|
8
|
-
|
|
9
|
-
import android.graphics.PointF
|
|
10
|
-
import android.os.Bundle
|
|
11
|
-
import android.view.LayoutInflater
|
|
12
|
-
import android.view.View
|
|
13
|
-
import android.view.ViewGroup
|
|
14
|
-
import androidx.fragment.app.commitNow
|
|
15
|
-
import androidx.lifecycle.ViewModelProvider
|
|
16
|
-
import org.readium.r2.navigator.Navigator
|
|
17
|
-
import org.readium.r2.navigator.image.ImageNavigatorFragment
|
|
18
|
-
import org.readium.r2.shared.publication.Publication
|
|
19
|
-
import com.reactnativereadium.R
|
|
20
|
-
import com.reactnativereadium.utils.toggleSystemUi
|
|
21
|
-
|
|
22
|
-
class ImageReaderFragment : VisualReaderFragment(), ImageNavigatorFragment.Listener {
|
|
23
|
-
|
|
24
|
-
override lateinit var model: ReaderViewModel
|
|
25
|
-
override lateinit var navigator: Navigator
|
|
26
|
-
private lateinit var publication: Publication
|
|
27
|
-
|
|
28
|
-
override fun onCreate(savedInstanceState: Bundle?) {
|
|
29
|
-
ViewModelProvider(requireActivity()).get(ReaderViewModel::class.java).let {
|
|
30
|
-
model = it
|
|
31
|
-
publication = it.publication
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
childFragmentManager.fragmentFactory =
|
|
35
|
-
ImageNavigatorFragment.createFactory(publication, model.initialLocation, this)
|
|
36
|
-
|
|
37
|
-
super.onCreate(savedInstanceState)
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
|
41
|
-
val view = super.onCreateView(inflater, container, savedInstanceState)
|
|
42
|
-
if (savedInstanceState == null) {
|
|
43
|
-
childFragmentManager.commitNow {
|
|
44
|
-
add(R.id.fragment_reader_container, ImageNavigatorFragment::class.java, Bundle(), NAVIGATOR_FRAGMENT_TAG)
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
navigator = childFragmentManager.findFragmentByTag(NAVIGATOR_FRAGMENT_TAG)!! as Navigator
|
|
48
|
-
return view
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
override fun onTap(point: PointF): Boolean {
|
|
52
|
-
val viewWidth = requireView().width
|
|
53
|
-
val leftRange = 0.0..(0.2 * viewWidth)
|
|
54
|
-
|
|
55
|
-
when {
|
|
56
|
-
leftRange.contains(point.x) -> navigator.goBackward(animated = true)
|
|
57
|
-
leftRange.contains(viewWidth - point.x) -> navigator.goForward(animated = true)
|
|
58
|
-
else -> requireActivity().toggleSystemUi()
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
return true
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
companion object {
|
|
65
|
-
|
|
66
|
-
const val NAVIGATOR_FRAGMENT_TAG = "navigator"
|
|
67
|
-
}
|
|
68
|
-
}
|