~repos /only-bible-app
git clone https://pyrossh.dev/repos/only-bible-app.git
The only bible app you will ever need. No ads. No in-app purchases. No distractions.
80e2cdaf
—
pyrossh 2 years ago
use email for error reporting
- android/app/google-services.json +0 -46
- ios/Runner/GoogleService-Info.plist +0 -34
- lib/firebase_options.dart +0 -82
- lib/main.dart +6 -10
- lib/store/state.dart +1 -2
- lib/utils.dart +33 -2
- macos/Runner/GoogleService-Info.plist +0 -34
- pubspec.lock +1 -73
- pubspec.yaml +1 -3
android/app/google-services.json
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"project_info": {
|
|
3
|
-
"project_number": "584350822569",
|
|
4
|
-
"project_id": "only-bible-app",
|
|
5
|
-
"storage_bucket": "only-bible-app.appspot.com"
|
|
6
|
-
},
|
|
7
|
-
"client": [
|
|
8
|
-
{
|
|
9
|
-
"client_info": {
|
|
10
|
-
"mobilesdk_app_id": "1:584350822569:android:f03003ffd2d3d9d6fdf9b8",
|
|
11
|
-
"android_client_info": {
|
|
12
|
-
"package_name": "sh.pyros.only_bible_app"
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
"oauth_client": [
|
|
16
|
-
{
|
|
17
|
-
"client_id": "584350822569-ug7h7pfasn1q7vgvasd6jhcv1v3i0s0l.apps.googleusercontent.com",
|
|
18
|
-
"client_type": 3
|
|
19
|
-
}
|
|
20
|
-
],
|
|
21
|
-
"api_key": [
|
|
22
|
-
{
|
|
23
|
-
"current_key": "AIzaSyA0XlcB1JwkUbYX6CUnf9TkW4UtNxFq2ag"
|
|
24
|
-
}
|
|
25
|
-
],
|
|
26
|
-
"services": {
|
|
27
|
-
"appinvite_service": {
|
|
28
|
-
"other_platform_oauth_client": [
|
|
29
|
-
{
|
|
30
|
-
"client_id": "584350822569-ug7h7pfasn1q7vgvasd6jhcv1v3i0s0l.apps.googleusercontent.com",
|
|
31
|
-
"client_type": 3
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"client_id": "584350822569-93bboqrirsb1q4mm697qm6ja58mnnakg.apps.googleusercontent.com",
|
|
35
|
-
"client_type": 2,
|
|
36
|
-
"ios_info": {
|
|
37
|
-
"bundle_id": "sh.pyros.onlyBibleApp"
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
]
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
],
|
|
45
|
-
"configuration_version": "1"
|
|
46
|
-
}
|
ios/Runner/GoogleService-Info.plist
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
3
|
-
<plist version="1.0">
|
|
4
|
-
<dict>
|
|
5
|
-
<key>CLIENT_ID</key>
|
|
6
|
-
<string>584350822569-93bboqrirsb1q4mm697qm6ja58mnnakg.apps.googleusercontent.com</string>
|
|
7
|
-
<key>REVERSED_CLIENT_ID</key>
|
|
8
|
-
<string>com.googleusercontent.apps.584350822569-93bboqrirsb1q4mm697qm6ja58mnnakg</string>
|
|
9
|
-
<key>API_KEY</key>
|
|
10
|
-
<string>AIzaSyAqRrBRa3fVmoZby_b4submR2hjQkImgZc</string>
|
|
11
|
-
<key>GCM_SENDER_ID</key>
|
|
12
|
-
<string>584350822569</string>
|
|
13
|
-
<key>PLIST_VERSION</key>
|
|
14
|
-
<string>1</string>
|
|
15
|
-
<key>BUNDLE_ID</key>
|
|
16
|
-
<string>sh.pyros.onlyBibleApp</string>
|
|
17
|
-
<key>PROJECT_ID</key>
|
|
18
|
-
<string>only-bible-app</string>
|
|
19
|
-
<key>STORAGE_BUCKET</key>
|
|
20
|
-
<string>only-bible-app.appspot.com</string>
|
|
21
|
-
<key>IS_ADS_ENABLED</key>
|
|
22
|
-
<false></false>
|
|
23
|
-
<key>IS_ANALYTICS_ENABLED</key>
|
|
24
|
-
<false></false>
|
|
25
|
-
<key>IS_APPINVITE_ENABLED</key>
|
|
26
|
-
<true></true>
|
|
27
|
-
<key>IS_GCM_ENABLED</key>
|
|
28
|
-
<true></true>
|
|
29
|
-
<key>IS_SIGNIN_ENABLED</key>
|
|
30
|
-
<true></true>
|
|
31
|
-
<key>GOOGLE_APP_ID</key>
|
|
32
|
-
<string>1:584350822569:ios:73b8443b3dd48f40fdf9b8</string>
|
|
33
|
-
</dict>
|
|
34
|
-
</plist>
|
lib/firebase_options.dart
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
// File generated by FlutterFire CLI.
|
|
2
|
-
// ignore_for_file: lines_longer_than_80_chars, avoid_classes_with_only_static_members
|
|
3
|
-
import 'package:firebase_core/firebase_core.dart' show FirebaseOptions;
|
|
4
|
-
import 'package:flutter/foundation.dart'
|
|
5
|
-
show defaultTargetPlatform, kIsWeb, TargetPlatform;
|
|
6
|
-
|
|
7
|
-
/// Default [FirebaseOptions] for use with your Firebase apps.
|
|
8
|
-
///
|
|
9
|
-
/// Example:
|
|
10
|
-
/// ```dart
|
|
11
|
-
/// import 'firebase_options.dart';
|
|
12
|
-
/// // ...
|
|
13
|
-
/// await Firebase.initializeApp(
|
|
14
|
-
/// options: DefaultFirebaseOptions.currentPlatform,
|
|
15
|
-
/// );
|
|
16
|
-
/// ```
|
|
17
|
-
class DefaultFirebaseOptions {
|
|
18
|
-
static FirebaseOptions get currentPlatform {
|
|
19
|
-
if (kIsWeb) {
|
|
20
|
-
return web;
|
|
21
|
-
}
|
|
22
|
-
switch (defaultTargetPlatform) {
|
|
23
|
-
case TargetPlatform.android:
|
|
24
|
-
return android;
|
|
25
|
-
case TargetPlatform.iOS:
|
|
26
|
-
return ios;
|
|
27
|
-
case TargetPlatform.macOS:
|
|
28
|
-
return macos;
|
|
29
|
-
case TargetPlatform.windows:
|
|
30
|
-
throw UnsupportedError(
|
|
31
|
-
'DefaultFirebaseOptions have not been configured for windows - '
|
|
32
|
-
'you can reconfigure this by running the FlutterFire CLI again.',
|
|
33
|
-
);
|
|
34
|
-
case TargetPlatform.linux:
|
|
35
|
-
throw UnsupportedError(
|
|
36
|
-
'DefaultFirebaseOptions have not been configured for linux - '
|
|
37
|
-
'you can reconfigure this by running the FlutterFire CLI again.',
|
|
38
|
-
);
|
|
39
|
-
default:
|
|
40
|
-
throw UnsupportedError(
|
|
41
|
-
'DefaultFirebaseOptions are not supported for this platform.',
|
|
42
|
-
);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
static const FirebaseOptions web = FirebaseOptions(
|
|
47
|
-
apiKey: 'AIzaSyAa9-kLU9yy9g8cRJG7jh5kOA8Z77uI_Pg',
|
|
48
|
-
appId: '1:584350822569:web:b4c020f0a7e40f7cfdf9b8',
|
|
49
|
-
messagingSenderId: '584350822569',
|
|
50
|
-
projectId: 'only-bible-app',
|
|
51
|
-
authDomain: 'only-bible-app.firebaseapp.com',
|
|
52
|
-
storageBucket: 'only-bible-app.appspot.com',
|
|
53
|
-
);
|
|
54
|
-
|
|
55
|
-
static const FirebaseOptions android = FirebaseOptions(
|
|
56
|
-
apiKey: 'AIzaSyA0XlcB1JwkUbYX6CUnf9TkW4UtNxFq2ag',
|
|
57
|
-
appId: '1:584350822569:android:f03003ffd2d3d9d6fdf9b8',
|
|
58
|
-
messagingSenderId: '584350822569',
|
|
59
|
-
projectId: 'only-bible-app',
|
|
60
|
-
storageBucket: 'only-bible-app.appspot.com',
|
|
61
|
-
);
|
|
62
|
-
|
|
63
|
-
static const FirebaseOptions ios = FirebaseOptions(
|
|
64
|
-
apiKey: 'AIzaSyAqRrBRa3fVmoZby_b4submR2hjQkImgZc',
|
|
65
|
-
appId: '1:584350822569:ios:73b8443b3dd48f40fdf9b8',
|
|
66
|
-
messagingSenderId: '584350822569',
|
|
67
|
-
projectId: 'only-bible-app',
|
|
68
|
-
storageBucket: 'only-bible-app.appspot.com',
|
|
69
|
-
iosClientId: '584350822569-93bboqrirsb1q4mm697qm6ja58mnnakg.apps.googleusercontent.com',
|
|
70
|
-
iosBundleId: 'sh.pyros.onlyBibleApp',
|
|
71
|
-
);
|
|
72
|
-
|
|
73
|
-
static const FirebaseOptions macos = FirebaseOptions(
|
|
74
|
-
apiKey: 'AIzaSyAqRrBRa3fVmoZby_b4submR2hjQkImgZc',
|
|
75
|
-
appId: '1:584350822569:ios:5d85f3e76fa02286fdf9b8',
|
|
76
|
-
messagingSenderId: '584350822569',
|
|
77
|
-
projectId: 'only-bible-app',
|
|
78
|
-
storageBucket: 'only-bible-app.appspot.com',
|
|
79
|
-
iosClientId: '584350822569-s9t1p0bb1gqj8fothe4s5lstvu9k7244.apps.googleusercontent.com',
|
|
80
|
-
iosBundleId: 'sh.pyros.onlyBibleApp.RunnerTests',
|
|
81
|
-
);
|
|
82
|
-
}
|
lib/main.dart
CHANGED
|
@@ -3,28 +3,24 @@ import "package:flutter/foundation.dart";
|
|
|
3
3
|
import "package:flutter_azure_tts/flutter_azure_tts.dart";
|
|
4
4
|
import "package:flutter_dotenv/flutter_dotenv.dart";
|
|
5
5
|
import "package:flutter_web_plugins/url_strategy.dart";
|
|
6
|
-
import "package:firebase_core/firebase_core.dart";
|
|
7
|
-
import "package:firebase_crashlytics/firebase_crashlytics.dart";
|
|
8
|
-
import "package:only_bible_app/firebase_options.dart";
|
|
9
6
|
import "package:flutter_native_splash/flutter_native_splash.dart";
|
|
10
7
|
import "package:only_bible_app/app.dart";
|
|
11
8
|
import "package:only_bible_app/navigation.dart";
|
|
12
9
|
import "package:only_bible_app/store/state.dart";
|
|
10
|
+
import "package:only_bible_app/utils.dart";
|
|
13
11
|
|
|
14
12
|
void main() async {
|
|
15
|
-
WidgetsBinding widgetsBinding = WidgetsFlutterBinding.ensureInitialized();
|
|
16
|
-
await Firebase.initializeApp(
|
|
17
|
-
options: DefaultFirebaseOptions.currentPlatform,
|
|
18
|
-
);
|
|
19
13
|
FlutterError.onError = (errorDetails) {
|
|
20
14
|
FlutterError.presentError(errorDetails);
|
|
21
|
-
|
|
15
|
+
recordError(errorDetails.exception.toString(), errorDetails.stack);
|
|
22
16
|
};
|
|
23
17
|
PlatformDispatcher.instance.onError = (error, stack) {
|
|
24
|
-
|
|
18
|
+
recordError(error.toString(), stack);
|
|
25
19
|
return true;
|
|
26
20
|
};
|
|
27
|
-
FlutterNativeSplash.preserve(
|
|
21
|
+
FlutterNativeSplash.preserve(
|
|
22
|
+
widgetsBinding: WidgetsFlutterBinding.ensureInitialized(),
|
|
23
|
+
);
|
|
28
24
|
usePathUrlStrategy();
|
|
29
25
|
await dotenv.load(fileName: ".env");
|
|
30
26
|
AzureTts.init(
|
lib/store/state.dart
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import "dart:developer";
|
|
2
|
-
import "package:firebase_crashlytics/firebase_crashlytics.dart";
|
|
3
2
|
import "package:flutter/material.dart";
|
|
4
3
|
import "package:flutter/services.dart";
|
|
5
4
|
import "package:get_storage/get_storage.dart";
|
|
@@ -281,7 +280,7 @@ onPlay(BuildContext context, Bible bible) async {
|
|
|
281
280
|
await player.stop();
|
|
282
281
|
} catch (err) {
|
|
283
282
|
log("Could not play audio", name: "play", error: (err.toString(), pathname));
|
|
284
|
-
|
|
283
|
+
recordError((err.toString(), pathname).toString(), null);
|
|
285
284
|
if (context.mounted) {
|
|
286
285
|
showError(context, context.l.audioError);
|
|
287
286
|
}
|
lib/utils.dart
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import "dart:convert";
|
|
2
|
+
import "package:flutter_dotenv/flutter_dotenv.dart";
|
|
3
|
+
import "package:http/http.dart" as http;
|
|
2
4
|
import "package:flutter/services.dart";
|
|
3
5
|
import "package:only_bible_app/dialog.dart";
|
|
4
6
|
import "package:only_bible_app/models.dart";
|
|
5
7
|
import "package:only_bible_app/store/state.dart";
|
|
6
8
|
import "package:url_launcher/url_launcher.dart";
|
|
7
|
-
import "package:flutter/foundation.dart" show defaultTargetPlatform,
|
|
9
|
+
import "package:flutter/foundation.dart" show TargetPlatform, defaultTargetPlatform, kDebugMode;
|
|
8
10
|
import "package:flutter/material.dart";
|
|
9
11
|
import "package:flutter_gen/gen_l10n/app_localizations.dart";
|
|
10
12
|
import "package:flutter_azure_tts/flutter_azure_tts.dart";
|
|
@@ -40,7 +42,8 @@ extension AppContext on BuildContext {
|
|
|
40
42
|
? lookupAppLocalizations(const Locale("en"))
|
|
41
43
|
: AppLocalizations.of(this)!;
|
|
42
44
|
|
|
45
|
+
AppLocalizations get currentLang =>
|
|
43
|
-
|
|
46
|
+
supportedLocalizations.firstWhere((el) => el.languageCode == languageCodeAtom.value);
|
|
44
47
|
|
|
45
48
|
double get actionsHeight {
|
|
46
49
|
if (isIOS()) {
|
|
@@ -194,3 +197,31 @@ Future<Bible> loadBible(String name) async {
|
|
|
194
197
|
);
|
|
195
198
|
}
|
|
196
199
|
|
|
200
|
+
recordError(String message, StackTrace? stack) async {
|
|
201
|
+
if (kDebugMode) {
|
|
202
|
+
print("ERROR: $message");
|
|
203
|
+
print("ERROR STACK: ${stack.toString()}");
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
await Future.delayed(Duration(seconds: 2));
|
|
207
|
+
final apiKey = dotenv.get("RESEND_API_KEY");
|
|
208
|
+
final url = Uri.https("api.resend.com", "/emails");
|
|
209
|
+
final response = await http.post(
|
|
210
|
+
url,
|
|
211
|
+
headers: {
|
|
212
|
+
"Authorization": "Bearer $apiKey",
|
|
213
|
+
"Content-Type": "application/json",
|
|
214
|
+
},
|
|
215
|
+
body: jsonEncode({
|
|
216
|
+
"from": "onboarding@resend.dev",
|
|
217
|
+
"to": "peter.john@sent.com",
|
|
218
|
+
"subject": "Error Stack trace",
|
|
219
|
+
"html":
|
|
220
|
+
"<div><p><strong>Error:</strong>$message</p><p><strong>StackTrace:</strong>${stack?.toString()}</p></div>",
|
|
221
|
+
}),
|
|
222
|
+
);
|
|
223
|
+
if (response.statusCode == 200) {
|
|
224
|
+
print("Response status: ${response.statusCode}");
|
|
225
|
+
print("Response body: ${response.body}");
|
|
226
|
+
}
|
|
227
|
+
}
|
macos/Runner/GoogleService-Info.plist
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
3
|
-
<plist version="1.0">
|
|
4
|
-
<dict>
|
|
5
|
-
<key>CLIENT_ID</key>
|
|
6
|
-
<string>584350822569-s9t1p0bb1gqj8fothe4s5lstvu9k7244.apps.googleusercontent.com</string>
|
|
7
|
-
<key>REVERSED_CLIENT_ID</key>
|
|
8
|
-
<string>com.googleusercontent.apps.584350822569-s9t1p0bb1gqj8fothe4s5lstvu9k7244</string>
|
|
9
|
-
<key>API_KEY</key>
|
|
10
|
-
<string>AIzaSyAqRrBRa3fVmoZby_b4submR2hjQkImgZc</string>
|
|
11
|
-
<key>GCM_SENDER_ID</key>
|
|
12
|
-
<string>584350822569</string>
|
|
13
|
-
<key>PLIST_VERSION</key>
|
|
14
|
-
<string>1</string>
|
|
15
|
-
<key>BUNDLE_ID</key>
|
|
16
|
-
<string>sh.pyros.onlyBibleApp.RunnerTests</string>
|
|
17
|
-
<key>PROJECT_ID</key>
|
|
18
|
-
<string>only-bible-app</string>
|
|
19
|
-
<key>STORAGE_BUCKET</key>
|
|
20
|
-
<string>only-bible-app.appspot.com</string>
|
|
21
|
-
<key>IS_ADS_ENABLED</key>
|
|
22
|
-
<false></false>
|
|
23
|
-
<key>IS_ANALYTICS_ENABLED</key>
|
|
24
|
-
<false></false>
|
|
25
|
-
<key>IS_APPINVITE_ENABLED</key>
|
|
26
|
-
<true></true>
|
|
27
|
-
<key>IS_GCM_ENABLED</key>
|
|
28
|
-
<true></true>
|
|
29
|
-
<key>IS_SIGNIN_ENABLED</key>
|
|
30
|
-
<true></true>
|
|
31
|
-
<key>GOOGLE_APP_ID</key>
|
|
32
|
-
<string>1:584350822569:ios:5d85f3e76fa02286fdf9b8</string>
|
|
33
|
-
</dict>
|
|
34
|
-
</plist>
|
pubspec.lock
CHANGED
|
@@ -9,14 +9,6 @@ packages:
|
|
|
9
9
|
url: "https://pub.dev"
|
|
10
10
|
source: hosted
|
|
11
11
|
version: "61.0.0"
|
|
12
|
-
_flutterfire_internals:
|
|
13
|
-
dependency: transitive
|
|
14
|
-
description:
|
|
15
|
-
name: _flutterfire_internals
|
|
16
|
-
sha256: "5dce45a06d386358334eb1689108db6455d90ceb0d75848d5f4819283d4ee2b8"
|
|
17
|
-
url: "https://pub.dev"
|
|
18
|
-
source: hosted
|
|
19
|
-
version: "1.3.4"
|
|
20
12
|
analyzer:
|
|
21
13
|
dependency: transitive
|
|
22
14
|
description:
|
|
@@ -273,70 +265,6 @@ packages:
|
|
|
273
265
|
url: "https://pub.dev"
|
|
274
266
|
source: hosted
|
|
275
267
|
version: "6.1.4"
|
|
276
|
-
firebase_core:
|
|
277
|
-
dependency: "direct main"
|
|
278
|
-
description:
|
|
279
|
-
name: firebase_core
|
|
280
|
-
sha256: "2e9324f719e90200dc7d3c4f5d2abc26052f9f2b995d3b6626c47a0dfe1c8192"
|
|
281
|
-
url: "https://pub.dev"
|
|
282
|
-
source: hosted
|
|
283
|
-
version: "2.15.0"
|
|
284
|
-
firebase_core_platform_interface:
|
|
285
|
-
dependency: transitive
|
|
286
|
-
description:
|
|
287
|
-
name: firebase_core_platform_interface
|
|
288
|
-
sha256: b63e3be6c96ef5c33bdec1aab23c91eb00696f6452f0519401d640938c94cba2
|
|
289
|
-
url: "https://pub.dev"
|
|
290
|
-
source: hosted
|
|
291
|
-
version: "4.8.0"
|
|
292
|
-
firebase_core_web:
|
|
293
|
-
dependency: transitive
|
|
294
|
-
description:
|
|
295
|
-
name: firebase_core_web
|
|
296
|
-
sha256: "0fd5c4b228de29b55fac38aed0d9e42514b3d3bd47675de52bf7f8fccaf922fa"
|
|
297
|
-
url: "https://pub.dev"
|
|
298
|
-
source: hosted
|
|
299
|
-
version: "2.6.0"
|
|
300
|
-
firebase_crashlytics:
|
|
301
|
-
dependency: "direct main"
|
|
302
|
-
description:
|
|
303
|
-
name: firebase_crashlytics
|
|
304
|
-
sha256: "3607b46342537f98df18b130b6f5ab25cee6981a3a782e1a7b121d04dfea3caa"
|
|
305
|
-
url: "https://pub.dev"
|
|
306
|
-
source: hosted
|
|
307
|
-
version: "3.3.4"
|
|
308
|
-
firebase_crashlytics_platform_interface:
|
|
309
|
-
dependency: transitive
|
|
310
|
-
description:
|
|
311
|
-
name: firebase_crashlytics_platform_interface
|
|
312
|
-
sha256: c63abeb87b18f6e6d4bf6bb3977f15d2d9281a049d93fe098e83e56dcbf7da06
|
|
313
|
-
url: "https://pub.dev"
|
|
314
|
-
source: hosted
|
|
315
|
-
version: "3.6.4"
|
|
316
|
-
firebase_performance:
|
|
317
|
-
dependency: "direct main"
|
|
318
|
-
description:
|
|
319
|
-
name: firebase_performance
|
|
320
|
-
sha256: "86272e47beded7128bc2b8285670e78387728b20bd668a3c433bcb682e963e8f"
|
|
321
|
-
url: "https://pub.dev"
|
|
322
|
-
source: hosted
|
|
323
|
-
version: "0.9.2+4"
|
|
324
|
-
firebase_performance_platform_interface:
|
|
325
|
-
dependency: transitive
|
|
326
|
-
description:
|
|
327
|
-
name: firebase_performance_platform_interface
|
|
328
|
-
sha256: a296dba20e508ab8b8d1f424015a361e2129228e0335d67230c8fdb446637d19
|
|
329
|
-
url: "https://pub.dev"
|
|
330
|
-
source: hosted
|
|
331
|
-
version: "0.1.4+4"
|
|
332
|
-
firebase_performance_web:
|
|
333
|
-
dependency: transitive
|
|
334
|
-
description:
|
|
335
|
-
name: firebase_performance_web
|
|
336
|
-
sha256: "8eae9e19fd067ca30b66ebf8ea0b47bd70a9fce66cbb288620418fe01d58e1af"
|
|
337
|
-
url: "https://pub.dev"
|
|
338
|
-
source: hosted
|
|
339
|
-
version: "0.1.4+4"
|
|
340
268
|
fixnum:
|
|
341
269
|
dependency: transitive
|
|
342
270
|
description:
|
|
@@ -480,7 +408,7 @@ packages:
|
|
|
480
408
|
source: hosted
|
|
481
409
|
version: "0.15.4"
|
|
482
410
|
http:
|
|
483
|
-
dependency:
|
|
411
|
+
dependency: "direct main"
|
|
484
412
|
description:
|
|
485
413
|
name: http
|
|
486
414
|
sha256: "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2"
|
pubspec.yaml
CHANGED
|
@@ -22,9 +22,6 @@ dependencies:
|
|
|
22
22
|
flutter_native_splash: ^2.3.1
|
|
23
23
|
flutter_swipe_detector: ^2.0.0
|
|
24
24
|
cupertino_icons: ^1.0.5
|
|
25
|
-
firebase_core: ^2.15.0
|
|
26
|
-
firebase_crashlytics: ^3.3.4
|
|
27
|
-
firebase_performance: ^0.9.2+4
|
|
28
25
|
settings_ui: ^2.0.2
|
|
29
26
|
get_storage: ^2.1.1
|
|
30
27
|
share_plus: ^7.1.0
|
|
@@ -33,6 +30,7 @@ dependencies:
|
|
|
33
30
|
package_info_plus: ^4.1.0
|
|
34
31
|
flutter_azure_tts: ^0.1.6
|
|
35
32
|
flutter_dotenv: ^5.1.0
|
|
33
|
+
http: ^0.13.6
|
|
36
34
|
|
|
37
35
|
dev_dependencies:
|
|
38
36
|
flutter_test:
|