mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Format Java code in xplat/js/react-native-github
Summary: This diff formats the Java class files inside xplat/js/react-native-github. Since google-java-format was enabled in D16071401 we want to codemode the existing code so that users don't have to deal with formatter lint noise at diff-time. ```arc f --paths-cmd 'hg files -I "**/*.java"'``` drop-conflicts Reviewed By: cpojer Differential Revision: D16071725 fbshipit-source-id: fc6e3852e45742c109f0c5ac4065d64201c74204
This commit is contained in:
committed by
Facebook Github Bot
parent
61e95e5cbf
commit
6c0f73b322
@@ -1,10 +1,9 @@
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
* <p>This source code is licensed under the MIT license found in the LICENSE file in the root
|
||||
* directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.facebook.react;
|
||||
|
||||
import static com.facebook.react.uimanager.common.UIManagerType.DEFAULT;
|
||||
@@ -46,8 +45,8 @@ import com.facebook.react.uimanager.DisplayMetricsHolder;
|
||||
import com.facebook.react.uimanager.IllegalViewOperationException;
|
||||
import com.facebook.react.uimanager.JSTouchDispatcher;
|
||||
import com.facebook.react.uimanager.PixelUtil;
|
||||
import com.facebook.react.uimanager.RootView;
|
||||
import com.facebook.react.uimanager.ReactRoot;
|
||||
import com.facebook.react.uimanager.RootView;
|
||||
import com.facebook.react.uimanager.UIManagerHelper;
|
||||
import com.facebook.react.uimanager.UIManagerModule;
|
||||
import com.facebook.react.uimanager.common.UIManagerType;
|
||||
@@ -62,20 +61,16 @@ import javax.annotation.Nullable;
|
||||
* ViewGroup#onInterceptTouchEvent} method in order to be notified about the events for all of its
|
||||
* children and it's also overriding {@link ViewGroup#requestDisallowInterceptTouchEvent} to make
|
||||
* sure that {@link ViewGroup#onInterceptTouchEvent} will get events even when some child view start
|
||||
* intercepting it. In case when no child view is interested in handling some particular touch event,
|
||||
* this view's {@link View#onTouchEvent} will still return true in order to be notified about all
|
||||
* subsequent touch events related to that gesture (in case when JS code wants to handle that
|
||||
* intercepting it. In case when no child view is interested in handling some particular touch
|
||||
* event, this view's {@link View#onTouchEvent} will still return true in order to be notified about
|
||||
* all subsequent touch events related to that gesture (in case when JS code wants to handle that
|
||||
* gesture).
|
||||
*/
|
||||
public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
||||
|
||||
/**
|
||||
* Listener interface for react root view events
|
||||
*/
|
||||
/** Listener interface for react root view events */
|
||||
public interface ReactRootViewEventListener {
|
||||
/**
|
||||
* Called when the react context is attached to a ReactRootView.
|
||||
*/
|
||||
/** Called when the react context is attached to a ReactRootView. */
|
||||
void onAttachedToReactInstance(ReactRootView rootView);
|
||||
}
|
||||
|
||||
@@ -89,7 +84,8 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
||||
private boolean mIsAttachedToInstance;
|
||||
private boolean mShouldLogContentAppeared;
|
||||
private @Nullable JSTouchDispatcher mJSTouchDispatcher;
|
||||
private final ReactAndroidHWInputDeviceHelper mAndroidHWInputDeviceHelper = new ReactAndroidHWInputDeviceHelper(this);
|
||||
private final ReactAndroidHWInputDeviceHelper mAndroidHWInputDeviceHelper =
|
||||
new ReactAndroidHWInputDeviceHelper(this);
|
||||
private boolean mWasMeasured = false;
|
||||
private int mWidthMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
|
||||
private int mHeightMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
|
||||
@@ -135,8 +131,8 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
||||
|
||||
Systrace.beginSection(TRACE_TAG_REACT_JAVA_BRIDGE, "ReactRootView.onMeasure");
|
||||
try {
|
||||
boolean measureSpecsUpdated = widthMeasureSpec != mWidthMeasureSpec ||
|
||||
heightMeasureSpec != mHeightMeasureSpec;
|
||||
boolean measureSpecsUpdated =
|
||||
widthMeasureSpec != mWidthMeasureSpec || heightMeasureSpec != mHeightMeasureSpec;
|
||||
mWidthMeasureSpec = widthMeasureSpec;
|
||||
mHeightMeasureSpec = heightMeasureSpec;
|
||||
|
||||
@@ -189,21 +185,22 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
||||
|
||||
@Override
|
||||
public void onChildStartedNativeGesture(MotionEvent androidEvent) {
|
||||
if (mReactInstanceManager == null || !mIsAttachedToInstance ||
|
||||
mReactInstanceManager.getCurrentReactContext() == null) {
|
||||
if (mReactInstanceManager == null
|
||||
|| !mIsAttachedToInstance
|
||||
|| mReactInstanceManager.getCurrentReactContext() == null) {
|
||||
FLog.w(
|
||||
ReactConstants.TAG,
|
||||
"Unable to dispatch touch to JS as the catalyst instance has not been attached");
|
||||
ReactConstants.TAG,
|
||||
"Unable to dispatch touch to JS as the catalyst instance has not been attached");
|
||||
return;
|
||||
}
|
||||
if (mJSTouchDispatcher == null) {
|
||||
FLog.w(
|
||||
ReactConstants.TAG,
|
||||
"Unable to dispatch touch to JS before the dispatcher is available");
|
||||
ReactConstants.TAG, "Unable to dispatch touch to JS before the dispatcher is available");
|
||||
return;
|
||||
}
|
||||
ReactContext reactContext = mReactInstanceManager.getCurrentReactContext();
|
||||
EventDispatcher eventDispatcher = reactContext.getNativeModule(UIManagerModule.class).getEventDispatcher();
|
||||
EventDispatcher eventDispatcher =
|
||||
reactContext.getNativeModule(UIManagerModule.class).getEventDispatcher();
|
||||
mJSTouchDispatcher.onChildStartedNativeGesture(androidEvent, eventDispatcher);
|
||||
}
|
||||
|
||||
@@ -235,11 +232,12 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
||||
|
||||
@Override
|
||||
public boolean dispatchKeyEvent(KeyEvent ev) {
|
||||
if (mReactInstanceManager == null || !mIsAttachedToInstance ||
|
||||
mReactInstanceManager.getCurrentReactContext() == null) {
|
||||
if (mReactInstanceManager == null
|
||||
|| !mIsAttachedToInstance
|
||||
|| mReactInstanceManager.getCurrentReactContext() == null) {
|
||||
FLog.w(
|
||||
ReactConstants.TAG,
|
||||
"Unable to handle key event as the catalyst instance has not been attached");
|
||||
ReactConstants.TAG,
|
||||
"Unable to handle key event as the catalyst instance has not been attached");
|
||||
return super.dispatchKeyEvent(ev);
|
||||
}
|
||||
mAndroidHWInputDeviceHelper.handleKeyEvent(ev);
|
||||
@@ -248,11 +246,12 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
||||
|
||||
@Override
|
||||
protected void onFocusChanged(boolean gainFocus, int direction, Rect previouslyFocusedRect) {
|
||||
if (mReactInstanceManager == null || !mIsAttachedToInstance ||
|
||||
mReactInstanceManager.getCurrentReactContext() == null) {
|
||||
if (mReactInstanceManager == null
|
||||
|| !mIsAttachedToInstance
|
||||
|| mReactInstanceManager.getCurrentReactContext() == null) {
|
||||
FLog.w(
|
||||
ReactConstants.TAG,
|
||||
"Unable to handle focus changed event as the catalyst instance has not been attached");
|
||||
ReactConstants.TAG,
|
||||
"Unable to handle focus changed event as the catalyst instance has not been attached");
|
||||
super.onFocusChanged(gainFocus, direction, previouslyFocusedRect);
|
||||
return;
|
||||
}
|
||||
@@ -262,11 +261,12 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
||||
|
||||
@Override
|
||||
public void requestChildFocus(View child, View focused) {
|
||||
if (mReactInstanceManager == null || !mIsAttachedToInstance ||
|
||||
mReactInstanceManager.getCurrentReactContext() == null) {
|
||||
if (mReactInstanceManager == null
|
||||
|| !mIsAttachedToInstance
|
||||
|| mReactInstanceManager.getCurrentReactContext() == null) {
|
||||
FLog.w(
|
||||
ReactConstants.TAG,
|
||||
"Unable to handle child focus changed event as the catalyst instance has not been attached");
|
||||
ReactConstants.TAG,
|
||||
"Unable to handle child focus changed event as the catalyst instance has not been attached");
|
||||
super.requestChildFocus(child, focused);
|
||||
return;
|
||||
}
|
||||
@@ -275,21 +275,22 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
||||
}
|
||||
|
||||
private void dispatchJSTouchEvent(MotionEvent event) {
|
||||
if (mReactInstanceManager == null || !mIsAttachedToInstance ||
|
||||
mReactInstanceManager.getCurrentReactContext() == null) {
|
||||
if (mReactInstanceManager == null
|
||||
|| !mIsAttachedToInstance
|
||||
|| mReactInstanceManager.getCurrentReactContext() == null) {
|
||||
FLog.w(
|
||||
ReactConstants.TAG,
|
||||
"Unable to dispatch touch to JS as the catalyst instance has not been attached");
|
||||
ReactConstants.TAG,
|
||||
"Unable to dispatch touch to JS as the catalyst instance has not been attached");
|
||||
return;
|
||||
}
|
||||
if (mJSTouchDispatcher == null) {
|
||||
FLog.w(
|
||||
ReactConstants.TAG,
|
||||
"Unable to dispatch touch to JS before the dispatcher is available");
|
||||
ReactConstants.TAG, "Unable to dispatch touch to JS before the dispatcher is available");
|
||||
return;
|
||||
}
|
||||
ReactContext reactContext = mReactInstanceManager.getCurrentReactContext();
|
||||
EventDispatcher eventDispatcher = reactContext.getNativeModule(UIManagerModule.class).getEventDispatcher();
|
||||
EventDispatcher eventDispatcher =
|
||||
reactContext.getNativeModule(UIManagerModule.class).getEventDispatcher();
|
||||
mJSTouchDispatcher.handleTouchEvent(event, eventDispatcher);
|
||||
}
|
||||
|
||||
@@ -349,24 +350,23 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@see #startReactApplication(ReactInstanceManager, String, android.os.Bundle)}
|
||||
*/
|
||||
/** {@see #startReactApplication(ReactInstanceManager, String, android.os.Bundle)} */
|
||||
public void startReactApplication(ReactInstanceManager reactInstanceManager, String moduleName) {
|
||||
startReactApplication(reactInstanceManager, moduleName, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@see #startReactApplication(ReactInstanceManager, String, android.os.Bundle, String)}
|
||||
*/
|
||||
public void startReactApplication(ReactInstanceManager reactInstanceManager, String moduleName, @Nullable Bundle initialProperties) {
|
||||
/** {@see #startReactApplication(ReactInstanceManager, String, android.os.Bundle, String)} */
|
||||
public void startReactApplication(
|
||||
ReactInstanceManager reactInstanceManager,
|
||||
String moduleName,
|
||||
@Nullable Bundle initialProperties) {
|
||||
startReactApplication(reactInstanceManager, moduleName, initialProperties, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Schedule rendering of the react component rendered by the JS application from the given JS
|
||||
* module (@{param moduleName}) using provided {@param reactInstanceManager} to attach to the
|
||||
* JS context of that manager. Extra parameter {@param launchOptions} can be used to pass initial
|
||||
* module (@{param moduleName}) using provided {@param reactInstanceManager} to attach to the JS
|
||||
* context of that manager. Extra parameter {@param launchOptions} can be used to pass initial
|
||||
* properties for the react component.
|
||||
*/
|
||||
public void startReactApplication(
|
||||
@@ -382,8 +382,8 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
||||
// here as it may be deallocated in native after passing via JNI bridge, but we want to reuse
|
||||
// it in the case of re-creating the catalyst instance
|
||||
Assertions.assertCondition(
|
||||
mReactInstanceManager == null,
|
||||
"This root view has already been attached to a catalyst instance manager");
|
||||
mReactInstanceManager == null,
|
||||
"This root view has already been attached to a catalyst instance manager");
|
||||
|
||||
mReactInstanceManager = reactInstanceManager;
|
||||
mJSModuleName = moduleName;
|
||||
@@ -429,7 +429,7 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
||||
|
||||
if (reactApplicationContext != null) {
|
||||
UIManagerHelper.getUIManager(reactApplicationContext, getUIManagerType())
|
||||
.updateRootLayoutSpecs(getRootViewTag(), widthMeasureSpec, heightMeasureSpec);
|
||||
.updateRootLayoutSpecs(getRootViewTag(), widthMeasureSpec, heightMeasureSpec);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -450,7 +450,7 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
||||
|
||||
@Override
|
||||
public void onStage(int stage) {
|
||||
switch(stage) {
|
||||
switch (stage) {
|
||||
case ReactStage.ON_ATTACH_TO_INSTANCE:
|
||||
onAttachedToReactInstance();
|
||||
break;
|
||||
@@ -498,51 +498,51 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls into JS to start the React application. Can be called multiple times with the
|
||||
* same rootTag, which will re-render the application from the root.
|
||||
* Calls into JS to start the React application. Can be called multiple times with the same
|
||||
* rootTag, which will re-render the application from the root.
|
||||
*/
|
||||
@Override
|
||||
public void runApplication() {
|
||||
Systrace.beginSection(TRACE_TAG_REACT_JAVA_BRIDGE, "ReactRootView.runApplication");
|
||||
try {
|
||||
if (mReactInstanceManager == null || !mIsAttachedToInstance) {
|
||||
return;
|
||||
}
|
||||
|
||||
ReactContext reactContext = mReactInstanceManager.getCurrentReactContext();
|
||||
if (reactContext == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
CatalystInstance catalystInstance = reactContext.getCatalystInstance();
|
||||
String jsAppModuleName = getJSModuleName();
|
||||
|
||||
if (mUseSurface) {
|
||||
// TODO call surface's runApplication
|
||||
} else {
|
||||
if (mWasMeasured) {
|
||||
updateRootLayoutSpecs(mWidthMeasureSpec, mHeightMeasureSpec);
|
||||
}
|
||||
|
||||
WritableNativeMap appParams = new WritableNativeMap();
|
||||
appParams.putDouble("rootTag", getRootViewTag());
|
||||
@Nullable Bundle appProperties = getAppProperties();
|
||||
if (appProperties != null) {
|
||||
appParams.putMap("initialProps", Arguments.fromBundle(appProperties));
|
||||
}
|
||||
|
||||
mShouldLogContentAppeared = true;
|
||||
|
||||
catalystInstance.getJSModule(AppRegistry.class).runApplication(jsAppModuleName, appParams);
|
||||
}
|
||||
} finally {
|
||||
Systrace.endSection(TRACE_TAG_REACT_JAVA_BRIDGE);
|
||||
Systrace.beginSection(TRACE_TAG_REACT_JAVA_BRIDGE, "ReactRootView.runApplication");
|
||||
try {
|
||||
if (mReactInstanceManager == null || !mIsAttachedToInstance) {
|
||||
return;
|
||||
}
|
||||
|
||||
ReactContext reactContext = mReactInstanceManager.getCurrentReactContext();
|
||||
if (reactContext == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
CatalystInstance catalystInstance = reactContext.getCatalystInstance();
|
||||
String jsAppModuleName = getJSModuleName();
|
||||
|
||||
if (mUseSurface) {
|
||||
// TODO call surface's runApplication
|
||||
} else {
|
||||
if (mWasMeasured) {
|
||||
updateRootLayoutSpecs(mWidthMeasureSpec, mHeightMeasureSpec);
|
||||
}
|
||||
|
||||
WritableNativeMap appParams = new WritableNativeMap();
|
||||
appParams.putDouble("rootTag", getRootViewTag());
|
||||
@Nullable Bundle appProperties = getAppProperties();
|
||||
if (appProperties != null) {
|
||||
appParams.putMap("initialProps", Arguments.fromBundle(appProperties));
|
||||
}
|
||||
|
||||
mShouldLogContentAppeared = true;
|
||||
|
||||
catalystInstance.getJSModule(AppRegistry.class).runApplication(jsAppModuleName, appParams);
|
||||
}
|
||||
} finally {
|
||||
Systrace.endSection(TRACE_TAG_REACT_JAVA_BRIDGE);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Is used by unit test to setup mIsAttachedToWindow flags, that will let this
|
||||
* view to be properly attached to catalyst instance by startReactApplication call
|
||||
* Is used by unit test to setup mIsAttachedToWindow flags, that will let this view to be properly
|
||||
* attached to catalyst instance by startReactApplication call
|
||||
*/
|
||||
@VisibleForTesting
|
||||
/* package */ void simulateAttachForTesting() {
|
||||
@@ -576,12 +576,12 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
||||
protected void finalize() throws Throwable {
|
||||
super.finalize();
|
||||
Assertions.assertCondition(
|
||||
!mIsAttachedToInstance,
|
||||
"The application this ReactRootView was rendering was not unmounted before the " +
|
||||
"ReactRootView was garbage collected. This usually means that your application is " +
|
||||
"leaking large amounts of memory. To solve this, make sure to call " +
|
||||
"ReactRootView#unmountReactApplication in the onDestroy() of your hosting Activity or in " +
|
||||
"the onDestroyView() of your hosting Fragment.");
|
||||
!mIsAttachedToInstance,
|
||||
"The application this ReactRootView was rendering was not unmounted before the "
|
||||
+ "ReactRootView was garbage collected. This usually means that your application is "
|
||||
+ "leaking large amounts of memory. To solve this, make sure to call "
|
||||
+ "ReactRootView#unmountReactApplication in the onDestroy() of your hosting Activity or in "
|
||||
+ "the onDestroyView() of your hosting Fragment.");
|
||||
}
|
||||
|
||||
public int getRootViewTag() {
|
||||
@@ -594,9 +594,8 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
||||
|
||||
@Override
|
||||
public void handleException(final Throwable t) {
|
||||
if (mReactInstanceManager == null
|
||||
|| mReactInstanceManager.getCurrentReactContext() == null) {
|
||||
throw new RuntimeException(t);
|
||||
if (mReactInstanceManager == null || mReactInstanceManager.getCurrentReactContext() == null) {
|
||||
throw new RuntimeException(t);
|
||||
}
|
||||
|
||||
Exception e = new IllegalViewOperationException(t.getMessage(), this, t);
|
||||
@@ -619,9 +618,10 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
||||
|
||||
/* package */ void sendEvent(String eventName, @Nullable WritableMap params) {
|
||||
if (mReactInstanceManager != null) {
|
||||
mReactInstanceManager.getCurrentReactContext()
|
||||
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
|
||||
.emit(eventName, params);
|
||||
mReactInstanceManager
|
||||
.getCurrentReactContext()
|
||||
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
|
||||
.emit(eventName, params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -642,8 +642,9 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
||||
|
||||
@Override
|
||||
public void onGlobalLayout() {
|
||||
if (mReactInstanceManager == null || !mIsAttachedToInstance ||
|
||||
mReactInstanceManager.getCurrentReactContext() == null) {
|
||||
if (mReactInstanceManager == null
|
||||
|| !mIsAttachedToInstance
|
||||
|| mReactInstanceManager.getCurrentReactContext() == null) {
|
||||
return;
|
||||
}
|
||||
checkForKeyboardEvents();
|
||||
@@ -654,41 +655,40 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
||||
private void checkForKeyboardEvents() {
|
||||
getRootView().getWindowVisibleDisplayFrame(mVisibleViewArea);
|
||||
final int heightDiff =
|
||||
DisplayMetricsHolder.getWindowDisplayMetrics().heightPixels - mVisibleViewArea.bottom;
|
||||
DisplayMetricsHolder.getWindowDisplayMetrics().heightPixels - mVisibleViewArea.bottom;
|
||||
|
||||
boolean isKeyboardShowingOrKeyboardHeightChanged =
|
||||
mKeyboardHeight != heightDiff && heightDiff > mMinKeyboardHeightDetected;
|
||||
mKeyboardHeight != heightDiff && heightDiff > mMinKeyboardHeightDetected;
|
||||
if (isKeyboardShowingOrKeyboardHeightChanged) {
|
||||
mKeyboardHeight = heightDiff;
|
||||
sendEvent("keyboardDidShow",
|
||||
createKeyboardEventPayload(
|
||||
PixelUtil.toDIPFromPixel(mVisibleViewArea.bottom),
|
||||
PixelUtil.toDIPFromPixel(mVisibleViewArea.left),
|
||||
PixelUtil.toDIPFromPixel(mVisibleViewArea.width()),
|
||||
PixelUtil.toDIPFromPixel(mKeyboardHeight))
|
||||
);
|
||||
sendEvent(
|
||||
"keyboardDidShow",
|
||||
createKeyboardEventPayload(
|
||||
PixelUtil.toDIPFromPixel(mVisibleViewArea.bottom),
|
||||
PixelUtil.toDIPFromPixel(mVisibleViewArea.left),
|
||||
PixelUtil.toDIPFromPixel(mVisibleViewArea.width()),
|
||||
PixelUtil.toDIPFromPixel(mKeyboardHeight)));
|
||||
return;
|
||||
}
|
||||
|
||||
boolean isKeyboardHidden =
|
||||
mKeyboardHeight != 0 && heightDiff <= mMinKeyboardHeightDetected;
|
||||
boolean isKeyboardHidden = mKeyboardHeight != 0 && heightDiff <= mMinKeyboardHeightDetected;
|
||||
if (isKeyboardHidden) {
|
||||
mKeyboardHeight = 0;
|
||||
sendEvent("keyboardDidHide",
|
||||
createKeyboardEventPayload(
|
||||
PixelUtil.toDIPFromPixel(mVisibleViewArea.height()),
|
||||
0,
|
||||
PixelUtil.toDIPFromPixel(mVisibleViewArea.width()),
|
||||
0
|
||||
)
|
||||
);
|
||||
sendEvent(
|
||||
"keyboardDidHide",
|
||||
createKeyboardEventPayload(
|
||||
PixelUtil.toDIPFromPixel(mVisibleViewArea.height()),
|
||||
0,
|
||||
PixelUtil.toDIPFromPixel(mVisibleViewArea.width()),
|
||||
0));
|
||||
}
|
||||
}
|
||||
|
||||
private void checkForDeviceOrientationChanges() {
|
||||
final int rotation =
|
||||
((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE))
|
||||
.getDefaultDisplay().getRotation();
|
||||
((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE))
|
||||
.getDefaultDisplay()
|
||||
.getRotation();
|
||||
if (mDeviceRotation == rotation) {
|
||||
return;
|
||||
}
|
||||
@@ -699,9 +699,10 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
||||
private void checkForDeviceDimensionsChanges() {
|
||||
// Get current display metrics.
|
||||
DisplayMetricsHolder.initDisplayMetrics(getContext());
|
||||
// Check changes to both window and screen display metrics since they may not update at the same time.
|
||||
if (!areMetricsEqual(mWindowMetrics, DisplayMetricsHolder.getWindowDisplayMetrics()) ||
|
||||
!areMetricsEqual(mScreenMetrics, DisplayMetricsHolder.getScreenDisplayMetrics())) {
|
||||
// Check changes to both window and screen display metrics since they may not update at the
|
||||
// same time.
|
||||
if (!areMetricsEqual(mWindowMetrics, DisplayMetricsHolder.getWindowDisplayMetrics())
|
||||
|| !areMetricsEqual(mScreenMetrics, DisplayMetricsHolder.getScreenDisplayMetrics())) {
|
||||
mWindowMetrics.setTo(DisplayMetricsHolder.getWindowDisplayMetrics());
|
||||
mScreenMetrics.setTo(DisplayMetricsHolder.getScreenDisplayMetrics());
|
||||
emitUpdateDimensionsEvent();
|
||||
@@ -714,13 +715,13 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
||||
} else {
|
||||
// DisplayMetrics didn't have an equals method before API 17.
|
||||
// Check all public fields manually.
|
||||
return displayMetrics.widthPixels == otherMetrics.widthPixels &&
|
||||
displayMetrics.heightPixels == otherMetrics.heightPixels &&
|
||||
displayMetrics.density == otherMetrics.density &&
|
||||
displayMetrics.densityDpi == otherMetrics.densityDpi &&
|
||||
displayMetrics.scaledDensity == otherMetrics.scaledDensity &&
|
||||
displayMetrics.xdpi == otherMetrics.xdpi &&
|
||||
displayMetrics.ydpi == otherMetrics.ydpi;
|
||||
return displayMetrics.widthPixels == otherMetrics.widthPixels
|
||||
&& displayMetrics.heightPixels == otherMetrics.heightPixels
|
||||
&& displayMetrics.density == otherMetrics.density
|
||||
&& displayMetrics.densityDpi == otherMetrics.densityDpi
|
||||
&& displayMetrics.scaledDensity == otherMetrics.scaledDensity
|
||||
&& displayMetrics.xdpi == otherMetrics.xdpi
|
||||
&& displayMetrics.ydpi == otherMetrics.ydpi;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -766,7 +767,8 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
||||
.emitUpdateDimensionsEvent();
|
||||
}
|
||||
|
||||
private WritableMap createKeyboardEventPayload(double screenY, double screenX, double width, double height) {
|
||||
private WritableMap createKeyboardEventPayload(
|
||||
double screenY, double screenX, double width, double height) {
|
||||
WritableMap keyboardEventParams = Arguments.createMap();
|
||||
WritableMap endCoordinates = Arguments.createMap();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user