mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Compare commits
9
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
13be4e5245 | ||
|
|
3247062400 | ||
|
|
47f6e5782e | ||
|
|
28c7535a75 | ||
|
|
373f7edf55 | ||
|
|
ab64f7b9e8 | ||
|
|
96b32d7be8 | ||
|
|
4d572cd0f8 | ||
|
|
580805968c |
@@ -72,7 +72,6 @@ const SwipeableRow = createReactClass({
|
||||
propTypes: {
|
||||
children: PropTypes.any,
|
||||
isOpen: PropTypes.bool,
|
||||
preventSwipeLeft: PropTypes.bool,
|
||||
preventSwipeRight: PropTypes.bool,
|
||||
maxSwipeDistance: PropTypes.number.isRequired,
|
||||
onOpen: PropTypes.func.isRequired,
|
||||
@@ -110,7 +109,6 @@ const SwipeableRow = createReactClass({
|
||||
getDefaultProps(): Object {
|
||||
return {
|
||||
isOpen: false,
|
||||
preventSwipeLeft: false,
|
||||
preventSwipeRight: false,
|
||||
maxSwipeDistance: 0,
|
||||
onOpen: emptyFunction,
|
||||
@@ -339,12 +337,10 @@ const SwipeableRow = createReactClass({
|
||||
|
||||
// Ignore swipes due to user's finger moving slightly when tapping
|
||||
_isValidSwipe(gestureState: Object): boolean {
|
||||
if (this.props.preventSwipeLeft && gestureState.dx < 0) {
|
||||
return false;
|
||||
}
|
||||
if (this.props.preventSwipeRight && gestureState.dx > 0) {
|
||||
if (this.props.preventSwipeRight && this._previousLeft === CLOSED_LEFT_POSITION && gestureState.dx > 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return Math.abs(gestureState.dx) > HORIZONTAL_SWIPE_DISTANCE_THRESHOLD;
|
||||
},
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
VERSION_NAME=1000.0.0-master
|
||||
VERSION_NAME=0.48.1
|
||||
GROUP=com.facebook.react
|
||||
|
||||
POM_NAME=ReactNative
|
||||
|
||||
@@ -16,6 +16,7 @@ import android.graphics.Rect;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.Surface;
|
||||
import android.view.View;
|
||||
@@ -357,6 +358,8 @@ public class ReactRootView extends SizeMonitoringFrameLayout implements RootView
|
||||
|
||||
private int mKeyboardHeight = 0;
|
||||
private int mDeviceRotation = 0;
|
||||
private DisplayMetrics mWindowMetrics = new DisplayMetrics();
|
||||
private DisplayMetrics mScreenMetrics = new DisplayMetrics();
|
||||
|
||||
/* package */ CustomGlobalLayoutListener() {
|
||||
DisplayMetricsHolder.initDisplayMetricsIfNotInitialized(getContext().getApplicationContext());
|
||||
@@ -372,6 +375,7 @@ public class ReactRootView extends SizeMonitoringFrameLayout implements RootView
|
||||
}
|
||||
checkForKeyboardEvents();
|
||||
checkForDeviceOrientationChanges();
|
||||
checkForDeviceDimensionsChanges();
|
||||
}
|
||||
|
||||
private void checkForKeyboardEvents() {
|
||||
@@ -404,13 +408,37 @@ public class ReactRootView extends SizeMonitoringFrameLayout implements RootView
|
||||
return;
|
||||
}
|
||||
mDeviceRotation = rotation;
|
||||
// It's important to repopulate DisplayMetrics and export them before emitting the
|
||||
// orientation change event, so that the Dimensions object returns the correct new values.
|
||||
DisplayMetricsHolder.initDisplayMetrics(getContext());
|
||||
emitUpdateDimensionsEvent();
|
||||
emitOrientationChanged(rotation);
|
||||
}
|
||||
|
||||
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())) {
|
||||
mWindowMetrics.setTo(DisplayMetricsHolder.getWindowDisplayMetrics());
|
||||
mScreenMetrics.setTo(DisplayMetricsHolder.getScreenDisplayMetrics());
|
||||
emitUpdateDimensionsEvent();
|
||||
}
|
||||
}
|
||||
|
||||
private boolean areMetricsEqual(DisplayMetrics displayMetrics, DisplayMetrics otherMetrics) {
|
||||
if (Build.VERSION.SDK_INT >= 17) {
|
||||
return displayMetrics.equals(otherMetrics);
|
||||
} 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;
|
||||
}
|
||||
}
|
||||
|
||||
private void emitOrientationChanged(final int newRotation) {
|
||||
String name;
|
||||
double rotationDegrees;
|
||||
|
||||
@@ -5,6 +5,7 @@ package com.facebook.react.uimanager;
|
||||
import android.graphics.Color;
|
||||
import android.os.Build;
|
||||
import android.view.View;
|
||||
import android.view.ViewParent;
|
||||
|
||||
import com.facebook.react.R;
|
||||
import com.facebook.react.bridge.ReadableArray;
|
||||
@@ -80,6 +81,10 @@ public abstract class BaseViewManager<T extends View, C extends LayoutShadowNode
|
||||
public void setZIndex(T view, float zIndex) {
|
||||
int integerZIndex = Math.round(zIndex);
|
||||
ViewGroupManager.setViewZIndex(view, integerZIndex);
|
||||
ViewParent parent = view.getParent();
|
||||
if (parent != null && parent instanceof ReactZIndexedViewGroup) {
|
||||
((ReactZIndexedViewGroup) parent).updateDrawingOrder();
|
||||
}
|
||||
}
|
||||
|
||||
@ReactProp(name = PROP_RENDER_TO_HARDWARE_TEXTURE)
|
||||
|
||||
@@ -12,4 +12,10 @@ public interface ReactZIndexedViewGroup {
|
||||
* @return The child view index considering z-index
|
||||
*/
|
||||
int getZIndexMappedChildIndex(int index);
|
||||
|
||||
/**
|
||||
* Redraw the view based on updated child z-index. This should be called after updating one of its child
|
||||
* z-index.
|
||||
*/
|
||||
void updateDrawingOrder();
|
||||
}
|
||||
|
||||
+13
@@ -100,4 +100,17 @@ public class ViewGroupDrawingOrderHelper {
|
||||
}
|
||||
return mDrawingOrderIndices[index];
|
||||
}
|
||||
|
||||
/**
|
||||
* Recheck all children for z-index changes.
|
||||
*/
|
||||
public void update() {
|
||||
mNumberOfChildrenWithZIndex = 0;
|
||||
for (int i = 0; i < mViewGroup.getChildCount(); i++) {
|
||||
if (ViewGroupManager.getViewZIndex(mViewGroup.getChildAt(i)) != null) {
|
||||
mNumberOfChildrenWithZIndex++;
|
||||
}
|
||||
}
|
||||
mDrawingOrderIndices = null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -419,6 +419,13 @@ public class ReactViewGroup extends ViewGroup implements
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateDrawingOrder() {
|
||||
mDrawingOrderHelper.update();
|
||||
setChildrenDrawingOrderEnabled(mDrawingOrderHelper.shouldEnableCustomDrawingOrder());
|
||||
invalidate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public PointerEvents getPointerEvents() {
|
||||
return mPointerEvents;
|
||||
|
||||
@@ -82,16 +82,7 @@ All we need now is to apply this patch to your source files. While the old `reac
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
<<<<<<< ours
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/HockeySDK.embeddedframework",
|
||||
"$(PROJECT_DIR)/HockeySDK-iOS/HockeySDK.embeddedframework",
|
||||
);
|
||||
=======
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
>>>>>>> theirs
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "react-native",
|
||||
"version": "1000.0.0",
|
||||
"version": "0.48.1",
|
||||
"description": "A framework for building native apps using React",
|
||||
"license": "BSD-3-Clause",
|
||||
"repository": {
|
||||
@@ -241,4 +241,4 @@
|
||||
"shelljs": "0.6.0",
|
||||
"sinon": "^2.2.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -37,36 +37,6 @@ rm -rf android
|
||||
success "Generated artifacts for Maven"
|
||||
|
||||
npm install
|
||||
|
||||
success "Killing any running packagers"
|
||||
lsof -i :8081 | grep LISTEN
|
||||
lsof -i :8081 | grep LISTEN | /usr/bin/awk '{print $2}' | xargs kill
|
||||
|
||||
info "Start the packager in another terminal by running 'npm start' from the root"
|
||||
info "and then press any key."
|
||||
info ""
|
||||
read -n 1
|
||||
|
||||
./gradlew :RNTester:android:app:installDebug || error "Couln't build RNTester Android"
|
||||
|
||||
info "Press any key to run RNTester in an already running Android emulator/device"
|
||||
info ""
|
||||
read -n 1
|
||||
adb shell am start -n com.facebook.react.uiapp/.RNTesterActivity
|
||||
|
||||
info "Press any key to open the project in Xcode, then build and test manually."
|
||||
info ""
|
||||
read -n 1
|
||||
open "RNTester/RNTester.xcodeproj"
|
||||
|
||||
info "When done testing RNTester app on iOS and Android press any key to continue."
|
||||
info ""
|
||||
read -n 1
|
||||
|
||||
success "Killing packager"
|
||||
lsof -i :8081 | grep LISTEN
|
||||
lsof -i :8081 | grep LISTEN | /usr/bin/awk '{print $2}' | xargs kill
|
||||
|
||||
npm pack
|
||||
|
||||
PACKAGE=$(pwd)/react-native-$PACKAGE_VERSION.tgz
|
||||
|
||||
Reference in New Issue
Block a user