import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:package_info/package_info.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/widget/banner.dart'; import 'package:fcs/widget/localization/transalation.dart'; import 'package:fcs/widget/offline_redirect.dart'; import 'package:fcs/widget/products.dart'; import 'contact.dart'; import 'login_page.dart'; import 'manual/manual_page.dart'; class WelcomePage extends StatefulWidget { @override _WelcomePageState createState() => _WelcomePageState(); } class _WelcomePageState extends State { String version = ""; List _selection = List.generate(2, (_) => false); @override void initState() { super.initState(); _loadVersion(); var languageModel = Provider.of(context, listen: false); languageModel.isEng ? _selection[0] = true : _selection[1] = true; } _loadVersion() async { var version = await getVersionNumber(); setState(() { this.version = version; }); } Future getVersionNumber() async { PackageInfo packageInfo = await PackageInfo.fromPlatform(); return "v${packageInfo.version}+${packageInfo.buildNumber}"; } @override Widget build(BuildContext context) { var languageModel = Provider.of(context); var toggleButtons = ToggleButtons( constraints: BoxConstraints(minWidth: 25.0, minHeight: 25.0), children: [ Padding( padding: const EdgeInsets.only(right: 8.0), child: Container( decoration: languageModel.isEng ? BoxDecoration( border: Border.all(color: Colors.blueAccent, width: 1)) : null, child: Image.asset( "assets/eng_flag.png", width: 23, ), ), ), Container( decoration: !languageModel.isEng ? BoxDecoration( border: Border.all(color: Colors.blueAccent, width: 1)) : null, child: Image.asset( "assets/myan_flag.png", width: 23, ), ), ], renderBorder: false, isSelected: _selection, fillColor: Colors.white, onPressed: (int index) { languageModel.saveLanguage(Translation().supportedLanguages[index]); setState(() { for (int buttonIndex = 0; buttonIndex < _selection.length; buttonIndex++) { if (buttonIndex == index) { _selection[buttonIndex] = true; } else { _selection[buttonIndex] = false; } } }); }, ); return OfflineRedirect( child: FlavorBanner( child: Scaffold( backgroundColor: Colors.white, appBar: AppBar( backgroundColor: Colors.white, iconTheme: IconThemeData( color: Colors.grey, ), elevation: 0, title: Image( height: 30, fit: BoxFit.scaleDown, image: new AssetImage('assets/img/logo.png')), actions: [ IconButton( icon: Image.asset( "assets/manual.png", width: 30, height: 30, color: Colors.black, ), onPressed: () => Navigator.of(context) .push(MaterialPageRoute(builder: (_) => ManualPage())), ), IconButton( icon: Icon( FontAwesomeIcons.phone, color: Colors.black, size: 20, ), onPressed: () => Navigator.of(context) .push(MaterialPageRoute(builder: (_) => Contact())), ), IconButton( icon: Icon( FontAwesomeIcons.signInAlt, color: Colors.black, size: 20, ), onPressed: () => Navigator.of(context) .push(MaterialPageRoute(builder: (_) => LoginPage())), ), ], ), body: ListView( children: [ Row( mainAxisAlignment: MainAxisAlignment.end, children: [ Padding( padding: const EdgeInsets.only(right: 8.0), child: toggleButtons, ), ], ), Padding( padding: const EdgeInsets.only(top: 5), child: ProductsWidget(isWelcomePage: false), ), SizedBox(height: 30,), Center(child: Text("${this.version}")), ], )), ), ); } }