WIP
This commit is contained in:
parent
afe8d0d509
commit
6f12eaa8ea
|
@ -183,11 +183,55 @@ class _AppState extends State<App> {
|
||||||
_setupFirebaseMessaging();
|
_setupFirebaseMessaging();
|
||||||
// if (TestUtil.isInTest) //
|
// if (TestUtil.isInTest) //
|
||||||
DeepLinkService().ensureInitialization();
|
DeepLinkService().ensureInitialization();
|
||||||
WidgetsFlutterBinding.ensureInitialized().addPostFrameCallback((_) async {
|
WidgetsFlutterBinding.ensureInitialized()
|
||||||
await AppTrackingTransparency.requestTrackingAuthorization();
|
.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
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
super.dispose();
|
super.dispose();
|
||||||
|
|
Loading…
Reference in New Issue