WIP
This commit is contained in:
parent
3bbe005e80
commit
b89b4b8a2c
|
@ -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';
|
||||
|
@ -12,26 +15,68 @@ import 'package:hub/flutter_flow/flutter_flow_util.dart';
|
|||
import 'package:hub/flutter_flow/nav/nav.dart';
|
||||
|
||||
Future<void> initializeApp() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
// await _initializeTracking();
|
||||
// WidgetsFlutterBinding.ensureInitialized().addPostFrameCallback((_) async =>
|
||||
// await AppTrackingTransparency.requestTrackingAuthorization());
|
||||
// WidgetsFlutterBinding.ensureInitialized()
|
||||
// .addPostFrameCallback((_) => _initializeAppTrackingTransparency());
|
||||
|
||||
await StorageHelper().init();
|
||||
|
||||
await _initializeFirebase();
|
||||
await _initializeNotificationService();
|
||||
_initializeUrlStrategy();
|
||||
_initializeSystemSettings();
|
||||
await _initializeUrlStrategy();
|
||||
await _initializeSystemSettings();
|
||||
await _initializeFlutterFlow();
|
||||
await _initializeNav();
|
||||
}
|
||||
|
||||
// Future<void> _initializeTracking() async {
|
||||
// print('Requesting tracking authorization...');
|
||||
void _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');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// print('Tracking authorization requested');
|
||||
// }
|
||||
Future<void> showCustomTrackingDialog(BuildContext context) async {
|
||||
// final String title = FFLocalizations.of(context).getVariableText(
|
||||
// enText: 'Privacy',
|
||||
// ptText: 'Privacidade',
|
||||
// );
|
||||
// final String content = FFLocalizations.of(context).getVariableText(
|
||||
// enText:
|
||||
// 'We care about your privacy and data security. We need your permission to use your data for crash reporting and diagnostics. '
|
||||
// 'This helps us improve the app and provide a better user experience.\n\nYou can change your choice anytime in the app settings.',
|
||||
// ptText:
|
||||
// 'Prezamos pela sua privacidade e segurança dos seus dados. Precisamos da sua permissão para usar seus dados para relatórios de falhas e diagnósticos.'
|
||||
// 'Isso nos ajuda a melhorar o aplicativo e fornecer uma melhor experiência ao usuário.\n\nVocê pode alterar sua escolha a qualquer momento nas configurações do aplicativo.',
|
||||
// );
|
||||
const String title = 'Privacy';
|
||||
const String content =
|
||||
'We care about your privacy and data security. We need your permission to use your data for crash reporting and diagnostics. '
|
||||
'This helps us improve the app and provide a better user experience.\n\nYou can change your choice anytime in the app settings.';
|
||||
|
||||
return await showDialog<void>(
|
||||
context: context,
|
||||
builder: (context) => AlertDialog(
|
||||
title: Text(title),
|
||||
content: Text(content),
|
||||
actions: [
|
||||
TextButton(
|
||||
onPressed: () => Navigator.pop(context),
|
||||
child: const Text('Continue'),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> _initializeFirebase() async {
|
||||
print('Initializing Firebase...');
|
||||
|
@ -45,7 +90,7 @@ Future<void> _initializeNotificationService() async {
|
|||
print('Notification Service initialized');
|
||||
}
|
||||
|
||||
void _initializeUrlStrategy() {
|
||||
Future<void> _initializeUrlStrategy() async {
|
||||
print('Initializing URL Strategy...');
|
||||
setUrlStrategy(PathUrlStrategy());
|
||||
print('URL Strategy initialized');
|
||||
|
|
|
@ -22,6 +22,7 @@ import 'initialization.dart';
|
|||
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
|
||||
|
||||
void main() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
await initializeApp();
|
||||
runApp(const ProviderScope(child: App()));
|
||||
FirebaseMessaging.onBackgroundMessage(_backgroundHandlerMessage);
|
||||
|
@ -169,8 +170,9 @@ class _AppState extends State<App> {
|
|||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
|
||||
FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(true);
|
||||
WidgetsBinding.instance.addPostFrameCallback(
|
||||
(_) => _initializeAppTrackingTransparency(context));
|
||||
// FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(true);
|
||||
_appStateNotifier = AppStateNotifier.instance;
|
||||
_router = createRouter(_appStateNotifier);
|
||||
Future.delayed(
|
||||
|
@ -183,15 +185,15 @@ class _AppState extends State<App> {
|
|||
_setupFirebaseMessaging();
|
||||
// if (TestUtil.isInTest) //
|
||||
DeepLinkService().ensureInitialization();
|
||||
WidgetsFlutterBinding.ensureInitialized().addPostFrameCallback(
|
||||
(_) => _initializeAppTrackingTransparency(context));
|
||||
}
|
||||
|
||||
void _initializeAppTrackingTransparency(BuildContext context) async {
|
||||
if (Platform.isIOS) {
|
||||
final status = await AppTrackingTransparency.trackingAuthorizationStatus;
|
||||
if (status == TrackingStatus.notDetermined) {
|
||||
await Future.delayed(const Duration(seconds: 1));
|
||||
await showCustomTrackingDialog(context);
|
||||
await Future.delayed(const Duration(seconds: 1));
|
||||
final request =
|
||||
await AppTrackingTransparency.requestTrackingAuthorization();
|
||||
if (request == TrackingStatus.authorized) {
|
||||
|
|
Loading…
Reference in New Issue