account.dart 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import 'package:auto_route/auto_route.dart';
  2. import 'package:easy_localization/easy_localization.dart';
  3. import 'package:flutter/cupertino.dart';
  4. import 'package:provider/provider.dart';
  5. import 'package:telnow_mobile_new/main.dart';
  6. import 'package:telnow_mobile_new/src/api/api_auth_provider.dart';
  7. import 'package:telnow_mobile_new/src/api/jwt_token.dart';
  8. import 'package:telnow_mobile_new/src/layouts/components/template.dart';
  9. import 'package:telnow_mobile_new/src/storage/sharedpreferences/shared_preferences_manager.dart';
  10. import 'package:telnow_mobile_new/src/utils/U.dart';
  11. import 'package:telnow_mobile_new/src/utils/provider.dart';
  12. class AccountFunction{
  13. final ApiAuthProvider apiAuthProvider = ApiAuthProvider();
  14. final NotificationClass notification = NotificationClass();
  15. final JwtToken token = JwtToken();
  16. SharedPreferencesManager _sharedPreferencesManager = SharedPreferencesManager();
  17. getUser(BuildContext context) async {
  18. var res = await token.getUserData(context);
  19. if (res != null) {
  20. var ver = await apiAuthProvider.getDataNoAuth('/api/license');
  21. Provider.of<UserModule>(context, listen: false).setSerialNum(ver['serialNumber']);
  22. Provider.of<UserModule>(context, listen: false).setList(res);
  23. } else {
  24. Provider.of<UserModule>(context, listen: false).setResetData(true);
  25. }
  26. }
  27. switchLang(BuildContext context, code, user) async {
  28. showLoading(context);
  29. try{
  30. var res = await apiAuthProvider.patchData('/api/informants/' + user['id'].toString(), {'userId': user['userId'], 'language': code.toUpperCase()}, context);
  31. print(res);
  32. if (res != null) {
  33. closeLoading(context);
  34. context.setLocale(Locale(code));
  35. notification.startNotification(context);
  36. Navigator.of(context).pop();
  37. } else {
  38. closeLoading(context);
  39. }
  40. }catch(e){
  41. closeLoading(context);
  42. }
  43. }
  44. Future<bool> setDndStatus(BuildContext context, bool dnd)async{
  45. var res = await apiAuthProvider.patchData('/api/informants/${Provider.of<UserModule>(context, listen: false).user()['id']}/setDnd', null, context, params: {'dnd': '${!dnd}'});
  46. if (res != null) {
  47. Provider.of<UserModule>(context, listen: false).setDndStatus(dnd);
  48. return true;
  49. }
  50. return false;
  51. }
  52. logoutAction(BuildContext context)async{
  53. showLoading(context, text: '');
  54. String pid = U.getPidFromUrl(context.router.currentUrl);
  55. try {
  56. var tkn = await _sharedPreferencesManager.getString(SharedPreferencesManager.keyFcmToken);
  57. // var tkn = await U.getFcmToken();
  58. if (tkn == null) {
  59. Navigator.of(context).pop();
  60. closeLoading(context);
  61. token.logout();
  62. // context.router.removeLast();
  63. context.navigateToPath("/app/$pid/login");
  64. } else {
  65. var param = {'token': tkn, 'whiteListToken': false};
  66. var res = await apiAuthProvider.postData('/api/fcmTokens/remove/', null, param, context);
  67. if (res != null && res['success']) {
  68. Navigator.of(context).pop();
  69. closeLoading(context);
  70. token.logout();
  71. // context.router.removeLast();
  72. context.navigateToPath("/app/$pid/login");
  73. }
  74. else{
  75. Future.delayed(const Duration(seconds: 5), () => closeLoading(context));
  76. }
  77. }
  78. } catch(e) {
  79. print(e.toString());
  80. // context.router.removeLast();
  81. context.navigateToPath("/app/$pid/login");
  82. }
  83. }
  84. }