Skip to content

Commit

Permalink
Convert Layout::isLayoutDirectionRTL to an extension method of context
Browse files Browse the repository at this point in the history
Summary: clean up Layout

Reviewed By: adityasharat

Differential Revision: D52961172

fbshipit-source-id: c851c32f673366874c735c9984be981861ebfdb9
  • Loading branch information
Andrew Wang authored and facebook-github-bot committed Jan 24, 2024
1 parent 628b4a6 commit ab1d169
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 15 deletions.
13 changes: 13 additions & 0 deletions litho-core/src/main/java/com/facebook/litho/ContextUtils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ import android.app.Application
import android.app.Service
import android.content.Context
import android.content.ContextWrapper
import android.content.pm.ApplicationInfo
import android.view.View

object ContextUtils {

Expand Down Expand Up @@ -67,4 +69,15 @@ object ContextUtils {
@JvmStatic
fun getTargetSdkVersion(context: Context): Int =
context.applicationContext.applicationInfo.targetSdkVersion

internal fun Context.getLayoutDirection(): Int = resources.configuration.layoutDirection

internal fun Context.isLayoutDirectionRTL(): Boolean {
val applicationInfo = applicationInfo
if (applicationInfo.flags and ApplicationInfo.FLAG_SUPPORTS_RTL != 0) {
val layoutDirection = getLayoutDirection()
return layoutDirection == View.LAYOUT_DIRECTION_RTL
}
return false
}
}
14 changes: 0 additions & 14 deletions litho-core/src/main/java/com/facebook/litho/Layout.kt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
package com.facebook.litho

import android.content.Context
import android.content.pm.ApplicationInfo
import android.graphics.Rect
import android.view.View
import com.facebook.rendercore.LayoutCache
Expand Down Expand Up @@ -249,19 +248,6 @@ internal object Layout {
return true
}

@JvmStatic
fun isLayoutDirectionRTL(context: Context): Boolean {
val applicationInfo = context.applicationInfo
if (applicationInfo.flags and ApplicationInfo.FLAG_SUPPORTS_RTL != 0) {
val layoutDirection = getLayoutDirection(context)
return layoutDirection == View.LAYOUT_DIRECTION_RTL
}
return false
}

private fun getLayoutDirection(context: Context): Int =
context.resources.configuration.layoutDirection

private fun measureNestedTree(
lithoLayoutContext: LithoLayoutContext,
parentContext: ComponentContext,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import android.util.Pair
import android.view.View
import com.facebook.kotlin.compilerplugins.dataclassgenerate.annotation.DataClassGenerate
import com.facebook.kotlin.compilerplugins.dataclassgenerate.annotation.Mode
import com.facebook.litho.ContextUtils.isLayoutDirectionRTL
import com.facebook.litho.YogaLayoutOutput.Companion.getYogaNode
import com.facebook.litho.config.LithoDebugConfigurations
import com.facebook.litho.drawable.BorderColorDrawable
Expand Down Expand Up @@ -69,7 +70,7 @@ internal object LithoYogaLayoutFunction {
val widthSpec = sizeConstraints.toWidthSpec()
val heightSpec = sizeConstraints.toHeightSpec()

if (lithoNode.isLayoutDirectionInherit && Layout.isLayoutDirectionRTL(context.androidContext)) {
if (lithoNode.isLayoutDirectionInherit && context.androidContext.isLayoutDirectionRTL()) {
yogaRoot.setDirection(YogaDirection.RTL)
}
if (YogaConstants.isUndefined(yogaRoot.width.value)) {
Expand Down

0 comments on commit ab1d169

Please sign in to comment.