import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:go_router/go_router.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:package_info_plus/package_info_plus.dart'; import 'package:url_launcher/url_launcher_string.dart'; class SettingsScreen extends StatelessWidget { const SettingsScreen({super.key}); @override Widget build(BuildContext context) { return Material( color: Theme.of(context).colorScheme.surface, child: Scaffold( appBar: AppBar( title: Text('settings'.tr), ), body: ListView( children: [ Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ ClipRRect( borderRadius: const BorderRadius.all(Radius.circular(16)), child: Image.asset("assets/icon.png", width: 64, height: 64), ).paddingAll(8), const SizedBox(height: 12), Text( 'appName'.tr, style: Theme.of(context).textTheme.headlineMedium, ), Text('appDescription'.tr), FutureBuilder( future: PackageInfo.fromPlatform(), builder: (context, snapshot) { if (!snapshot.hasData) { return Text('loading'.tr); } return Text( 'v${snapshot.data!.version} (${snapshot.data!.buildNumber})', style: GoogleFonts.ibmPlexMono(fontSize: 12), ); }, ), ], ).paddingOnly(left: 24, right: 24, bottom: 16), const Divider(height: 1, thickness: 0.3).paddingOnly( bottom: 16, top: 8, ), ListTile( contentPadding: const EdgeInsets.symmetric(horizontal: 24), trailing: const Icon(Icons.chevron_right), title: Text('settingsAlertSection'.tr), onTap: () { GoRouter.of(context).pushNamed('settingsAlert'); }, ), ListTile( contentPadding: const EdgeInsets.symmetric(horizontal: 24), trailing: const Icon(Icons.chevron_right), title: Text('settingsDataSection'.tr), onTap: () { GoRouter.of(context).pushNamed('settingsDataSource'); }, ), const Divider(height: 1, thickness: 0.3) .paddingOnly(top: 16, bottom: 8), Center( child: InkWell( borderRadius: const BorderRadius.all(Radius.circular(8)), child: Text('appCopyright'.tr, textAlign: TextAlign.center) .paddingAll(8), onTap: () { launchUrlString("https://solsynth.dev"); }, ), ), ], ), ), ); } }