1*12075537Saleqsio // Copyright 2015-present 650 Industries. All rights reserved.
2*12075537Saleqsio 
3*12075537Saleqsio import Foundation
4*12075537Saleqsio 
5*12075537Saleqsio @objc
6*12075537Saleqsio public class EXTextDirectionController: NSObject {
isRTLPreferredForCurrentLocalenull7*12075537Saleqsio   class func isRTLPreferredForCurrentLocale() -> Bool {
8*12075537Saleqsio     return NSLocale.characterDirection(forLanguage: NSLocale.preferredLanguages.first ?? "en-US") == NSLocale.LanguageDirection.rightToLeft
9*12075537Saleqsio   }
10*12075537Saleqsio 
11*12075537Saleqsio   @objc
setSupportsRTLnull12*12075537Saleqsio   public class func setSupportsRTL(_ supportsRTL: Bool) {
13*12075537Saleqsio     // These keys are used by React Native here: https://github.com/facebook/react-native/blob/main/React/Modules/RCTI18nUtil.m
14*12075537Saleqsio     // We set them before React loads to ensure it gets rendered correctly the first time the app is opened.
15*12075537Saleqsio     // On iOS we need to set both forceRTL and allowRTL so apps don't have to include localization strings.
16*12075537Saleqsio     UserDefaults.standard.set(supportsRTL, forKey: "RCTI18nUtil_allowRTL")
17*12075537Saleqsio     UserDefaults.standard.set(supportsRTL ? isRTLPreferredForCurrentLocale() : false, forKey: "RCTI18nUtil_forceRTL")
18*12075537Saleqsio     UserDefaults.standard.synchronize()
19*12075537Saleqsio   }
20*12075537Saleqsio }
21