mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Save a copy of DisplayMetrics native map in DeviceInfoModule
Summary: After some more testing, I discovered a problem in D19395326 because the native map that DeviceInfoModule was storing in `mPreviousDisplayMetrics` had been consumed when the event was emitted to JS. This caused the comparison to fail, so it would emit the event again when the dimensions hadn't changed. In this diff, I'm storing a Java-only copy of the native map before emitting the event to JS so this shouldn't happen. Changelog: [Android][Fixed] Fix bug in updating dimensions in JS Reviewed By: mdvacca Differential Revision: D19462861 fbshipit-source-id: 2e47479df93377b85fe87f255972dd31e874e3a8
This commit is contained in:
committed by
Facebook Github Bot
parent
cc3e27d484
commit
bef845ffd5
+1
-1
@@ -90,10 +90,10 @@ public class DeviceInfoModule extends ReactContextBaseJavaModule
|
||||
WritableNativeMap displayMetrics =
|
||||
DisplayMetricsHolder.getDisplayMetricsNativeMap(mFontScale);
|
||||
if (!displayMetrics.equals(mPreviousDisplayMetrics)) {
|
||||
mPreviousDisplayMetrics = displayMetrics.copy();
|
||||
mReactApplicationContext
|
||||
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
|
||||
.emit("didUpdateDimensions", displayMetrics);
|
||||
mPreviousDisplayMetrics = displayMetrics;
|
||||
}
|
||||
} else {
|
||||
ReactSoftException.logSoftException(
|
||||
|
||||
Reference in New Issue
Block a user