Files
TravelMate/lib/components/settings/policies/policies_content.dart
Van Leemput Dayron bf48971dc4
Some checks failed
Deploy to Play Store / build_and_deploy (push) Has been cancelled
feat: Propagate user profile updates to group member details and remove trip code sharing UI.
2025-12-06 16:43:40 +01:00

98 lines
3.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
class PoliciesContent extends StatelessWidget {
const PoliciesContent({super.key});
Future<void> _launchGooglePrivacyPolicy() async {
final Uri url = Uri.parse('https://policies.google.com/privacy');
if (!await launchUrl(url)) {
throw Exception('Could not launch $url');
}
}
Future<void> _launchCustomPrivacyPolicy() async {
final Uri url = Uri.parse('https://xeewy.be/travelmate/policies');
if (!await launchUrl(url)) {
throw Exception('Could not launch $url');
}
}
Future<void> _onBackPressed(BuildContext context) async {
if (Navigator.canPop(context)) {
Navigator.pop(context);
}
}
@override
Widget build(BuildContext context) {
final theme = Theme.of(context);
final isDark = theme.brightness == Brightness.dark;
return Scaffold(
backgroundColor: theme.scaffoldBackgroundColor,
appBar: AppBar(
backgroundColor: theme.appBarTheme.backgroundColor,
elevation: 0,
title: Text(
'Politiques de confidentialité',
style: TextStyle(
color: isDark ? Colors.white : Colors.black,
fontWeight: FontWeight.w600,
),
),
leading: IconButton(
icon: Icon(Icons.arrow_back, color: theme.iconTheme.color),
onPressed: () => _onBackPressed(context),
),
),
body: SingleChildScrollView(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// Keep only the buttons
const SizedBox(height: 20),
// Bouton Google Privacy Policy
SizedBox(
width: double.infinity,
child: ElevatedButton.icon(
onPressed: _launchGooglePrivacyPolicy,
icon: const Icon(Icons.link),
label: const Text('Politique de confidentialité Google'),
style: ElevatedButton.styleFrom(
backgroundColor: theme.primaryColor,
foregroundColor: Colors.white,
padding: const EdgeInsets.symmetric(vertical: 12),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8),
),
),
),
),
const SizedBox(height: 12),
// Bouton Nos politiques de confidentialité
SizedBox(
width: double.infinity,
child: ElevatedButton.icon(
onPressed: _launchCustomPrivacyPolicy,
icon: const Icon(Icons.policy),
label: const Text('Nos politiques de confidentialités'),
style: ElevatedButton.styleFrom(
backgroundColor: theme.primaryColor,
foregroundColor: Colors.white,
padding: const EdgeInsets.symmetric(vertical: 12),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8),
),
),
),
),
const SizedBox(height: 32),
],
),
),
);
}
}