~repos /only-bible-app

#kotlin#android#ios

GIT_CONFIG_PARAMETERS="'http.version=HTTP/1.1'" git clone https://git.pyrossh.dev/only-bible-app.git
Discussions: https://groups.google.com/g/rust-embed-devs

The only bible app you will ever need. No ads. No in-app purchases. No distractions.


lib/app.dart CHANGED
@@ -22,10 +22,10 @@ class App extends StatelessWidget {
22
22
  pageBuilder: (context, state) {
23
23
  final bookIndex = int.parse(state.pathParameters["bookIndex"]!);
24
24
  final chapterIndex = int.parse(state.pathParameters["chapterIndex"]!);
25
- final extra = state.extra as ({TextDirection? slideDir, int? scrollToVerse})?;
25
+ final extra = state.extra as ({TextDirection? slideDir, int? scrollToVerse, int navId})?;
26
26
  final slideDir = extra?.slideDir;
27
27
  final scrollToVerse = extra?.scrollToVerse;
28
- final pageKey = ValueKey('$bookIndex-$chapterIndex');
28
+ final pageKey = ValueKey('$bookIndex-$chapterIndex-${extra?.navId ?? 0}');
29
29
  if (slideDir != null) {
30
30
  return CustomTransitionPage(
31
31
  key: pageKey,
lib/store/actions_navigation.dart CHANGED
@@ -114,12 +114,14 @@ class GoToChapterAction extends ReduxAction<AppState> {
114
114
  @override
115
115
  AppState reduce() {
116
116
  SoLoud.instance.disposeAllSources();
117
+ final navId = DateTime.now().millisecondsSinceEpoch;
117
118
  if (book > state.savedBook || (book == state.savedBook && chapter > state.savedChapter)) {
118
- router.push("/chapter/$book/$chapter", extra: (slideDir: TextDirection.ltr, scrollToVerse: verse));
119
+ router.push("/chapter/$book/$chapter", extra: (slideDir: TextDirection.ltr, scrollToVerse: verse, navId: navId));
119
120
  } else if (book < state.savedBook || (book == state.savedBook && chapter < state.savedChapter)) {
120
- router.push("/chapter/$book/$chapter", extra: (slideDir: TextDirection.rtl, scrollToVerse: verse));
121
+ router.push("/chapter/$book/$chapter", extra: (slideDir: TextDirection.rtl, scrollToVerse: verse, navId: navId));
121
122
  } else {
122
- router.push("/chapter/$book/$chapter", extra: (slideDir: null as TextDirection?, scrollToVerse: verse));
123
+ router.push("/chapter/$book/$chapter",
124
+ extra: (slideDir: null as TextDirection?, scrollToVerse: verse, navId: navId));
123
125
  }
124
126
  return state.copy(
125
127
  savedBook: book,
@@ -156,7 +158,7 @@ class NextChapterAction extends ReduxAction<AppState> {
156
158
  SoLoud.instance.disposeAllSources();
157
159
  router.pushReplacement(
158
160
  "/chapter/$newBook/$newChapter",
159
- extra: (slideDir: TextDirection.ltr, scrollToVerse: null as int?),
161
+ extra: (slideDir: TextDirection.ltr, scrollToVerse: null as int?, navId: DateTime.now().millisecondsSinceEpoch),
160
162
  );
161
163
  return state.copy(
162
164
  savedBook: newBook,
@@ -198,7 +200,7 @@ class PreviousChapterAction extends ReduxAction<AppState> {
198
200
  SoLoud.instance.disposeAllSources();
199
201
  router.pushReplacement(
200
202
  "/chapter/$newBook/$newChapter",
201
- extra: (slideDir: TextDirection.rtl, scrollToVerse: null as int?),
203
+ extra: (slideDir: TextDirection.rtl, scrollToVerse: null as int?, navId: DateTime.now().millisecondsSinceEpoch),
202
204
  );
203
205
  return state.copy(
204
206
  savedBook: newBook,