import 'providers/language_provider.dart'; import 'package:app_tracking_transparency/app_tracking_transparency.dart'; import 'package:flutter/material.dart'; import 'package:muaawana/views/splash/splash_screen.dart'; import 'package:shared_preferences/shared_preferences.dart'; class AppTrackingPolicyPermissionScreen extends StatefulWidget { const AppTrackingPolicyPermissionScreen({Key? key}) : super(key: key); @override State createState() => _AppTrackingPolicyPermissionScreenState(); } class _AppTrackingPolicyPermissionScreenState extends State { @override void initState() { showTransparency(); super.initState(); } Future showCustomTrackingDialog(BuildContext context) async => await showDialog( context: context, builder: (context) => AlertDialog( title: Text(languageSingleton.translate('Dear User')), content: Text( languageSingleton.translate( '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.'), ), actions: [ TextButton( onPressed: () => Navigator.pop(context), child: Text(languageSingleton.translate('Continue')), ), ], ), ); navigate() { Future.delayed(const Duration(seconds: 1), () { Navigator.pushReplacement( context, MaterialPageRoute(builder: (context) => const Splash()), ); }); } showTransparency() async { // var prefs = await SharedPreferences.getInstance(); final prefs = await SharedPreferences.getInstance(); final TrackingStatus status = await AppTrackingTransparency.requestTrackingAuthorization(); // TrackingStatus status = // await AppTrackingTransparency.trackingAuthorizationStatus; setState(() {}); // print(status.name); // If the system can show an authorization request dialog if (status == TrackingStatus.notDetermined) { // Show a custom explainer dialog before the system dialog await showCustomTrackingDialog(context); // Wait for dialog popping animation await Future.delayed(const Duration(milliseconds: 200)); // Request system's tracking authorization dialog final TrackingStatus status = await AppTrackingTransparency.requestTrackingAuthorization(); setState(() {}); } if (status == TrackingStatus.notSupported) { navigate(); } if (status == TrackingStatus.authorized) { final uuid = await AppTrackingTransparency.getAdvertisingIdentifier(); prefs.setString("UUID", uuid); prefs.setBool("TrackingStatus", true); navigate(); } if (status == TrackingStatus.denied) { final uuid = await AppTrackingTransparency.getAdvertisingIdentifier(); prefs.setString("UUID", uuid); prefs.setBool("TrackingStatus", false); navigate(); } final uuid = await AppTrackingTransparency.getAdvertisingIdentifier(); prefs.setString("UUID", uuid); navigate(); } @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.white, body: Center( child: Container( // color: Colors.white, // child: Image.asset('assets/images/logo.png',), ), ), ); } }