Skip to content

Commit 445c9ce

Browse files
alanleedevfacebook-github-bot
authored andcommitted
convert LayoutMetricsConversions to Kotlin (facebook#43863)
Summary: Pull Request resolved: facebook#43863 convert Java to Kotlin: `react/fabric/mounding/LayoutMetricsConversions.java` Changelog: [Internal] internal Reviewed By: cortinico Differential Revision: D55714004 fbshipit-source-id: fbf167cb6030916789f6676c1bd0690f144cf330
1 parent c84faad commit 445c9ce

File tree

3 files changed

+61
-54
lines changed

3 files changed

+61
-54
lines changed

packages/react-native/ReactAndroid/api/ReactAndroid.api

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2702,12 +2702,20 @@ public class com/facebook/react/fabric/events/FabricEventEmitter : com/facebook/
27022702
}
27032703

27042704
public abstract interface class com/facebook/react/fabric/mounting/LayoutMetricsConversions {
2705+
public static final field Companion Lcom/facebook/react/fabric/mounting/LayoutMetricsConversions$Companion;
27052706
public static fun getMaxSize (I)F
27062707
public static fun getMinSize (I)F
27072708
public static fun getYogaMeasureMode (FF)Lcom/facebook/yoga/YogaMeasureMode;
27082709
public static fun getYogaSize (FF)F
27092710
}
27102711

2712+
public final class com/facebook/react/fabric/mounting/LayoutMetricsConversions$Companion {
2713+
public final fun getMaxSize (I)F
2714+
public final fun getMinSize (I)F
2715+
public final fun getYogaMeasureMode (FF)Lcom/facebook/yoga/YogaMeasureMode;
2716+
public final fun getYogaSize (FF)F
2717+
}
2718+
27112719
public class com/facebook/react/fabric/mounting/MountItemDispatcher {
27122720
public fun <init> (Lcom/facebook/react/fabric/mounting/MountingManager;Lcom/facebook/react/fabric/mounting/MountItemDispatcher$ItemDispatchListener;)V
27132721
public fun addMountItem (Lcom/facebook/react/fabric/mounting/mountitems/MountItem;)V

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/LayoutMetricsConversions.java

Lines changed: 0 additions & 54 deletions
This file was deleted.
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
/*
2+
* Copyright (c) Meta Platforms, Inc. and affiliates.
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
*/
7+
8+
package com.facebook.react.fabric.mounting
9+
10+
import android.view.View.MeasureSpec
11+
import com.facebook.react.uimanager.PixelUtil
12+
import com.facebook.yoga.YogaMeasureMode
13+
14+
public interface LayoutMetricsConversions {
15+
16+
public companion object {
17+
@JvmStatic
18+
public fun getMinSize(viewMeasureSpec: Int): Float {
19+
val mode = MeasureSpec.getMode(viewMeasureSpec)
20+
val size = MeasureSpec.getSize(viewMeasureSpec)
21+
return if (mode == MeasureSpec.EXACTLY) size.toFloat() else 0f
22+
}
23+
24+
@JvmStatic
25+
public fun getMaxSize(viewMeasureSpec: Int): Float {
26+
val mode = MeasureSpec.getMode(viewMeasureSpec)
27+
val size = MeasureSpec.getSize(viewMeasureSpec)
28+
29+
// Infinity represents an "unconstrained" size
30+
return if (mode == MeasureSpec.UNSPECIFIED) Float.POSITIVE_INFINITY else size.toFloat()
31+
}
32+
33+
@JvmStatic
34+
public fun getYogaSize(minSize: Float, maxSize: Float): Float =
35+
if (minSize == maxSize) {
36+
PixelUtil.toPixelFromDIP(maxSize)
37+
} else if (maxSize.isInfinite()) {
38+
Float.POSITIVE_INFINITY
39+
} else {
40+
PixelUtil.toPixelFromDIP(maxSize)
41+
}
42+
43+
@JvmStatic
44+
public fun getYogaMeasureMode(minSize: Float, maxSize: Float): YogaMeasureMode =
45+
if (minSize == maxSize) {
46+
YogaMeasureMode.EXACTLY
47+
} else if (maxSize.isInfinite()) {
48+
YogaMeasureMode.UNDEFINED
49+
} else {
50+
YogaMeasureMode.AT_MOST
51+
}
52+
}
53+
}

0 commit comments

Comments
 (0)