import 'dart:convert'; import 'package:aitrainer_app/localization/app_language.dart'; import 'package:aitrainer_app/model/cache.dart'; import 'package:aitrainer_app/model/exercise_type.dart'; import 'package:aitrainer_app/repository/user_repository.dart'; import 'package:flutter/cupertino.dart'; import 'package:intl/intl.dart'; mixin Common { final EMAIL_ERROR = "Please type a right email address here."; final PASSWORD_ERROR = "The password must have at least 8 characters."; String toJson( Map map ) { String rc = "{"; map.forEach((key, value) { rc += "'$key':'$value'"; }); rc += "}"; return rc; } ExerciseType getExerciseType( int exerciseTypeId ) { ExerciseType returnElement = null; List listExerciseType = Cache().getExerciseTypes(); if ( listExerciseType != null ) { for ( var element in listExerciseType ) { if (exerciseTypeId == element.exerciseTypeId) { returnElement = element; break; } }; } return returnElement; } String getDateLocale( DateTime datetime, bool timeDisplay ) { var date = datetime; String dateName = DateFormat(DateFormat.YEAR_MONTH_DAY, AppLanguage().appLocal.toString()).format(date.toUtc()); if ( timeDisplay ) { dateName += " " +DateFormat(DateFormat.HOUR_MINUTE, AppLanguage().appLocal.toString()).format(date.toUtc()); } return dateName; } String utf8convert(String text) { List bytes = text.toString().codeUnits; return utf8.decode(bytes); } double mediaSizeWidth( BuildContext context ) { return MediaQuery.of(context).size.width; } bool validateEmail(UserRepository userRepository) { final String email = userRepository.user.email; final RegExp _emailRegExp = RegExp( r'^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$', ); return _emailRegExp.hasMatch(email); } bool validatePassword(UserRepository userRepository) { final password = userRepository.user.password; final RegExp _passwordRegExp = RegExp(r'^(?=.*[A-Za-z0-9])(?=.*\d)[A-Za-z\d]{7,}$'); return _passwordRegExp.hasMatch(password); } }