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