import 'package:farm_tpf/authentication/bloc/authentication_bloc.dart'; import 'package:farm_tpf/data/repository/user_repository.dart'; import 'package:farm_tpf/presentation/custom_widgets/app_bar_widget.dart'; import 'package:farm_tpf/presentation/custom_widgets/button_icon_widget.dart'; import 'package:farm_tpf/presentation/screens/profile/sc_change_password.dart'; import 'package:farm_tpf/presentation/screens/profile/sc_update_profile.dart'; import 'package:farm_tpf/utils/const_icons.dart'; import 'package:farm_tpf/utils/pref.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:package_info/package_info.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; class AccountScreen extends StatefulWidget { @override _AccountScreenState createState() => _AccountScreenState(); } class _AccountScreenState extends State { var pref = LocalPref(); UserRepository _userRepository = UserRepository(); PackageInfo _packageInfo = PackageInfo( version: '1.0.0', buildNumber: '1.', ); Future _initPackageInfo() async { final PackageInfo info = await PackageInfo.fromPlatform(); setState(() { _packageInfo = info; }); } @override void initState() { super.initState(); _initPackageInfo(); } _clickSignOut() async { context.bloc().add(AuthenticationLogoutRequested()); try { String pushKey = await pref.getString(DATA_CONST.PUSH_KEY); if (pushKey.isNotEmpty) { _userRepository .deleteFcmToken(pushKey) .then((value) {}) .catchError((err) {}) .whenComplete(() { pref.saveString(DATA_CONST.TOKEN_KEY, ""); pref.saveString(DATA_CONST.PUSH_KEY, ""); pref.saveString(DATA_CONST.CURRENT_FULL_NAME, ""); }); } } catch (e) { pref.saveString(DATA_CONST.CURRENT_FULL_NAME, ""); pref.saveString(DATA_CONST.TOKEN_KEY, ""); pref.saveString(DATA_CONST.PUSH_KEY, ""); } } @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.white, appBar: AppBarWidget( isBack: false, ), body: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( padding: EdgeInsets.all(8), color: Colors.white, child: Text( 'Cá nhân', style: TextStyle(fontWeight: FontWeight.w500, fontSize: 22), )), Expanded( child: Column(children: [ ButtonIconWidget( title: 'Tài khoản', leadingIcon: AppIcons.icUser, trailingIcon: AppIcons.icArrowRight, isTopBorder: false, onTap: () { Get.to(UpdateProfileScreen()); }), ButtonIconWidget( title: 'Bảo mật', leadingIcon: AppIcons.icSecurity, trailingIcon: AppIcons.icArrowRight, isTopBorder: false, isBottomBorder: false, onTap: () { Get.to(ChangePasswordScreen()); }), Container( width: double.infinity, height: 20, color: Colors.grey[200], ), Container( padding: EdgeInsets.only(left: 12, right: 8, top: 14, bottom: 14), child: Row( children: [ Expanded( child: Text( 'Phiên bản', style: TextStyle(fontSize: 16, fontWeight: FontWeight.w100), )), Text("${_packageInfo.version}.${_packageInfo.buildNumber}") ], ), ), ButtonIconWidget( title: 'Đăng xuất', titleStyle: TextStyle( fontSize: 16, fontWeight: FontWeight.w100, color: Colors.red), leadingIcon: AppIcons.icLogout, trailingIcon: AppIcons.icArrowRight, onTap: () { _clickSignOut(); }), ])), ], ), ); } }