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:app_tracking_transparency/app_tracking_transparency.dart';
|
||||||
import 'package:firebase_core/firebase_core.dart';
|
import 'package:firebase_core/firebase_core.dart';
|
||||||
import 'package:firebase_crashlytics/firebase_crashlytics.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';
|
import 'package:hub/flutter_flow/nav/nav.dart';
|
||||||
|
|
||||||
Future<void> initializeApp() async {
|
Future<void> initializeApp() async {
|
||||||
WidgetsFlutterBinding.ensureInitialized();
|
|
||||||
// await _initializeTracking();
|
// await _initializeTracking();
|
||||||
// WidgetsFlutterBinding.ensureInitialized().addPostFrameCallback((_) async =>
|
// WidgetsFlutterBinding.ensureInitialized()
|
||||||
// await AppTrackingTransparency.requestTrackingAuthorization());
|
// .addPostFrameCallback((_) => _initializeAppTrackingTransparency());
|
||||||
|
|
||||||
await StorageHelper().init();
|
await StorageHelper().init();
|
||||||
|
|
||||||
await _initializeFirebase();
|
await _initializeFirebase();
|
||||||
await _initializeNotificationService();
|
await _initializeNotificationService();
|
||||||
_initializeUrlStrategy();
|
await _initializeUrlStrategy();
|
||||||
_initializeSystemSettings();
|
await _initializeSystemSettings();
|
||||||
await _initializeFlutterFlow();
|
await _initializeFlutterFlow();
|
||||||
await _initializeNav();
|
await _initializeNav();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Future<void> _initializeTracking() async {
|
void _initializeAppTrackingTransparency() async {
|
||||||
// print('Requesting tracking authorization...');
|
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 {
|
Future<void> _initializeFirebase() async {
|
||||||
print('Initializing Firebase...');
|
print('Initializing Firebase...');
|
||||||
|
@ -45,7 +90,7 @@ Future<void> _initializeNotificationService() async {
|
||||||
print('Notification Service initialized');
|
print('Notification Service initialized');
|
||||||
}
|
}
|
||||||
|
|
||||||
void _initializeUrlStrategy() {
|
Future<void> _initializeUrlStrategy() async {
|
||||||
print('Initializing URL Strategy...');
|
print('Initializing URL Strategy...');
|
||||||
setUrlStrategy(PathUrlStrategy());
|
setUrlStrategy(PathUrlStrategy());
|
||||||
print('URL Strategy initialized');
|
print('URL Strategy initialized');
|
||||||
|
|
|
@ -22,6 +22,7 @@ import 'initialization.dart';
|
||||||
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
|
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
|
||||||
|
|
||||||
void main() async {
|
void main() async {
|
||||||
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
await initializeApp();
|
await initializeApp();
|
||||||
runApp(const ProviderScope(child: App()));
|
runApp(const ProviderScope(child: App()));
|
||||||
FirebaseMessaging.onBackgroundMessage(_backgroundHandlerMessage);
|
FirebaseMessaging.onBackgroundMessage(_backgroundHandlerMessage);
|
||||||
|
@ -169,8 +170,9 @@ class _AppState extends State<App> {
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
|
WidgetsBinding.instance.addPostFrameCallback(
|
||||||
FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(true);
|
(_) => _initializeAppTrackingTransparency(context));
|
||||||
|
// FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(true);
|
||||||
_appStateNotifier = AppStateNotifier.instance;
|
_appStateNotifier = AppStateNotifier.instance;
|
||||||
_router = createRouter(_appStateNotifier);
|
_router = createRouter(_appStateNotifier);
|
||||||
Future.delayed(
|
Future.delayed(
|
||||||
|
@ -183,15 +185,15 @@ class _AppState extends State<App> {
|
||||||
_setupFirebaseMessaging();
|
_setupFirebaseMessaging();
|
||||||
// if (TestUtil.isInTest) //
|
// if (TestUtil.isInTest) //
|
||||||
DeepLinkService().ensureInitialization();
|
DeepLinkService().ensureInitialization();
|
||||||
WidgetsFlutterBinding.ensureInitialized().addPostFrameCallback(
|
|
||||||
(_) => _initializeAppTrackingTransparency(context));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void _initializeAppTrackingTransparency(BuildContext context) async {
|
void _initializeAppTrackingTransparency(BuildContext context) async {
|
||||||
if (Platform.isIOS) {
|
if (Platform.isIOS) {
|
||||||
final status = await AppTrackingTransparency.trackingAuthorizationStatus;
|
final status = await AppTrackingTransparency.trackingAuthorizationStatus;
|
||||||
if (status == TrackingStatus.notDetermined) {
|
if (status == TrackingStatus.notDetermined) {
|
||||||
|
await Future.delayed(const Duration(seconds: 1));
|
||||||
await showCustomTrackingDialog(context);
|
await showCustomTrackingDialog(context);
|
||||||
|
await Future.delayed(const Duration(seconds: 1));
|
||||||
final request =
|
final request =
|
||||||
await AppTrackingTransparency.requestTrackingAuthorization();
|
await AppTrackingTransparency.requestTrackingAuthorization();
|
||||||
if (request == TrackingStatus.authorized) {
|
if (request == TrackingStatus.authorized) {
|
||||||
|
|
Loading…
Reference in New Issue