mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Introduce DeviceInfo as a new native module
Summary: The `UIManager` already has a lot of responsibilities and is deeply tied with React Native's view architecture. This diff separates out a `DeviceInfo` native module to provide information about screen dimensions and font scale, etc. Reviewed By: fkgozali Differential Revision: D4713834 fbshipit-source-id: f2ee93acf876a4221c29a8c731f5abeffbb97974
This commit is contained in:
committed by
Facebook Github Bot
parent
238fd4ad19
commit
95c1926193
+1
-30
@@ -83,7 +83,7 @@ import com.facebook.react.uimanager.events.TouchEventType;
|
||||
.build();
|
||||
}
|
||||
|
||||
public static Map<String, Object> getConstants(float fontScale) {
|
||||
public static Map<String, Object> getConstants() {
|
||||
HashMap<String, Object> constants = new HashMap<String, Object>();
|
||||
constants.put(
|
||||
"UIView",
|
||||
@@ -97,10 +97,6 @@ import com.facebook.react.uimanager.events.TouchEventType;
|
||||
"ScaleAspectCenter",
|
||||
ImageView.ScaleType.CENTER_INSIDE.ordinal())));
|
||||
|
||||
constants.put(
|
||||
"Dimensions",
|
||||
getDimensionsConstants(fontScale));
|
||||
|
||||
constants.put(
|
||||
"StyleConstants",
|
||||
MapBuilder.of(
|
||||
@@ -133,29 +129,4 @@ import com.facebook.react.uimanager.events.TouchEventType;
|
||||
|
||||
return constants;
|
||||
}
|
||||
|
||||
public static WritableMap getDimensionsConstants(float fontScale) {
|
||||
DisplayMetrics windowDisplayMetrics = DisplayMetricsHolder.getWindowDisplayMetrics();
|
||||
DisplayMetrics screenDisplayMetrics = DisplayMetricsHolder.getScreenDisplayMetrics();
|
||||
|
||||
WritableMap windowDisplayMetricsMap = Arguments.createMap();
|
||||
windowDisplayMetricsMap.putInt("width", windowDisplayMetrics.widthPixels);
|
||||
windowDisplayMetricsMap.putInt("height", windowDisplayMetrics.heightPixels);
|
||||
windowDisplayMetricsMap.putDouble("scale", windowDisplayMetrics.density);
|
||||
windowDisplayMetricsMap.putDouble("fontScale", fontScale);
|
||||
windowDisplayMetricsMap.putDouble("densityDpi", windowDisplayMetrics.densityDpi);
|
||||
|
||||
WritableMap screenDisplayMetricsMap = Arguments.createMap();
|
||||
screenDisplayMetricsMap.putInt("width", screenDisplayMetrics.widthPixels);
|
||||
screenDisplayMetricsMap.putInt("height", screenDisplayMetrics.heightPixels);
|
||||
screenDisplayMetricsMap.putDouble("scale", screenDisplayMetrics.density);
|
||||
screenDisplayMetricsMap.putDouble("fontScale", fontScale);
|
||||
screenDisplayMetricsMap.putDouble("densityDpi", screenDisplayMetrics.densityDpi);
|
||||
|
||||
WritableMap dimensionsMap = Arguments.createMap();
|
||||
dimensionsMap.putMap("windowPhysicalPixels", windowDisplayMetricsMap);
|
||||
dimensionsMap.putMap("screenPhysicalPixels", screenDisplayMetricsMap);
|
||||
|
||||
return dimensionsMap;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user