import 'package:flutter/material.dart'; import 'package:in_app_review/in_app_review.dart'; import 'package:share_plus/share_plus.dart'; import 'package:url_launcher/url_launcher.dart'; import 'generated/i18n.dart'; import 'mainDrawer.dart'; class SupportPage extends StatefulWidget { const SupportPage({super.key}); static const String routeName = '/support'; @override _SupportPageState createState() => _SupportPageState(); } class _SupportPageState extends State { final GlobalKey _scaffoldKey = GlobalKey(); Widget buildSupportButton() { return Align( alignment: const Alignment(0.0, -0.2), child: OutlinedButton.icon( icon: const Icon(Icons.favorite_border), label: Text(S.of(context).comunesSupportBtn), onPressed: () async { final Uri url = Uri.parse('https://comunes.org/'); if (await canLaunchUrl(url)) { await launchUrl(url); } }, ), ); } Widget buildShareButton() { return Align( alignment: const Alignment(0.0, -0.2), child: OutlinedButton.icon( icon: const Icon(Icons.share), label: Text(S.of(context).shareAppBtn), onPressed: () { Share.shareWithResult( 'https://play.google.com/store/apps/details?id=org.comunes.fires'); }, ), ); } Widget buildStarButton() { return Align( alignment: const Alignment(0.0, -0.2), child: OutlinedButton.icon( icon: const Icon(Icons.star_border), label: Text(S.of(context).starAppBtn), onPressed: () { InAppReview.instance.requestReview(); }, ), ); } Widget buildTranslateButton() { return Align( alignment: const Alignment(0.0, -0.2), child: OutlinedButton.icon( icon: const Icon(Icons.translate), label: Text(S.of(context).translateBtn), onPressed: () async { final Uri url = Uri.parse( 'https://translate.comunes.org/projects/todos-contra-el-fuego/'); if (await canLaunchUrl(url)) { await launchUrl(url); } }, ), ); } @override @override Widget build(BuildContext context) { return Scaffold( key: _scaffoldKey, appBar: AppBar(title: Text(S.of(context).supportThisInitiative)), drawer: MainDrawer(context, SupportPage.routeName), body: Padding( padding: const EdgeInsets.all(8.0), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Flexible( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Text( S.of(context).supportPageDescription, textAlign: TextAlign.center, ), const SizedBox(height: 20.0), buildSupportButton(), const SizedBox(height: 20.0), buildTranslateButton(), const SizedBox(height: 20.0), buildStarButton(), const SizedBox(height: 20.0), buildShareButton() ], )) ], ), )); } }