Skip to content

Commit ea7550b

Browse files
committed
#355: added logs and log detail screen
1 parent 58f2392 commit ea7550b

28 files changed

+644
-97
lines changed

ios/Podfile.lock

+12
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,10 @@ PODS:
9494
- PromisesSwift (~> 2.1)
9595
- FirebaseSharedSwift (10.29.0)
9696
- Flutter (1.0.0)
97+
- flutter_key_value_file_storage (0.0.1):
98+
- Flutter
99+
- flutter_secure_file_storage (0.0.1):
100+
- Flutter
97101
- flutter_secure_storage (6.0.0):
98102
- Flutter
99103
- GoogleAppMeasurement (10.25.0):
@@ -195,6 +199,8 @@ DEPENDENCIES:
195199
- firebase_crashlytics (from `.symlinks/plugins/firebase_crashlytics/ios`)
196200
- firebase_remote_config (from `.symlinks/plugins/firebase_remote_config/ios`)
197201
- Flutter (from `Flutter`)
202+
- flutter_key_value_file_storage (from `.symlinks/plugins/flutter_key_value_file_storage/ios`)
203+
- flutter_secure_file_storage (from `.symlinks/plugins/flutter_secure_file_storage/ios`)
198204
- flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`)
199205
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
200206
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
@@ -240,6 +246,10 @@ EXTERNAL SOURCES:
240246
:path: ".symlinks/plugins/firebase_remote_config/ios"
241247
Flutter:
242248
:path: Flutter
249+
flutter_key_value_file_storage:
250+
:path: ".symlinks/plugins/flutter_key_value_file_storage/ios"
251+
flutter_secure_file_storage:
252+
:path: ".symlinks/plugins/flutter_secure_file_storage/ios"
243253
flutter_secure_storage:
244254
:path: ".symlinks/plugins/flutter_secure_storage/ios"
245255
path_provider_foundation:
@@ -273,6 +283,8 @@ SPEC CHECKSUMS:
273283
FirebaseSessions: dbd14adac65ce996228652c1fc3a3f576bdf3ecc
274284
FirebaseSharedSwift: 20530f495084b8d840f78a100d8c5ee613375f6e
275285
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
286+
flutter_key_value_file_storage: b91fb1747ffa3e36810c752a1763655fda0b9f3d
287+
flutter_secure_file_storage: cdf659810f1849916ea5371ed5df339a3aaa802c
276288
flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12
277289
GoogleAppMeasurement: 9abf64b682732fed36da827aa2a68f0221fd2356
278290
GoogleDataTransport: 6c09b596d841063d76d4288cc2d2f42cc36e1e2a

ios/Runner.xcodeproj/project.pbxproj

+4
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,8 @@
315315
"${BUILT_PRODUCTS_DIR}/ReachabilitySwift/Reachability.framework",
316316
"${BUILT_PRODUCTS_DIR}/connectivity_plus/connectivity_plus.framework",
317317
"${BUILT_PRODUCTS_DIR}/device_info_plus/device_info_plus.framework",
318+
"${BUILT_PRODUCTS_DIR}/flutter_key_value_file_storage/flutter_key_value_file_storage.framework",
319+
"${BUILT_PRODUCTS_DIR}/flutter_secure_file_storage/flutter_secure_file_storage.framework",
318320
"${BUILT_PRODUCTS_DIR}/flutter_secure_storage/flutter_secure_storage.framework",
319321
"${BUILT_PRODUCTS_DIR}/nanopb/nanopb.framework",
320322
"${BUILT_PRODUCTS_DIR}/path_provider_foundation/path_provider_foundation.framework",
@@ -343,6 +345,8 @@
343345
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reachability.framework",
344346
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/connectivity_plus.framework",
345347
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/device_info_plus.framework",
348+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_key_value_file_storage.framework",
349+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_secure_file_storage.framework",
346350
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_secure_storage.framework",
347351
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/nanopb.framework",
348352
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/path_provider_foundation.framework",

lib/app.dart

+8
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import 'package:flutter_template/viewmodel/global/global_viewmodel.dart';
99
import 'package:flutter_template/widget/general/flavor_banner.dart';
1010
import 'package:flutter_template/widget/general/text_scale_factor.dart';
1111
import 'package:flutter_template/widget/provider/provider_widget.dart';
12+
import 'package:icapps_architecture/icapps_architecture.dart';
13+
import 'package:log_to_secure_file/log_to_secure_file.dart';
1214

1315
class MyApp extends StatelessWidget {
1416
const MyApp({super.key});
@@ -23,6 +25,12 @@ class MyApp extends StatelessWidget {
2325
systemNavigationBarColor: Colors.transparent,
2426
));
2527
SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge);
28+
29+
// init logger
30+
final fileLogger = getIt.get<SecureLogStorage>();
31+
fileLogger.init();
32+
LoggingFactory.configure(LoggingConfiguration(onLog: (value) => fileLogger.storeLogLine(value)));
33+
2634
return const InternalApp();
2735
}
2836
}

lib/di/injectable.config.dart

+84-72
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/di/injectable.dart

+4
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import 'package:flutter_template/util/interceptor/network_refresh_interceptor.da
2121
import 'package:get_it/get_it.dart';
2222
import 'package:icapps_architecture/icapps_architecture.dart';
2323
import 'package:injectable/injectable.dart';
24+
import 'package:log_to_secure_file/log_to_secure_file.dart';
2425
import 'package:shared_preferences/shared_preferences.dart';
2526

2627
final getIt = GetIt.asNewInstance();
@@ -60,6 +61,9 @@ abstract class RegisterModule {
6061
return createDriftDatabaseConnection('db');
6162
}
6263

64+
@lazySingleton
65+
SecureLogStorage provideSecureLogStorage(SecureStorage secureStorage) => SecureLogStorage();
66+
6367
@lazySingleton
6468
FirebaseAnalytics provideFirebaseAnalytics() => FirebaseAnalytics.instance;
6569

lib/navigator/main_navigator.dart

+2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ class MainNavigator with BaseNavigator {
2121

2222
static String get initialRoute => FlavorConfig.isInTest() ? 'test_route' : RouteNames.splashScreen;
2323

24+
BuildContext get context => navigatorKey.currentContext!;
25+
2426
static List<NavigatorObserver> get navigatorObservers => _navigatorObservers;
2527

2628
Future<void> goToDatabase(GeneratedDatabase db) async => _navigator.push<void>(MaterialPageRoute(builder: (context) => DriftDbViewer(db)));

0 commit comments

Comments
 (0)