Quellcode durchsuchen

beresin home & detail

Yulian vor 2 Monaten
Ursprung
Commit
00fdde5d93

+ 4 - 4
lib/src/api/jwt_token.dart

@@ -3,8 +3,8 @@ import 'dart:io';
 
 import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart';
+import 'package:telnow_mobile_new/main.dart';
 import 'package:telnow_mobile_new/src/injector/injector.dart';
-import 'package:telnow_mobile_new/src/layouts/components/template.dart';
 import 'package:telnow_mobile_new/src/storage/sharedpreferences/shared_preferences_manager.dart';
 import 'package:easy_localization/easy_localization.dart';
 import 'package:path_provider/path_provider.dart';
@@ -66,13 +66,13 @@ class JwtToken{
     return utf8.decode(base64Url.decode(output));
   }
 
-  Future<dynamic> getUserData(BuildContext context) async{
+  Future<dynamic> getUserData() async{
     bool isTokenExist = _sharedPreferencesManager.isKeyExists(SharedPreferencesManager.keyAccessToken)!;
     String token = _sharedPreferencesManager.getString(SharedPreferencesManager.keyAccessToken)!;
     String username = _sharedPreferencesManager.getString(SharedPreferencesManager.keyUsername)!;
 
     void setLocale(code){
-      context.setLocale(Locale(code));
+      NavigationService.navigatorKey.currentContext?.setLocale(Locale(code));
     }
 
     if(isTokenExist && token != ''){
@@ -116,7 +116,7 @@ class JwtToken{
       }
       return user;
     } else {
-      U.getChangedPassword() ? handlingError(context, 3) : (){}; //invalid user
+      U.getChangedPassword() ? UIService.handlingError(ErrorType.invalidAccount) : (){}; //invalid user
       return Future.error("not found");
     }
   }

+ 1 - 1
lib/src/layouts/functions/account.dart

@@ -19,7 +19,7 @@ class AccountFunction{
 
   getUser(BuildContext context) async {
     final userModule = Provider.of<UserModule>(context, listen: false);
-    var res = await token.getUserData(context);
+    var res = await token.getUserData();
     if (res != null) {
       var ver = await apiAuthProvider.getDataNoAuth('/api/license');
       userModule.setSerialNum(ver['serialNumber']);

+ 12 - 9
lib/src/layouts/functions/detail.dart

@@ -7,6 +7,7 @@ import 'package:telnow_mobile_new/src/api/api_auth_provider.dart';
 import 'package:telnow_mobile_new/src/api/jwt_token.dart';
 import 'package:telnow_mobile_new/src/layouts/components/template.dart';
 import 'package:telnow_mobile_new/src/utils/U.dart';
+import 'package:telnow_mobile_new/src/utils/ui_service.dart';
 import 'package:translator/translator.dart';
 
 class DetailFunction{
@@ -14,8 +15,8 @@ class DetailFunction{
   final JwtToken token = JwtToken();
   final translator = GoogleTranslator();
 
-  Future getMission(BuildContext context, list) async{
-    var userData = await token.getUserData(context);
+  Future getMission(String locale, list) async{
+    var userData = await token.getUserData();
     var data = list;
     if (data['datetimeScheduled'] != null && data['datetimeScheduled'] != '' && data['noteFormat'] == 'DATE') {
       var date = data['datetimeScheduled'];
@@ -27,7 +28,7 @@ class DetailFunction{
     data['noteCompleteTranslate'] = '';
     data['noteCancelTranslate'] = '';
 
-    var locale = context.locale.toString() == 'zh' ? 'zh-cn' : context.locale.toString();
+    if(locale == 'zh') locale = 'zh-cn';
 
     if (data['noteStart'] == 'transferNoteBySystem'){
       data['noteStart'] = 'transferNoteBySystem'.tr();
@@ -76,23 +77,25 @@ class DetailFunction{
 
   cancelRequest(BuildContext context, list, controllerNote){
     var note = controllerNote.text.trim();
-    if (note.length > 128) {
+    if (note.length > 128)
+    {
       showError(context, 'noteLongAlert'.tr());
     }
-    else{
+    else
+    {
       dialogConfirm(context: context, title: 'buttonCancel'.tr(), text: 'confirmCancel'.tr(), actionYes: ()async{
         showLoading(context);
         var data = {
           'note': controllerNote.text.trim(),
         };
 
-        var res = await apiAuthProvider.postData('/api/requestHistories/search/request/cancel/'+list['ticketNo'], null, data);
+        var res = await apiAuthProvider.postData('/api/requestHistories/search/request/cancel/${list['ticketNo']}', null, data);
         if(res != null){
-          closeLoading(context);
-          navigateBack(context, exc: true);
+          UIService.closeLoading();
+          UIService.navigateBack(exc: true);
         }
         else{
-          closeLoading(context);
+          UIService.closeLoading();
         }
       });
     }

+ 1 - 2
lib/src/layouts/functions/history.dart

@@ -1,7 +1,6 @@
 import 'dart:convert';
 
 import 'package:easy_localization/easy_localization.dart';
-import 'package:flutter/cupertino.dart';
 import 'package:flutter/material.dart';
 import 'package:provider/provider.dart';
 import 'package:telnow_mobile_new/src/api/api_auth_provider.dart';
@@ -55,7 +54,7 @@ class HistoryFunction{
 
   getUser(BuildContext context) async {
     try {
-      var res = await token.getUserData(context);
+      var res = await token.getUserData();
       if (res != null) {
         Provider.of<UserModule>(context, listen: false).setList(res);
         getMission(context);

+ 7 - 5
lib/src/layouts/functions/home.dart

@@ -9,11 +9,13 @@ import 'package:telnow_mobile_new/src/utils/C.dart';
 import 'package:telnow_mobile_new/src/utils/U.dart';
 import 'package:telnow_mobile_new/src/utils/cache_manager.dart';
 import 'package:telnow_mobile_new/src/utils/provider.dart';
+import 'package:telnow_mobile_new/src/utils/ui_service.dart';
 
 class HomeFunction{
   final SharedPreferencesManager sharedPreferencesManager = locator<SharedPreferencesManager>();
   final ApiAuthProvider apiAuthProvider = ApiAuthProvider();
   final JwtToken token = JwtToken();
+  final BuildContext context = UIService.context!;
 
   getProfileData(BuildContext context)async{
     if (!Provider.of<ServiceModule>(context, listen: false).initialized()) {
@@ -25,7 +27,7 @@ class HomeFunction{
       }catch(e){}
 
       try{
-        var res = await token.getUserData(context);
+        var res = await token.getUserData();
         if(res != null){
           Provider.of<UserModule>(context, listen: false).setList(res);
           Provider.of<UserModule>(context, listen: false).setProfile(res['_profile']['data']);
@@ -79,7 +81,7 @@ class HomeFunction{
           }
         }
         if(profile['specialOffer'] != null && profile['specialOffer']['show'] == true) getSpecialOffer(context);
-        if(profile['frequentlyRequested'] != null && profile['frequentlyRequested']['show'] == true) getFrequentlyRequested(context);
+        if(profile['frequentlyRequested'] != null && profile['frequentlyRequested']['show'] == true) getFrequentlyRequested();
         if(profile['banner'] != null && profile['banner']['show'] == true) getBanner(context);
         if(profile['quickAction'] != null && profile['quickAction']['show'] == true) getQuickAction(context);
         getUnreadMessages(context);
@@ -197,7 +199,7 @@ class HomeFunction{
     }
   }
 
-  getFrequentlyRequested(BuildContext context) async {
+  getFrequentlyRequested() async {
     try {
       var url = '/api/requestHistories/search/frequently/request/' + Provider.of<ServiceModule>(context, listen: false).scoopeValue();
 
@@ -216,7 +218,7 @@ class HomeFunction{
         }
       }
     } catch (e) {
-      print(e.toString());
+      debugPrint(e.toString());
       Provider.of<ServiceModule>(context, listen: false).setData([]);
     }
   }
@@ -331,7 +333,7 @@ class HomeFunction{
       }
     }
     if(profile['specialOffer'] != null && profile['specialOffer']['show'] == true) getSpecialOffer(context);
-    if(profile['frequentlyRequested'] != null && profile['frequentlyRequested']['show'] == true) getFrequentlyRequested(context);
+    if(profile['frequentlyRequested'] != null && profile['frequentlyRequested']['show'] == true) getFrequentlyRequested();
     if(profile['banner'] != null && profile['banner']['show'] == true) getBanner(context);
     if(profile['quickAction'] != null && profile['quickAction']['show'] == true) getQuickAction(context);
     getUnreadMessages(context);

+ 1 - 1
lib/src/layouts/functions/message.dart

@@ -18,7 +18,7 @@ class MessageFunction{
   final JwtToken token = JwtToken();
 
   getUser(BuildContext context)async{
-    var res = await token.getUserData(context);
+    var res = await token.getUserData();
     if(res != null){
       Provider.of<MessageModule>(context, listen: false).setUser(res);
       getDataMessages(context);

+ 2 - 1
lib/src/layouts/mobile/history_detail.dart

@@ -8,6 +8,7 @@ import 'package:telnow_mobile_new/src/layouts/mobile/history_forum.dart';
 import 'package:telnow_mobile_new/src/layouts/components/template.dart';
 import 'package:telnow_mobile_new/src/utils/U.dart';
 import 'package:telnow_mobile_new/src/utils/provider.dart';
+import 'package:telnow_mobile_new/src/utils/ui_service.dart';
 import 'package:timelines_plus/timelines_plus.dart';
 import 'package:url_launcher/url_launcher.dart';
 
@@ -43,7 +44,7 @@ class _MobHistoryDetailPageState extends State<MobHistoryDetailPage> {
   }
 
   getData() async{
-    var res = await detFunc.getMission(context, Provider.of<HistoryModule>(context, listen: false).dataMisi()[widget.index]);
+    var res = await detFunc.getMission(UIService.getLocale(), Provider.of<HistoryModule>(context, listen: false).dataMisi()[widget.index]);
     setState((){
       user = res['user'];
       list = res['list'];

+ 1 - 1
lib/src/layouts/mobile/history_forum.dart

@@ -77,7 +77,7 @@ class _MobHistoryForumPageState extends State<MobHistoryForumPage> {
   getData() async {
     idChat = '${U.decodeBase64Url(_sharedPreferencesManager.getString(SharedPreferencesManager.keyAccessCode)!)}-${widget.data['ticketNo']}';
     if (!kIsWeb) imagePath = await token.getPath() + '/TelNow/Images/';
-    var res = await token.getUserData(context);
+    var res = await token.getUserData();
     if (res != null) {
       username = res['userId'];
       getMessage();

Datei-Diff unterdrückt, da er zu groß ist
+ 5 - 5
lib/src/layouts/mobile/menu_home.dart


+ 1 - 1
lib/src/layouts/web/history_detail.dart

@@ -42,7 +42,7 @@ class _WebHistoryDetailPageState extends State<WebHistoryDetailPage> {
   }
 
   getData() async{
-    var res = await detFunc.getMission(context, Provider.of<HistoryModule>(context, listen: false).dataMisi()[widget.index]);
+    var res = await detFunc.getMission(context.locale.toString(), Provider.of<HistoryModule>(context, listen: false).dataMisi()[widget.index]);
     setState((){
       user = res['user'];
       list = res['list'];

+ 1 - 1
lib/src/layouts/web/history_forum.dart

@@ -78,7 +78,7 @@ class _WebHistoryForumPageState extends State<WebHistoryForumPage> {
 
   getData() async {
     idChat = U.decodeBase64Url(_sharedPreferencesManager.getString(SharedPreferencesManager.keyAccessCode)!) + '-' + widget.data['ticketNo'];
-    var res = await token.getUserData(context);
+    var res = await token.getUserData();
     if (res != null) {
       username = res['userId'];
       getMessage();

Datei-Diff unterdrückt, da er zu groß ist
+ 6 - 6
lib/src/layouts/web/menu_home.dart


+ 1 - 1
lib/src/utils/U.dart

@@ -218,7 +218,7 @@ class U {
   static Future<dynamic> getUserData(context) async {
     if (_userData == null) {
       try {
-        _userData = await token.getUserData(context);
+        _userData = await token.getUserData();
       } catch (error) {
         print(error.toString());
         U.showDebugToast(error.toString());

+ 11 - 0
lib/src/utils/ui_service.dart

@@ -68,6 +68,13 @@ class UIService {
     }
   }
 
+  static void navigateBack({exc = false}){
+    final ctx = context;
+    if (ctx != null) {
+      Navigator.of(ctx).pop(exc);
+    }
+  }
+
   static void showError(String message) {
     final ctx = context;
     if (ctx != null) {
@@ -120,6 +127,10 @@ class UIService {
     ctx.setLocale(code);
   }
 
+  static String getLocale() {
+    return context!.locale.toString();
+  }
+
   static void showLoading({String? text, String? lottie}){
     final ctx = context;
     if(ctx == null) return;