~repos /only-bible-app
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.
2eb2416c
—
pyrossh 1 month ago
fix app state extension
- lib/app.dart +0 -1
- lib/dialog.dart +1 -0
- lib/home.dart +1 -1
- lib/main.dart +0 -1
- lib/store/app_state.dart +8 -0
- lib/utils.dart +1 -10
- lib/widgets/book_select_sheet.dart +1 -0
- lib/widgets/chapter_select_sheet.dart +1 -1
- lib/widgets/home_app_bar.dart +1 -1
- lib/widgets/menu_overlay.dart +1 -1
- lib/widgets/settings_sheet.dart +1 -0
- lib/widgets/verses_view.dart +1 -1
lib/app.dart
CHANGED
|
@@ -5,7 +5,6 @@ import "package:only_bible_app/home.dart";
|
|
|
5
5
|
import "package:only_bible_app/store/app_navigator.dart";
|
|
6
6
|
import "package:only_bible_app/store/app_state.dart";
|
|
7
7
|
import "package:only_bible_app/theme.dart";
|
|
8
|
-
import "package:only_bible_app/utils.dart";
|
|
9
8
|
|
|
10
9
|
class App extends StatelessWidget {
|
|
11
10
|
final GlobalKey<NavigatorState> globalNavigatorKey;
|
lib/dialog.dart
CHANGED
|
@@ -3,6 +3,7 @@ import "package:flutter/material.dart";
|
|
|
3
3
|
import "package:only_bible_app/gen/bible.gen.dart";
|
|
4
4
|
import "package:only_bible_app/store/actions_navigation.dart";
|
|
5
5
|
import "package:only_bible_app/utils.dart";
|
|
6
|
+
import "package:only_bible_app/store/app_state.dart";
|
|
6
7
|
|
|
7
8
|
void showAlert(BuildContext context, String title, String message) {
|
|
8
9
|
showDialog(
|
lib/home.dart
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "package:flutter/material.dart";
|
|
2
|
-
import "package:only_bible_app/
|
|
2
|
+
import "package:only_bible_app/store/app_state.dart";
|
|
3
3
|
import "package:only_bible_app/widgets/home_app_bar.dart";
|
|
4
4
|
import "package:only_bible_app/widgets/verses_view.dart";
|
|
5
5
|
|
lib/main.dart
CHANGED
|
@@ -8,7 +8,6 @@ import "package:flutter_native_splash/flutter_native_splash.dart";
|
|
|
8
8
|
import "package:async_redux/async_redux.dart";
|
|
9
9
|
import "package:only_bible_app/app.dart";
|
|
10
10
|
import "package:only_bible_app/dialog.dart";
|
|
11
|
-
|
|
12
11
|
import "package:only_bible_app/store/app_persistor.dart";
|
|
13
12
|
import "package:only_bible_app/store/app_state.dart";
|
|
14
13
|
import "package:only_bible_app/utils.dart";
|
lib/store/app_state.dart
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import "package:flutter/material.dart";
|
|
2
2
|
import "package:only_bible_app/gen/bible.gen.dart";
|
|
3
3
|
import "package:only_bible_app/theme.dart";
|
|
4
|
+
import "package:async_redux/async_redux.dart";
|
|
5
|
+
export "package:async_redux/async_redux.dart" show BuildContextExtensionForProviderAndConnector;
|
|
4
6
|
|
|
5
7
|
class AppState {
|
|
6
8
|
final bool engTitles;
|
|
@@ -106,3 +108,9 @@ class AppState {
|
|
|
106
108
|
);
|
|
107
109
|
}
|
|
108
110
|
}
|
|
111
|
+
|
|
112
|
+
extension AppStateExtension on BuildContext {
|
|
113
|
+
AppState get state => getState<AppState>();
|
|
114
|
+
AppState read() => getRead<AppState>();
|
|
115
|
+
R select<R>(R Function(AppState state) selector) => getSelect<AppState, R>(selector);
|
|
116
|
+
}
|
lib/utils.dart
CHANGED
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
import "dart:convert";
|
|
2
2
|
import "dart:io";
|
|
3
|
-
|
|
3
|
+
|
|
4
|
-
export "package:async_redux/async_redux.dart" show BuildContextExtensionForProviderAndConnector;
|
|
5
4
|
import "package:http/http.dart" as http;
|
|
6
5
|
import "package:flutter/services.dart";
|
|
7
6
|
import "package:package_info_plus/package_info_plus.dart";
|
|
8
|
-
import "package:url_launcher/url_launcher.dart";
|
|
9
7
|
import "package:flutter/foundation.dart" show TargetPlatform, defaultTargetPlatform, kDebugMode;
|
|
10
8
|
import "package:flutter/material.dart";
|
|
11
9
|
import "package:flutter_azure_tts/flutter_azure_tts.dart";
|
|
12
10
|
import "package:only_bible_app/env.dart";
|
|
13
11
|
import "package:only_bible_app/gen/bible.gen.dart";
|
|
14
|
-
import "package:only_bible_app/store/app_state.dart";
|
|
15
12
|
export "package:only_bible_app/bible_data.dart";
|
|
16
13
|
|
|
17
14
|
extension BibleExt on Bible {
|
|
@@ -41,12 +38,6 @@ extension IterableUtils<E> on Iterable<E> {
|
|
|
41
38
|
Iterable<E> addBy(E e) => toList()..add(e);
|
|
42
39
|
}
|
|
43
40
|
|
|
44
|
-
extension AppStateExtension on BuildContext {
|
|
45
|
-
AppState get state => getState<AppState>();
|
|
46
|
-
AppState read() => getRead<AppState>();
|
|
47
|
-
R select<R>(R Function(AppState state) selector) => getSelect<AppState, R>(selector);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
41
|
extension AppContext on BuildContext {
|
|
51
42
|
ThemeData get theme => Theme.of(this);
|
|
52
43
|
|
lib/widgets/book_select_sheet.dart
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import "package:flutter/material.dart";
|
|
2
2
|
import "package:only_bible_app/gen/bible.gen.dart";
|
|
3
|
+
import "package:only_bible_app/store/app_state.dart";
|
|
3
4
|
import "package:only_bible_app/utils.dart";
|
|
4
5
|
import "package:only_bible_app/widgets/book_tile.dart";
|
|
5
6
|
|
lib/widgets/chapter_select_sheet.dart
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import "package:flutter/material.dart";
|
|
2
2
|
import "package:only_bible_app/gen/bible.gen.dart";
|
|
3
|
+
import "package:only_bible_app/store/app_state.dart";
|
|
3
4
|
import "package:only_bible_app/store/actions_navigation.dart";
|
|
4
5
|
import "package:only_bible_app/store/app_navigator.dart";
|
|
5
|
-
import "package:only_bible_app/utils.dart";
|
|
6
6
|
import "package:only_bible_app/widgets/book_tile.dart";
|
|
7
7
|
|
|
8
8
|
class ChapterSelectSheet extends StatelessWidget {
|
lib/widgets/home_app_bar.dart
CHANGED
|
@@ -3,7 +3,7 @@ import "package:only_bible_app/dialog.dart";
|
|
|
3
3
|
import "package:only_bible_app/gen/bible.gen.dart";
|
|
4
4
|
import "package:only_bible_app/store/actions_navigation.dart";
|
|
5
5
|
import "package:only_bible_app/store/app_navigator.dart";
|
|
6
|
-
import "package:only_bible_app/
|
|
6
|
+
import "package:only_bible_app/store/app_state.dart";
|
|
7
7
|
|
|
8
8
|
class HomeAppBar extends StatelessWidget implements PreferredSizeWidget {
|
|
9
9
|
final Bible bible;
|
lib/widgets/menu_overlay.dart
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import "package:flutter/material.dart";
|
|
2
2
|
import "package:only_bible_app/gen/bible.gen.dart";
|
|
3
|
+
import "package:only_bible_app/store/app_state.dart";
|
|
3
4
|
import "package:only_bible_app/store/actions_state.dart";
|
|
4
5
|
import "package:only_bible_app/store/actions_navigation.dart";
|
|
5
6
|
import "package:only_bible_app/theme.dart";
|
|
6
|
-
import "package:only_bible_app/utils.dart";
|
|
7
7
|
import "package:only_bible_app/widgets/highlight_button.dart";
|
|
8
8
|
|
|
9
9
|
class MenuOverlay extends StatelessWidget {
|
lib/widgets/settings_sheet.dart
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import "package:flutter/material.dart";
|
|
2
2
|
import "package:only_bible_app/gen/bible.gen.dart";
|
|
3
|
+
import "package:only_bible_app/store/app_state.dart";
|
|
3
4
|
import "package:only_bible_app/store/actions_state.dart";
|
|
4
5
|
import "package:only_bible_app/utils.dart";
|
|
5
6
|
import "package:settings_ui/settings_ui.dart";
|
lib/widgets/verses_view.dart
CHANGED
|
@@ -6,7 +6,7 @@ import "package:only_bible_app/store/actions_navigation.dart";
|
|
|
6
6
|
import "package:only_bible_app/store/app_navigator.dart";
|
|
7
7
|
import "package:only_bible_app/widgets/menu_overlay.dart";
|
|
8
8
|
import "package:only_bible_app/store/actions_state.dart";
|
|
9
|
-
import "package:only_bible_app/
|
|
9
|
+
import "package:only_bible_app/store/app_state.dart";
|
|
10
10
|
|
|
11
11
|
class VersesView extends StatelessWidget {
|
|
12
12
|
final Bible bible;
|