112075537Saleqsio package host.exp.exponent.utils 212075537Saleqsio 312075537Saleqsio import android.content.Context 412075537Saleqsio import expo.modules.manifests.core.Manifest 512075537Saleqsio 612075537Saleqsio // must be kept in sync with https://github.com/facebook/react-native/blob/main/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nUtil.java 712075537Saleqsio private const val SHARED_PREFS_NAME = "com.facebook.react.modules.i18nmanager.I18nUtil" 812075537Saleqsio private const val KEY_FOR_PREFS_ALLOWRTL = "RCTI18nUtil_allowRTL" 912075537Saleqsio 1012075537Saleqsio class ExperienceRTLManager { 1112075537Saleqsio companion object { setSupportsRTLnull1212075537Saleqsio fun setSupportsRTL(context: Context, allowRTL: Boolean) { 1312075537Saleqsio // These keys are used by React Native here: https://github.com/facebook/react-native/blob/main/React/Modules/RCTI18nUtil.m 1412075537Saleqsio // We set them before React loads to ensure it gets rendered correctly the first time the app is opened. 1512075537Saleqsio context 1612075537Saleqsio .getSharedPreferences(SHARED_PREFS_NAME, Context.MODE_PRIVATE) 1712075537Saleqsio .edit() 1812075537Saleqsio .also { 1912075537Saleqsio it.putBoolean(KEY_FOR_PREFS_ALLOWRTL, allowRTL) 2012075537Saleqsio it.apply() 2112075537Saleqsio } 2212075537Saleqsio } 2312075537Saleqsio setSupportsRTLFromManifestnull2412075537Saleqsio fun setSupportsRTLFromManifest(context: Context, manifest: Manifest) { 2512075537Saleqsio setSupportsRTL( 2612075537Saleqsio context, 27*bb606df4Saleqsio (manifest.getExpoClientConfigRootObject()?.optJSONObject("extra")?.optBoolean("supportsRTL") ?: false) 2812075537Saleqsio ) 2912075537Saleqsio } 3012075537Saleqsio } 3112075537Saleqsio } 32