import 'package:carousel_slider/carousel_slider.dart'; import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/models/Authentication/select_device_imei_res.dart'; import 'package:diplomaticquarterapp/routes.dart'; import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart' as auth; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:provider/provider.dart'; import '../../splashPage.dart'; class NotAutPage extends StatefulWidget { final String title; final String description; final List infoList; final List imagesInfo; final String icon; NotAutPage({@required this.title, @required this.description, this.infoList, this.imagesInfo, this.icon}); @override _NotAutPageState createState() => _NotAutPageState(); } class _NotAutPageState extends State { final authService = new auth.AuthProvider(); @override Widget build(BuildContext context) { ProjectViewModel projectViewModel = Provider.of(context); return AppScaffold( appBarTitle: widget.title, isShowDecPage: false, isShowAppBar: true, showNewAppBar: true, showNewAppBarTitle: false, body: Padding( padding: EdgeInsets.only(bottom: 20, left: 21, right: 21), child: Column(children: [ Expanded( child: ListView( padding: EdgeInsets.zero, physics: BouncingScrollPhysics(), children: [ SizedBox(height: 12), if (widget.icon != null) Align( alignment: Alignment.centerLeft, child: SvgPicture.asset( widget.icon, height: 35, width: 35, ), ), SizedBox(height: 16), Text( widget.title, style: TextStyle(fontSize: 24, fontWeight: FontWeight.w700, color: Color(0xff2B353E), letterSpacing: -1.44, height: 23 / 24), ), Text( widget.description ?? "", style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.56, height: 21 / 14), ), SizedBox( height: 14, ), if (!projectViewModel.isInternetConnection) Center( child: SizedBox( height: MediaQuery.of(context).size.height * 0.55, width: MediaQuery.of(context).size.width * 0.50, child: Image.asset(projectViewModel.isArabic ? 'assets/images/Wifi-AR.png' : 'assets/images/wifi-EN.png'), ), ), if (projectViewModel.isInternetConnection && widget.imagesInfo != null) CarouselSlider( items: widget.imagesInfo.map((image) { return Builder( builder: (BuildContext context) { return SizedBox( width: MediaQuery.of(context).size.width * 0.50, child: image.isAsset ? Image.asset(projectViewModel.isArabic ? image.imageAr : image.imageEn) : Image.network(projectViewModel.isArabic ? image.imageAr : image.imageEn)); }, ); }).toList(), options: CarouselOptions( height: MediaQuery.of(context).size.height * 0.55, autoPlay: widget.imagesInfo.length > 1, viewportFraction: 1.0, ), ), ], ), ), SizedBox( height: 43, width: double.infinity, child: FlatButton( onPressed: () { loginCheck(context); }, child: Text( TranslationBase.of(context).loginregister, style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Colors.white, letterSpacing: -0.48), ), // color: Color(0xffD02127), color: Color(0xffD02127), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(6), ), ), ), ]), ), ); Scaffold( backgroundColor: Color(0xfff8f8f8), resizeToAvoidBottomPadding: false, appBar: AppBar( backgroundColor: Colors.transparent, leading: IconButton( icon: Icon(Icons.arrow_back_ios), color: Color(0xff2B353E), onPressed: () => Navigator.pop(context), ), ), body: Padding( padding: EdgeInsets.only(bottom: 20, left: 21, right: 21), child: Column(children: [ Expanded( child: ListView( padding: EdgeInsets.zero, physics: BouncingScrollPhysics(), children: [ SizedBox(height: 12), if (widget.icon != null) Align( alignment: Alignment.centerLeft, child: SvgPicture.asset( widget.icon, height: 35, width: 35, ), ), SizedBox(height: 16), Text( widget.title, style: TextStyle(fontSize: 24, fontWeight: FontWeight.w700, color: Color(0xff2B353E), letterSpacing: -1.44, height: 23 / 24), ), Text( widget.description, style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.56, height: 21 / 14), ), SizedBox( height: 14, ), if (!projectViewModel.isInternetConnection) Center( child: SizedBox( height: MediaQuery.of(context).size.height * 0.55, width: MediaQuery.of(context).size.width * 0.50, child: Image.asset(projectViewModel.isArabic ? 'assets/images/Wifi-AR.png' : 'assets/images/wifi-EN.png'), ), ), if (projectViewModel.isInternetConnection && widget.imagesInfo != null) CarouselSlider( items: widget.imagesInfo.map((image) { return Builder( builder: (BuildContext context) { return SizedBox( width: MediaQuery.of(context).size.width * 0.50, child: image.isAsset ? Image.asset(projectViewModel.isArabic ? image.imageAr : image.imageEn) : Image.network(projectViewModel.isArabic ? image.imageAr : image.imageEn)); }, ); }).toList(), options: CarouselOptions( height: MediaQuery.of(context).size.height * 0.55, autoPlay: widget.imagesInfo.length > 1, viewportFraction: 1.0, ), ), ], ), ), SizedBox( height: 43, width: double.infinity, child: FlatButton( onPressed: () { loginCheck(context); }, child: Text( TranslationBase.of(context).loginregister, style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Colors.white, letterSpacing: -0.48), ), // color: Color(0xffD02127), color: Color(0xffD02127), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(6), ), ), ), ]), ), ); return Scaffold( body: SingleChildScrollView( padding: EdgeInsets.all(12), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Texts( widget.title ?? 'Service', fontWeight: FontWeight.w800, fontSize: 25, bold: true, color: Color(0xff60686b), ), SizedBox( height: 12, ), Texts( widget.description ?? 'Description', fontWeight: FontWeight.normal, fontSize: 17, ), if (widget.infoList != null) SizedBox( height: 12, ), if (widget.infoList != null) ...List.generate( widget.infoList.length, (index) => Container( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( children: [ Container( width: 40, height: 40, decoration: BoxDecoration(borderRadius: BorderRadius.circular(20), color: Theme.of(context).primaryColor), child: Center( child: Texts( '${index + 1}', color: Colors.white, ), ), ), SizedBox( width: 6, ), Expanded(child: Texts('${widget.infoList[index]}')) ], ), SizedBox( height: 12, ), ], ), ), ), SizedBox( height: 22, ), if (!projectViewModel.isInternetConnection) Center( child: SizedBox( height: MediaQuery.of(context).size.height * 0.55, width: MediaQuery.of(context).size.width * 0.50, child: Image.asset(projectViewModel.isArabic ? 'assets/images/Wifi-AR.png' : 'assets/images/wifi-EN.png'), ), ), if (projectViewModel.isInternetConnection && widget.imagesInfo != null) CarouselSlider( items: widget.imagesInfo.map((image) { return Builder( builder: (BuildContext context) { return SizedBox( width: MediaQuery.of(context).size.width * 0.50, child: image.isAsset ? Image.asset(projectViewModel.isArabic ? image.imageAr : image.imageEn) : Image.network(projectViewModel.isArabic ? image.imageAr : image.imageEn)); }, ); }).toList(), options: CarouselOptions( height: MediaQuery.of(context).size.height * 0.55, autoPlay: widget.imagesInfo.length > 1, viewportFraction: 1.0, ), ), SizedBox( height: 77, ), ], ), ), bottomSheet: Container( height: MediaQuery.of(context).size.height * 0.10, width: double.infinity, child: Column( children: [ Container( width: MediaQuery.of(context).size.width * 0.9, child: SecondaryButton( onTap: () { loginCheck(context); }, label: TranslationBase.of(context).serviceInformationButton, textColor: Theme.of(context).backgroundColor), ), ], ), ), ); } loginCheck(context) async { var data = await sharedPref.getObject(IMEI_USER_DATA); sharedPref.remove(REGISTER_DATA_FOR_LOGIIN); if (data != null) { Navigator.of(context).pushNamed(CONFIRM_LOGIN); } else { GifLoaderDialogUtils.showMyDialog(context); authService.selectDeviceImei(DEVICE_TOKEN).then((SelectDeviceIMEIRES value) { GifLoaderDialogUtils.hideDialog(context); if (value != null) { sharedPref.setObject(IMEI_USER_DATA, value); Navigator.of(context).pushNamed(CONFIRM_LOGIN); } else { Navigator.of(context).pushNamed( WELCOME_LOGIN, ); } }).catchError((err) { GifLoaderDialogUtils.hideDialog(context); Navigator.of(context).pushNamed( WELCOME_LOGIN, ); }); } } }