Skip to content

Commit 782971f

Browse files
Dmitry Zakharovfacebook-github-bot
Dmitry Zakharov
authored andcommitted
Move Native Extensions from JSContext layer to ContextFactory
Reviewed By: michalgr Differential Revision: D8057886 fbshipit-source-id: 45a63d909169c9a40414de9cd54bdb411f9f595d
1 parent 33ffa79 commit 782971f

File tree

2 files changed

+30
-11
lines changed

2 files changed

+30
-11
lines changed

Diff for: ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/DeviceInfoModule.java

+5-6
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,23 @@
1313
import java.util.Map;
1414

1515
import android.content.Context;
16-
import android.util.DisplayMetrics;
1716

18-
import com.facebook.react.bridge.Arguments;
1917
import com.facebook.react.bridge.BaseJavaModule;
2018
import com.facebook.react.bridge.LifecycleEventListener;
2119
import com.facebook.react.bridge.ReactApplicationContext;
22-
import com.facebook.react.bridge.WritableMap;
2320
import com.facebook.react.module.annotations.ReactModule;
2421
import com.facebook.react.modules.core.DeviceEventManagerModule;
2522
import com.facebook.react.uimanager.DisplayMetricsHolder;
2623

2724
/**
2825
* Module that exposes Android Constants to JS.
2926
*/
30-
@ReactModule(name = "DeviceInfo")
27+
@ReactModule(name = DeviceInfoModule.sModuleName)
3128
public class DeviceInfoModule extends BaseJavaModule implements
3229
LifecycleEventListener {
3330

31+
static final String sModuleName = "DeviceInfo";
32+
3433
private @Nullable ReactApplicationContext mReactApplicationContext;
3534
private float mFontScale;
3635

@@ -48,7 +47,7 @@ public DeviceInfoModule(Context context) {
4847

4948
@Override
5049
public String getName() {
51-
return "DeviceInfo";
50+
return sModuleName;
5251
}
5352

5453
@Override
@@ -88,6 +87,6 @@ public void emitUpdateDimensionsEvent() {
8887

8988
mReactApplicationContext
9089
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
91-
.emit("didUpdateDimensions", DisplayMetricsHolder.getDisplayMetricsMap(mFontScale));
90+
.emit("didUpdateDimensions", DisplayMetricsHolder.getDisplayMetricsNativeMap(mFontScale));
9291
}
9392
}

Diff for: ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.java

+25-5
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111

1212
import java.lang.reflect.InvocationTargetException;
1313
import java.lang.reflect.Method;
14+
import java.util.HashMap;
15+
import java.util.Map;
1416

1517
import android.content.Context;
1618
import android.os.Build;
@@ -104,18 +106,37 @@ public static DisplayMetrics getScreenDisplayMetrics() {
104106
return sScreenDisplayMetrics;
105107
}
106108

107-
public static WritableNativeMap getDisplayMetricsMap(double fontScale) {
109+
public static Map<String, Map<String, Object>> getDisplayMetricsMap(double fontScale) {
110+
Assertions.assertNotNull(
111+
sWindowDisplayMetrics != null || sScreenDisplayMetrics != null,
112+
"DisplayMetricsHolder must be initialized with initDisplayMetricsIfNotInitialized or initDisplayMetrics");
113+
final Map<String, Map<String, Object>> result = new HashMap<>();
114+
result.put("windowPhysicalPixels", getPhysicalPixelsMap(sWindowDisplayMetrics, fontScale));
115+
result.put("screenPhysicalPixels", getPhysicalPixelsMap(sScreenDisplayMetrics, fontScale));
116+
return result;
117+
}
118+
119+
public static WritableNativeMap getDisplayMetricsNativeMap(double fontScale) {
108120
Assertions.assertNotNull(
109121
sWindowDisplayMetrics != null || sScreenDisplayMetrics != null,
110122
"DisplayMetricsHolder must be initialized with initDisplayMetricsIfNotInitialized or initDisplayMetrics");
111123
final WritableNativeMap result = new WritableNativeMap();
112-
result.putMap("windowPhysicalPixels", getPhysicalPixelsMap(sWindowDisplayMetrics, fontScale));
113-
result.putMap("screenPhysicalPixels", getPhysicalPixelsMap(sScreenDisplayMetrics, fontScale));
124+
result.putMap("windowPhysicalPixels", getPhysicalPixelsNativeMap(sWindowDisplayMetrics, fontScale));
125+
result.putMap("screenPhysicalPixels", getPhysicalPixelsNativeMap(sScreenDisplayMetrics, fontScale));
126+
return result;
127+
}
114128

129+
private static Map<String, Object> getPhysicalPixelsMap(DisplayMetrics displayMetrics, double fontScale) {
130+
final Map<String, Object> result = new HashMap<>();
131+
result.put("width", displayMetrics.widthPixels);
132+
result.put("height", displayMetrics.heightPixels);
133+
result.put("scale", displayMetrics.density);
134+
result.put("fontScale", fontScale);
135+
result.put("densityDpi", displayMetrics.densityDpi);
115136
return result;
116137
}
117138

118-
private static WritableNativeMap getPhysicalPixelsMap(DisplayMetrics displayMetrics, double fontScale) {
139+
private static WritableNativeMap getPhysicalPixelsNativeMap(DisplayMetrics displayMetrics, double fontScale) {
119140
final WritableNativeMap result = new WritableNativeMap();
120141
result.putInt("width", displayMetrics.widthPixels);
121142
result.putInt("height", displayMetrics.heightPixels);
@@ -124,5 +145,4 @@ private static WritableNativeMap getPhysicalPixelsMap(DisplayMetrics displayMetr
124145
result.putDouble("densityDpi", displayMetrics.densityDpi);
125146
return result;
126147
}
127-
128148
}

0 commit comments

Comments
 (0)