| 
					
				 | 
			
			
				@@ -1,3 +1,5 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import 'dart:async'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import 'package:easy_localization/easy_localization.dart'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import 'package:firebase_messaging/firebase_messaging.dart'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import 'package:flutter/foundation.dart'; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -306,7 +308,9 @@ class U { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   static int _serverVersion = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  static final Completer<void> _versionReady = Completer<void>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   static List validLang = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   static getServerVersion() async{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     String url = '/api/license'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     try { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -314,6 +318,7 @@ class U { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       _serverVersion = dt['serverVersion']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       validLang = newServerVersion(1754624839) ? dt["_validLang"] : dt['languages']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       CacheMan.writeData(url, _serverVersion); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      _versionReady.complete(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } catch (error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       var val = await CacheMan.readData(url); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (val != null) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -324,6 +329,12 @@ class U { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // print('checking current server version: $_serverVersion'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  static Future<void> _waitUntilServerVersionReady() async { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (!_versionReady.isCompleted) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      await _versionReady.future; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   static String getLang(code){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if(code is int){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       return validLang[code+1]; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -352,7 +363,6 @@ class U { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   static final Map<String, Future<bool>> _compatibilityCache = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   static Future<bool> isCompatibleWith(VersionKey key) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     final keyName = key.name.toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (_compatibilityCache.containsKey(keyName)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       return _compatibilityCache[keyName]!; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -363,7 +373,9 @@ class U { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   static Future<bool> _loadAndCompare(String keyName) async { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    await _waitUntilServerVersionReady(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     final value = await C.get(keyName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return value <= _serverVersion; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |