Browse Source

fix Bug #7758 update style snackbar

master
daivph 5 years ago
parent
commit
d91900a610
9 changed files with 41 additions and 90 deletions
  1. +26
    -0
      lib/presentation/custom_widgets/widget_utils.dart
  2. +0
    -2
      lib/presentation/screens/actions/crop_status/sc_edit_action_crop_status.dart
  3. +0
    -2
      lib/presentation/screens/actions/other/sc_edit_action_other.dart
  4. +3
    -16
      lib/presentation/screens/forgot_password/sc_forgot_password.dart
  5. +3
    -16
      lib/presentation/screens/plot_detail/sc_plot_information.dart
  6. +5
    -20
      lib/presentation/screens/profile/sc_change_password.dart
  7. +4
    -26
      lib/presentation/screens/profile/sc_update_profile.dart
  8. +0
    -7
      pubspec.lock
  9. +0
    -1
      pubspec.yaml

+ 26
- 0
lib/presentation/custom_widgets/widget_utils.dart View File

import 'package:flutter/material.dart';
import 'package:get/get.dart';

class Utils {
static void showSnackBarSuccess({String message}) {
if (Get.isSnackbarOpen) Get.back();
Get.snackbar(null, message,
icon: Icon(
Icons.done,
color: Colors.white,
),
snackPosition: SnackPosition.BOTTOM,
backgroundColor: Colors.green);
}

static void showSnackBarError({String message}) {
if (Get.isSnackbarOpen) Get.back();
Get.snackbar(null, message,
icon: Icon(
Icons.error,
color: Colors.white,
),
snackPosition: SnackPosition.BOTTOM,
backgroundColor: Colors.red);
}
}

+ 0
- 2
lib/presentation/screens/actions/crop_status/sc_edit_action_crop_status.dart View File

import 'package:farm_tpf/utils/const_string.dart'; import 'package:farm_tpf/utils/const_string.dart';
import 'package:farm_tpf/utils/const_style.dart'; import 'package:farm_tpf/utils/const_style.dart';
import 'package:farm_tpf/utils/pref.dart'; import 'package:farm_tpf/utils/pref.dart';
import 'package:farm_tpf/utils/validators.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_datetime_picker/flutter_datetime_picker.dart'; import 'package:flutter_datetime_picker/flutter_datetime_picker.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:keyboard_dismisser/keyboard_dismisser.dart'; import 'package:keyboard_dismisser/keyboard_dismisser.dart';

+ 0
- 2
lib/presentation/screens/actions/other/sc_edit_action_other.dart View File

import 'package:farm_tpf/utils/const_string.dart'; import 'package:farm_tpf/utils/const_string.dart';
import 'package:farm_tpf/utils/const_style.dart'; import 'package:farm_tpf/utils/const_style.dart';
import 'package:farm_tpf/utils/pref.dart'; import 'package:farm_tpf/utils/pref.dart';
import 'package:farm_tpf/utils/validators.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_datetime_picker/flutter_datetime_picker.dart'; import 'package:flutter_datetime_picker/flutter_datetime_picker.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:keyboard_dismisser/keyboard_dismisser.dart'; import 'package:keyboard_dismisser/keyboard_dismisser.dart';

+ 3
- 16
lib/presentation/screens/forgot_password/sc_forgot_password.dart View File

import 'package:farm_tpf/data/repository/user_repository.dart'; import 'package:farm_tpf/data/repository/user_repository.dart';
import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart';
import 'package:farm_tpf/presentation/custom_widgets/widget_toast.dart'; import 'package:farm_tpf/presentation/custom_widgets/widget_toast.dart';
import 'package:farm_tpf/presentation/custom_widgets/widget_utils.dart';
import 'package:farm_tpf/utils/const_color.dart'; import 'package:farm_tpf/utils/const_color.dart';
import 'package:farm_tpf/utils/validators.dart'; import 'package:farm_tpf/utils/validators.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:keyboard_dismisser/keyboard_dismisser.dart'; import 'package:keyboard_dismisser/keyboard_dismisser.dart';


