diff --git a/lib/initialization.dart b/lib/initialization.dart index eb72a67e..e420c331 100644 --- a/lib/initialization.dart +++ b/lib/initialization.dart @@ -1,3 +1,6 @@ +import 'dart:developer'; +import 'dart:io'; + import 'package:app_tracking_transparency/app_tracking_transparency.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_crashlytics/firebase_crashlytics.dart'; @@ -11,24 +14,33 @@ import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; -Future initializeApp() async { +Future initializeBindings() async { + // await _initializeTracking(); WidgetsFlutterBinding.ensureInitialized(); - await _initializeTracking(); + await _initializeAppTrackingTransparency(); await StorageHelper().init(); - await _initializeFirebase(); await _initializeNotificationService(); - _initializeUrlStrategy(); - _initializeSystemSettings(); + await _initializeUrlStrategy(); + await _initializeSystemSettings(); await _initializeFlutterFlow(); await _initializeNav(); } -Future _initializeTracking() async { - print('Requesting tracking authorization...'); - await AppTrackingTransparency.requestTrackingAuthorization(); - - print('Tracking authorization requested'); +Future _initializeAppTrackingTransparency() async { + if (Platform.isIOS) { + final status = await AppTrackingTransparency.trackingAuthorizationStatus; + if (status == TrackingStatus.notDetermined) { + await Future.delayed(const Duration(seconds: 2)); + final request = + await AppTrackingTransparency.requestTrackingAuthorization(); + if (request == TrackingStatus.authorized) { + log('Tracking authorized'); + } else { + log('Tracking not authorized'); + } + } + } } Future _initializeFirebase() async { @@ -43,7 +55,7 @@ Future _initializeNotificationService() async { print('Notification Service initialized'); } -void _initializeUrlStrategy() { +Future _initializeUrlStrategy() async { print('Initializing URL Strategy...'); setUrlStrategy(PathUrlStrategy()); print('URL Strategy initialized'); diff --git a/lib/main.dart b/lib/main.dart index d02e48c7..6a34430c 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -4,6 +4,7 @@ import 'dart:async'; import 'dart:developer'; import 'dart:io'; +import 'package:app_tracking_transparency/app_tracking_transparency.dart'; import 'package:firebase_crashlytics/firebase_crashlytics.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter/material.dart'; @@ -21,7 +22,7 @@ import 'initialization.dart'; final GlobalKey navigatorKey = GlobalKey(); void main() async { - await initializeApp(); + await initializeBindings(); runApp(const ProviderScope(child: App())); FirebaseMessaging.onBackgroundMessage(_backgroundHandlerMessage); } @@ -169,7 +170,7 @@ class _AppState extends State { void initState() { super.initState(); - FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(true); + // FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(true); _appStateNotifier = AppStateNotifier.instance; _router = createRouter(_appStateNotifier); Future.delayed( diff --git a/test/features/module/module_test.dart b/test/features/module/module_test.dart index 430d9e9f..6047230c 100644 --- a/test/features/module/module_test.dart +++ b/test/features/module/module_test.dart @@ -29,7 +29,7 @@ void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); setUpAll(() async { - await initializeApp(); + await initializeBindings(); }); group('Test', () {