This commit is contained in:
jantunesmessias 2025-02-19 08:54:48 -03:00
parent afe8d0d509
commit 6f12eaa8ea
1 changed files with 47 additions and 3 deletions

View File

@ -183,11 +183,55 @@ class _AppState extends State<App> {
_setupFirebaseMessaging();
// if (TestUtil.isInTest) //
DeepLinkService().ensureInitialization();
WidgetsFlutterBinding.ensureInitialized().addPostFrameCallback((_) async {
await AppTrackingTransparency.requestTrackingAuthorization();
});
WidgetsFlutterBinding.ensureInitialized()
.addPostFrameCallback((_) => _initializeAppTrackingTransparency());
}
void _initializeAppTrackingTransparency() async {
if (Platform.isIOS) {
final status = await AppTrackingTransparency.trackingAuthorizationStatus;
if (status == TrackingStatus.notDetermined) {
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 keep this app free by showing ads. '
'Can we continue to use your data to tailor ads for you?\n\nYou can change your choice anytime in the app settings. '
'Our partners will collect data and use a unique identifier on your device to show you ads.',
ptText: 'Prezamos pela sua privacidade e segurança dos seus dados. Mantemos este aplicativo gratuito exibindo anúncios.'
'Podemos continuar a usar seus dados para personalizar anúncios para você?\n\nVocê pode alterar sua escolha a qualquer momento nas configurações do aplicativo.'
'Nossos parceiros coletarão dados e usarão um identificador exclusivo em seu dispositivo para mostrar anúncios.',
)
await showCustomTrackingDialog(context, title, content);
final request =
await AppTrackingTransparency.requestTrackingAuthorization();
if (request == TrackingStatus.authorized) {
log('Tracking authorized');
} else {
log('Tracking not authorized');
}
}
}
}
Future<void> showCustomTrackingDialog(
BuildContext context, String title, String content) async =>
await showDialog<void>(
context: context,
builder: (context) => AlertDialog(
title: Text(title),
content: Text(content),
actions: [
TextButton(
onPressed: () => Navigator.pop(context),
child: const Text('Continue'),
),
],
),
);
@override
void dispose() {
super.dispose();