class ForgotPasswordScreen extends StatefulWidget { class ForgotPasswordScreen extends StatefulWidget {
bool _autoValidate = false; bool _autoValidate = false;
TextEditingController _emailController = TextEditingController(); TextEditingController _emailController = TextEditingController();
String _email = ""; String _email = "";
FlutterToast flutterToast;


@override @override
void initState() { void initState() {
super.initState(); super.initState();
flutterToast = FlutterToast(context);
} }


_validateInputs() async { _validateInputs() async {
LoadingDialog.showLoadingDialog(context); LoadingDialog.showLoadingDialog(context);
_userRepository.forgotPassword(_email).then((value) { _userRepository.forgotPassword(_email).then((value) {
LoadingDialog.hideLoadingDialog(context); LoadingDialog.hideLoadingDialog(context);
flutterToast.showToast(
child: WidgetToast(message: "Gửi email thành công."));
Utils.showSnackBarSuccess(message: "Gửi email thành công");
Navigator.pop(context); Navigator.pop(context);
}).catchError((error) { }).catchError((error) {
_scaffoldKey.currentState.showSnackBar(SnackBar(
content: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text('Email không tồn tại.'),
Icon(Icons.error),
],
),
backgroundColor: Colors.red,
duration: Duration(seconds: 3),
));
LoadingDialog.hideLoadingDialog(context); LoadingDialog.hideLoadingDialog(context);
Utils.showSnackBarError(message: 'Email không tồn tại');
}); });
} else { } else {
_autoValidate = true; _autoValidate = true;

+ 3
- 16
lib/presentation/screens/plot_detail/sc_plot_information.dart View File

import 'package:farm_tpf/presentation/custom_widgets/loading_list_page.dart'; import 'package:farm_tpf/presentation/custom_widgets/loading_list_page.dart';
import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart';
import 'package:farm_tpf/presentation/custom_widgets/widget_toast.dart'; import 'package:farm_tpf/presentation/custom_widgets/widget_toast.dart';
import 'package:farm_tpf/presentation/custom_widgets/widget_utils.dart';
import 'package:farm_tpf/presentation/screens/plot_detail/bloc_plot_information.dart'; import 'package:farm_tpf/presentation/screens/plot_detail/bloc_plot_information.dart';
import 'package:farm_tpf/utils/const_color.dart'; import 'package:farm_tpf/utils/const_color.dart';
import 'package:farm_tpf/utils/const_string.dart'; import 'package:farm_tpf/utils/const_string.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:keyboard_dismisser/keyboard_dismisser.dart'; import 'package:keyboard_dismisser/keyboard_dismisser.dart';
import 'package:farm_tpf/utils/formatter.dart'; import 'package:farm_tpf/utils/formatter.dart';
TextEditingController _areaController = TextEditingController(); TextEditingController _areaController = TextEditingController();
TextEditingController _descriptionController = TextEditingController(); TextEditingController _descriptionController = TextEditingController();


FlutterToast flutterToast;
bool _autoValidate = false; bool _autoValidate = false;
TbCropDTO _crop = TbCropDTO(); TbCropDTO _crop = TbCropDTO();
final controller = Get.put(DescriptionChangeControler()); final controller = Get.put(DescriptionChangeControler());
@override @override
void initState() { void initState() {
super.initState(); super.initState();
flutterToast = FlutterToast(context);
getPlotInfoBloc.getPlotInfo(widget.cropId, (data) { getPlotInfoBloc.getPlotInfo(widget.cropId, (data) {
var result = data as CropPlot; var result = data as CropPlot;
_crop = result.tbCropDTO; _crop = result.tbCropDTO;
LoadingDialog.showLoadingDialog(context); LoadingDialog.showLoadingDialog(context);
_repository.updatePlot(_crop).then((value) { _repository.updatePlot(_crop).then((value) {
LoadingDialog.hideLoadingDialog(context); LoadingDialog.hideLoadingDialog(context);
flutterToast.showToast(
child: WidgetToast(message: label_update_success));
Utils.showSnackBarSuccess(message: label_update_success);
controller.initValue(); controller.initValue();
}).catchError((error) { }).catchError((error) {
_scaffoldKey.currentState.showSnackBar(SnackBar(
content: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Flexible(child: Text(AppException.handleError(error))),
Icon(Icons.error),
],
),
backgroundColor: Colors.red,
duration: Duration(seconds: 3),
));
LoadingDialog.hideLoadingDialog(context); LoadingDialog.hideLoadingDialog(context);
Utils.showSnackBarError(message: AppException.handleError(error));
}); });
} else { } else {
_autoValidate = true; _autoValidate = true;

+ 5
- 20
lib/presentation/screens/profile/sc_change_password.dart View File

import 'package:farm_tpf/data/repository/user_repository.dart'; import 'package:farm_tpf/data/repository/user_repository.dart';
import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart';
import 'package:farm_tpf/presentation/custom_widgets/widget_toast.dart'; import 'package:farm_tpf/presentation/custom_widgets/widget_toast.dart';
import 'package:farm_tpf/presentation/custom_widgets/widget_utils.dart';
import 'package:farm_tpf/utils/const_color.dart'; import 'package:farm_tpf/utils/const_color.dart';
import 'package:farm_tpf/utils/validators.dart'; import 'package:farm_tpf/utils/validators.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:keyboard_dismisser/keyboard_dismisser.dart'; import 'package:keyboard_dismisser/keyboard_dismisser.dart';


class ChangePasswordScreen extends StatefulWidget { class ChangePasswordScreen extends StatefulWidget {
final _repository = UserRepository(); final _repository = UserRepository();
GlobalKey<FormState> _formKey = GlobalKey(); GlobalKey<FormState> _formKey = GlobalKey();
bool _autoValidate = false; bool _autoValidate = false;
FlutterToast flutterToast;


Password _password = Password(); Password _password = Password();
TextEditingController _currentPasswordController = TextEditingController(); TextEditingController _currentPasswordController = TextEditingController();
@override @override
void initState() { void initState() {
super.initState(); super.initState();
flutterToast = FlutterToast(context);
} }


_validateInputs() async { _validateInputs() async {
LoadingDialog.showLoadingDialog(context); LoadingDialog.showLoadingDialog(context);
_repository.changePassword(_password).then((value) { _repository.changePassword(_password).then((value) {
LoadingDialog.hideLoadingDialog(context); LoadingDialog.hideLoadingDialog(context);
flutterToast.showToast(
child: WidgetToast(message: "Cập nhật thành công"));
Navigator.pop(context); Navigator.pop(context);
Utils.showSnackBarSuccess(message: "Cập nhật thành công");
}).catchError((onError) { }).catchError((onError) {
var errorMessage = AppException.handleError(onError,
customMessageError: "Sai mật khẩu hiện tại");
_scaffoldKey.currentState.showSnackBar(SnackBar(
content: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Flexible(
child: Text(errorMessage),
),
Icon(Icons.error),
],
),
backgroundColor: Colors.red,
duration: Duration(seconds: 3),
));
LoadingDialog.hideLoadingDialog(context); LoadingDialog.hideLoadingDialog(context);
Utils.showSnackBarError(
message: AppException.handleError(onError,
customMessageError: "Sai mật khẩu hiện tại"));
}); });
} else { } else {
_autoValidate = true; _autoValidate = true;

+ 4
- 26
lib/presentation/screens/profile/sc_update_profile.dart View File

import 'package:farm_tpf/data/repository/user_repository.dart'; import 'package:farm_tpf/data/repository/user_repository.dart';
import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart';
import 'package:farm_tpf/presentation/custom_widgets/widget_toast.dart'; import 'package:farm_tpf/presentation/custom_widgets/widget_toast.dart';
import 'package:farm_tpf/presentation/custom_widgets/widget_utils.dart';
import 'package:farm_tpf/presentation/screens/actions/state_management_helper/change_supply.dart'; import 'package:farm_tpf/presentation/screens/actions/state_management_helper/change_supply.dart';
import 'package:farm_tpf/presentation/screens/location_unit/sc_location.dart'; import 'package:farm_tpf/presentation/screens/location_unit/sc_location.dart';
import 'package:farm_tpf/presentation/screens/profile/controller/check_change_another_dropdown.dart'; import 'package:farm_tpf/presentation/screens/profile/controller/check_change_another_dropdown.dart';
import 'package:farm_tpf/utils/const_style.dart'; import 'package:farm_tpf/utils/const_style.dart';
import 'package:farm_tpf/utils/validators.dart'; import 'package:farm_tpf/utils/validators.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:keyboard_dismisser/keyboard_dismisser.dart'; import 'package:keyboard_dismisser/keyboard_dismisser.dart';
import 'package:package_info/package_info.dart'; import 'package:package_info/package_info.dart';
final _repository = UserRepository(); final _repository = UserRepository();
GlobalKey<FormState> _formKey = GlobalKey(); GlobalKey<FormState> _formKey = GlobalKey();
bool _autoValidate = false; bool _autoValidate = false;
FlutterToast flutterToast;


Account _account = Account(); Account _account = Account();
TextEditingController _userNameController = TextEditingController(); TextEditingController _userNameController = TextEditingController();
super.initState(); super.initState();
checkChangeLocation.initValue(); checkChangeLocation.initValue();
_initPackageInfo(); _initPackageInfo();
flutterToast = FlutterToast(context);
getAccountBloc.getAccount((data) { getAccountBloc.getAccount((data) {
_account = data; _account = data;
_userNameController.text = _account.login; _userNameController.text = _account.login;
checkChangeLocation.changeWardByIdAndName( checkChangeLocation.changeWardByIdAndName(
_account.wardId, _account.wardName); _account.wardId, _account.wardName);
}, (err) { }, (err) {
flutterToast.showToast(child: WidgetToast(message: "Lỗi tải dữ liệu"));
Utils.showSnackBarError(message: "Lỗi tải dữ liệu");
}); });
} }


LoadingDialog.showLoadingDialog(_scaffoldKey.currentContext); LoadingDialog.showLoadingDialog(_scaffoldKey.currentContext);
_repository.updateProfile(_account).then((value) { _repository.updateProfile(_account).then((value) {
LoadingDialog.hideLoadingDialog(_scaffoldKey.currentContext); LoadingDialog.hideLoadingDialog(_scaffoldKey.currentContext);
_scaffoldKey.currentState.showSnackBar(SnackBar(
content: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text('Cập nhật thành công.'),
Icon(Icons.done),
],
),
backgroundColor: Colors.green,
duration: Duration(seconds: 3),
));
Utils.showSnackBarSuccess(message: 'Cập nhật thành công.');
}).catchError((onError) { }).catchError((onError) {
_scaffoldKey.currentState.showSnackBar(SnackBar(
content: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text('Cập nhật không thành công.'),
Icon(Icons.error),
],
),
backgroundColor: Colors.red,
duration: Duration(seconds: 3),
));
Utils.showSnackBarError(message: 'Cập nhật không thành công.');
LoadingDialog.hideLoadingDialog(_scaffoldKey.currentContext); LoadingDialog.hideLoadingDialog(_scaffoldKey.currentContext);
print("error"); print("error");
}); });

+ 0
- 7
pubspec.lock View File

description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
fluttertoast:
dependency: "direct main"
description:
name: fluttertoast
url: "https://pub.dartlang.org"
source: hosted
version: "6.0.1"
font_awesome_flutter: font_awesome_flutter:
dependency: "direct main" dependency: "direct main"
description: description:

+ 0
- 1
pubspec.yaml View File

dio_http_cache: ^0.2.9 dio_http_cache: ^0.2.9
formz: ^0.3.0 formz: ^0.3.0
keyboard_dismisser: ^1.0.2 keyboard_dismisser: ^1.0.2
fluttertoast: ^6.0.1
pattern_formatter: ^1.0.2 pattern_formatter: ^1.0.2
rxdart: ^0.23.0 rxdart: ^0.23.0
barcode_scan: ^3.0.1 barcode_scan: ^3.0.1

Loading…
Cancel
Save