From 80e28163590627d2c31c1d3ee95d2e84ee0b4924 Mon Sep 17 00:00:00 2001
From: Mustafa Merza <mustafa.merza95@gmail.com>
Date: Thu, 18 Jul 2024 12:12:43 +0300
Subject: [PATCH] - Changed used language in fonts to depend on supported
 language.

---
 .../Extensions/UIFont+Extensions.swift        | 59 +++++++++++++------
 .../Common/Data/Model/SupportedLanguage.swift |  6 +-
 2 files changed, 45 insertions(+), 20 deletions(-)

diff --git a/MiniScanner/Extensions/UIFont+Extensions.swift b/MiniScanner/Extensions/UIFont+Extensions.swift
index faf282e..be5be8a 100644
--- a/MiniScanner/Extensions/UIFont+Extensions.swift
+++ b/MiniScanner/Extensions/UIFont+Extensions.swift
@@ -36,24 +36,49 @@ extension UIFont {
             case extralight = "Tajawal-ExtraLight"
         }
         
+        static let fonts: [SupportedLanguage: [UIFont.AppFont: String]] = {
+            let arabic = UIFont.AppFont.Arabic.self
+            let english = UIFont.AppFont.English.self
+            
+            var fonts: [SupportedLanguage: [UIFont.AppFont: String]] = [:]
+            
+            fonts[.english] = [.extrabold: english.bold.rawValue,
+                               .bold: english.bold.rawValue,
+                               .black: english.bold.rawValue,
+                               .medium: english.medium.rawValue,
+                               .regular: english.regular.rawValue,
+                               .light: english.regular.rawValue,
+                               .extralight: english.regular.rawValue]
+            
+            fonts[.arabic] = [.extrabold: arabic.extrabold.rawValue,
+                              .bold: arabic.bold.rawValue,
+                              .black: arabic.black.rawValue,
+                              .medium: arabic.medium.rawValue,
+                              .regular: arabic.regular.rawValue,
+                              .light: arabic.light.rawValue,
+                              .extralight: arabic.extralight.rawValue]
+            return fonts
+        }()
+        
         func font() -> String {
-            switch self {
-            case .bold:
-                return lang == .en ? English.bold.rawValue : Arabic.bold.rawValue
-            case .regular:
-                return lang == .en ? English.regular.rawValue : Arabic.regular.rawValue
-            case .medium:
-                return lang == .en ? English.medium.rawValue : Arabic.medium.rawValue
-            case .light:
-                return lang == .en ? English.regular.rawValue : Arabic.light.rawValue
-            case .extrabold:
-                return lang == .en ? English.bold.rawValue : Arabic.extrabold.rawValue
-            case .black:
-                return lang == .en ? English.bold.rawValue : Arabic.black.rawValue
-            case .extralight:
-                return lang == .en ? English.regular.rawValue : Arabic.extralight.rawValue
-
-            }
+            return UIFont.AppFont.fonts[SupportedLanguage.currentLanguage]![self]!
+            
+//            switch self {
+//            case .bold:
+//                return lang == .english ? English.bold.rawValue : Arabic.bold.rawValue
+//            case .regular:
+//                return lang == .english ? English.regular.rawValue : Arabic.regular.rawValue
+//            case .medium:
+//                return lang == .english ? English.medium.rawValue : Arabic.medium.rawValue
+//            case .light:
+//                return lang == .english ? English.regular.rawValue : Arabic.light.rawValue
+//            case .extrabold:
+//                return lang == .english ? English.bold.rawValue : Arabic.extrabold.rawValue
+//            case .black:
+//                return lang == .english ? English.bold.rawValue : Arabic.black.rawValue
+//            case .extralight:
+//                return lang == .english ? English.regular.rawValue : Arabic.extralight.rawValue
+//            }
         }
     }
 }
diff --git a/MiniScanner/Features/Common/Data/Model/SupportedLanguage.swift b/MiniScanner/Features/Common/Data/Model/SupportedLanguage.swift
index c40c440..a518457 100644
--- a/MiniScanner/Features/Common/Data/Model/SupportedLanguage.swift
+++ b/MiniScanner/Features/Common/Data/Model/SupportedLanguage.swift
@@ -18,7 +18,7 @@ enum SupportedLanguage: CaseIterable {
     var flag: String {
         switch self {
         case .device:
-            return deviceLanguage.flag
+            return SupportedLanguage.currentLanguage.flag
         case .english:
             return "🇺🇸"
         case .arabic:
@@ -26,8 +26,8 @@ enum SupportedLanguage: CaseIterable {
         }
     }
     
-    var deviceLanguage: SupportedLanguage {
-        .from(language: SupportedLanguage.device.language)
+    static var currentLanguage: SupportedLanguage {
+        .from(language: LanguageManager.shared.currentLanguage)
     }
 }
 
-- 
GitLab