Explorar el Código

fix: ganti lang sesuai yg dipilih di hal login

Masarifyuli hace 1 semana
padre
commit
ba1059152f
Se han modificado 1 ficheros con 17 adiciones y 0 borrados
  1. 17 0
      lib/src/layouts/auth/login.dart

+ 17 - 0
lib/src/layouts/auth/login.dart

@@ -6,6 +6,7 @@ import 'package:easy_localization/easy_localization.dart';
 import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter_cache_manager/flutter_cache_manager.dart';
+import 'package:jwt_decoder/jwt_decoder.dart';
 import 'package:telnow_mobile_new/src/api/api_auth_provider.dart';
 import 'package:telnow_mobile_new/src/api/api_auth_repository.dart';
 import 'package:telnow_mobile_new/src/api/jwt_token.dart';
@@ -246,6 +247,10 @@ class _LoginPageState extends State<LoginPage> {
       await sharedPreferencesManager.putString(SharedPreferencesManager.keyAccessToken, token.accessToken!);
       await sharedPreferencesManager.putString(SharedPreferencesManager.keyRefreshToken, token.refreshToken!);
 
+      // print(JwtDecoder.decode(token.accessToken!));
+      var accTkn = JwtDecoder.decode(token.accessToken!);
+      switchLang(context, context.locale.toLanguageTag(), accTkn);
+
       if(await setUsername()){
         var data = {
           'username': username.trim(),
@@ -273,6 +278,18 @@ class _LoginPageState extends State<LoginPage> {
     }
   }
 
+  switchLang(BuildContext context, code, tkn) async {
+    // print("switchLang called");
+    try{
+      var res = await apiAuthProvider.patchData('/api/informants/' + tkn['userId'].toString(), {'userId': tkn['user_name'].toString().replaceFirst('inf-', ""), 'language': code.toUpperCase()}, context);
+      if (res != null) {
+        // print("res $res");
+        // context.setLocale(Locale(code));
+      }
+    }catch(e){}
+
+  }
+
   setUsername() async {
     try{
       String? accessToken = sharedPreferencesManager.getString(SharedPreferencesManager.keyAccessToken);