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