react-native-tvos 0.68.0-0 → 0.68.1-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Libraries/Components/AppleTV/{TVMenuControl.js → TVEventControl.js} +8 -0
- package/Libraries/Components/AppleTV/tagForComponentOrHandle.js +34 -0
- package/Libraries/Components/Touchable/TouchableOpacity.js +10 -7
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/README.md +3 -1
- package/React/Base/RCTRootView.m +2 -3
- package/React/Base/RCTRootViewInternal.h +1 -1
- package/React/Base/RCTTVRemoteHandler.h +26 -15
- package/React/Base/RCTTVRemoteHandler.m +128 -20
- package/React/Base/RCTVersion.m +1 -1
- package/React/Fabric/Mounting/ComponentViews/Root/RCTRootComponentView.mm +1 -1
- package/React/Modules/RCTTVMenuBridge.m +12 -0
- package/ReactAndroid/build.gradle +21 -4
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
- package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
- package/ReactCommon/hermes/inspector/tools/msggen/yarn.lock +6 -6
- package/android/com/facebook/react/react-native/{0.68.0-0/react-native-0.68.0-0-sources.jar → 0.68.1-0/react-native-0.68.1-0-sources.jar} +0 -0
- package/android/com/facebook/react/react-native/0.68.1-0/react-native-0.68.1-0-sources.jar.md5 +1 -0
- package/android/com/facebook/react/react-native/0.68.1-0/react-native-0.68.1-0-sources.jar.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.68.1-0/react-native-0.68.1-0-sources.jar.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.68.1-0/react-native-0.68.1-0-sources.jar.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.68.0-0/react-native-0.68.0-0.aar → 0.68.1-0/react-native-0.68.1-0.aar} +0 -0
- package/android/com/facebook/react/react-native/0.68.1-0/react-native-0.68.1-0.aar.md5 +1 -0
- package/android/com/facebook/react/react-native/0.68.1-0/react-native-0.68.1-0.aar.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.68.1-0/react-native-0.68.1-0.aar.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.68.1-0/react-native-0.68.1-0.aar.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.68.0-0/react-native-0.68.0-0.module → 0.68.1-0/react-native-0.68.1-0.module} +15 -15
- package/android/com/facebook/react/react-native/0.68.1-0/react-native-0.68.1-0.module.md5 +1 -0
- package/android/com/facebook/react/react-native/0.68.1-0/react-native-0.68.1-0.module.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.68.1-0/react-native-0.68.1-0.module.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.68.1-0/react-native-0.68.1-0.module.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.68.0-0/react-native-0.68.0-0.pom → 0.68.1-0/react-native-0.68.1-0.pom} +1 -1
- package/android/com/facebook/react/react-native/0.68.1-0/react-native-0.68.1-0.pom.md5 +1 -0
- package/android/com/facebook/react/react-native/0.68.1-0/react-native-0.68.1-0.pom.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.68.1-0/react-native-0.68.1-0.pom.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.68.1-0/react-native-0.68.1-0.pom.sha512 +1 -0
- package/android/com/facebook/react/react-native/maven-metadata.xml +4 -4
- package/android/com/facebook/react/react-native/maven-metadata.xml.md5 +1 -1
- package/android/com/facebook/react/react-native/maven-metadata.xml.sha1 +1 -1
- package/android/com/facebook/react/react-native/maven-metadata.xml.sha256 +1 -1
- package/android/com/facebook/react/react-native/maven-metadata.xml.sha512 +1 -1
- package/index.js +9 -2
- package/package.json +4 -4
- package/template/Gemfile.lock +2 -2
- package/template/android/app/build.gradle +12 -0
- package/template/android/build.gradle +14 -1
- package/template/package.json +1 -1
- package/android/com/facebook/react/react-native/0.68.0-0/react-native-0.68.0-0-sources.jar.md5 +0 -1
- package/android/com/facebook/react/react-native/0.68.0-0/react-native-0.68.0-0-sources.jar.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.68.0-0/react-native-0.68.0-0-sources.jar.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.68.0-0/react-native-0.68.0-0-sources.jar.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.68.0-0/react-native-0.68.0-0.aar.md5 +0 -1
- package/android/com/facebook/react/react-native/0.68.0-0/react-native-0.68.0-0.aar.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.68.0-0/react-native-0.68.0-0.aar.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.68.0-0/react-native-0.68.0-0.aar.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.68.0-0/react-native-0.68.0-0.module.md5 +0 -1
- package/android/com/facebook/react/react-native/0.68.0-0/react-native-0.68.0-0.module.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.68.0-0/react-native-0.68.0-0.module.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.68.0-0/react-native-0.68.0-0.module.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.68.0-0/react-native-0.68.0-0.pom.md5 +0 -1
- package/android/com/facebook/react/react-native/0.68.0-0/react-native-0.68.0-0.pom.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.68.0-0/react-native-0.68.0-0.pom.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.68.0-0/react-native-0.68.0-0.pom.sha512 +0 -1
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* Methods to enable and disable listening for Apple TV remote events (menu key, pan gesture)
|
|
3
|
+
*
|
|
2
4
|
* @format
|
|
3
5
|
* @flow
|
|
4
6
|
*/
|
|
@@ -14,4 +16,10 @@ module.exports = {
|
|
|
14
16
|
disableTVMenuKey: () => {
|
|
15
17
|
TVMenuBridge && TVMenuBridge.disableTVMenuKey();
|
|
16
18
|
},
|
|
19
|
+
enableTVPanGesture: () => {
|
|
20
|
+
TVMenuBridge && TVMenuBridge.enableTVPanGesture();
|
|
21
|
+
},
|
|
22
|
+
disableTVPanGesture: () => {
|
|
23
|
+
TVMenuBridge && TVMenuBridge.disableTVPanGesture();
|
|
24
|
+
},
|
|
17
25
|
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// Replacement for findNodeHandle, since we need this for converting
|
|
2
|
+
// components to tags when rendering nextFocus props
|
|
3
|
+
// @flow
|
|
4
|
+
|
|
5
|
+
// TODO: make this work for Fabric
|
|
6
|
+
|
|
7
|
+
// import {findNodeHandle} from '../../Renderer/shims/ReactNative';
|
|
8
|
+
|
|
9
|
+
type TagForComponentOrHandleType = (
|
|
10
|
+
component: ?(
|
|
11
|
+
| {_nativeTag: ?number, canonical: ?{_nativeTag: ?number}}
|
|
12
|
+
| number
|
|
13
|
+
),
|
|
14
|
+
) => ?number;
|
|
15
|
+
|
|
16
|
+
const tagForComponentOrHandle: TagForComponentOrHandleType = (
|
|
17
|
+
component: ?(
|
|
18
|
+
| {_nativeTag: ?number, canonical: ?{_nativeTag: ?number}}
|
|
19
|
+
| number
|
|
20
|
+
),
|
|
21
|
+
): ?number => {
|
|
22
|
+
if (typeof component === 'number') {
|
|
23
|
+
return component;
|
|
24
|
+
}
|
|
25
|
+
if (typeof component?._nativeTag === 'number') {
|
|
26
|
+
return component?._nativeTag;
|
|
27
|
+
}
|
|
28
|
+
if (typeof component?.canonical?._nativeTag === 'number') {
|
|
29
|
+
return component?.canonical?._nativeTag;
|
|
30
|
+
}
|
|
31
|
+
return undefined;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export default tagForComponentOrHandle;
|
|
@@ -20,6 +20,7 @@ import type {ViewStyleProp} from '../../StyleSheet/StyleSheet';
|
|
|
20
20
|
import flattenStyle from '../../StyleSheet/flattenStyle';
|
|
21
21
|
import Platform from '../../Utilities/Platform';
|
|
22
22
|
import typeof TVParallaxPropertiesType from '../AppleTV/TVViewPropTypes';
|
|
23
|
+
import tagForComponentOrHandle from '../AppleTV/tagForComponentOrHandle';
|
|
23
24
|
|
|
24
25
|
import * as React from 'react';
|
|
25
26
|
|
|
@@ -245,13 +246,15 @@ class TouchableOpacity extends React.Component<Props, State> {
|
|
|
245
246
|
nativeID={this.props.nativeID}
|
|
246
247
|
testID={this.props.testID}
|
|
247
248
|
onLayout={this.props.onLayout}
|
|
248
|
-
nextFocusDown={this.props.nextFocusDown}
|
|
249
|
-
nextFocusForward={this.props.nextFocusForward}
|
|
250
|
-
nextFocusLeft={this.props.nextFocusLeft}
|
|
251
|
-
nextFocusRight={this.props.nextFocusRight}
|
|
252
|
-
nextFocusUp={this.props.nextFocusUp}
|
|
249
|
+
nextFocusDown={tagForComponentOrHandle(this.props.nextFocusDown)}
|
|
250
|
+
nextFocusForward={tagForComponentOrHandle(this.props.nextFocusForward)}
|
|
251
|
+
nextFocusLeft={tagForComponentOrHandle(this.props.nextFocusLeft)}
|
|
252
|
+
nextFocusRight={tagForComponentOrHandle(this.props.nextFocusRight)}
|
|
253
|
+
nextFocusUp={tagForComponentOrHandle(this.props.nextFocusUp)}
|
|
253
254
|
hasTVPreferredFocus={this.props.hasTVPreferredFocus === true}
|
|
254
|
-
isTVSelectable={
|
|
255
|
+
isTVSelectable={
|
|
256
|
+
this.props.isTVSelectable !== false && this.props.accessible !== false
|
|
257
|
+
}
|
|
255
258
|
tvParallaxProperties={this.props.tvParallaxProperties}
|
|
256
259
|
hitSlop={this.props.hitSlop}
|
|
257
260
|
focusable={
|
|
@@ -284,7 +287,7 @@ class TouchableOpacity extends React.Component<Props, State> {
|
|
|
284
287
|
}
|
|
285
288
|
},
|
|
286
289
|
onPress: event => {
|
|
287
|
-
if (this.props.onPress != null && Platform.OS !==
|
|
290
|
+
if (this.props.onPress != null && Platform.OS !== 'android') {
|
|
288
291
|
this.props.onPress(event);
|
|
289
292
|
}
|
|
290
293
|
},
|
package/README.md
CHANGED
|
@@ -196,7 +196,9 @@ class Game2048 extends React.Component {
|
|
|
196
196
|
|
|
197
197
|
- _Back navigation with the TV remote menu button_: The `BackHandler` component, originally written to support the Android back button, now also supports back navigation on the Apple TV using the menu button on the TV remote.
|
|
198
198
|
|
|
199
|
-
-
|
|
199
|
+
- _TVEventControl_: (Formerly "TVMenuControl") (Apple TV only) This module provides methods to enable and disable firing of two types of events from the Apple TV Siri remote:
|
|
200
|
+
- `enableTVMenuKey`/`disableTVMenuKey`: Method to enable and disable the menu key gesture recognizer, in order to fix an issue with Apple's guidelines for menu key navigation (see https://github.com/facebook/react-native/issues/18930). The `RNTester` app uses these methods to implement correct menu key behavior for back navigation.
|
|
201
|
+
- `enableTVPanGesture`/`disableTVPanGesture`: Methods to enable and disable detection of finger touches that pan across the touch surface of the Siri remote. See `TVEventHandlerExample` in the `RNTester` app for a demo.
|
|
200
202
|
|
|
201
203
|
- _TVFocusGuideView_: This component provides support for Apple's `UIFocusGuide` API, to help ensure that focusable controls can be navigated to, even if they are not directly in line with other controls. An example is provided in `RNTester` that shows two different ways of using this component.
|
|
202
204
|
|
package/React/Base/RCTRootView.m
CHANGED
|
@@ -40,8 +40,7 @@
|
|
|
40
40
|
|
|
41
41
|
NSString *const RCTContentDidAppearNotification = @"RCTContentDidAppearNotification";
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
NSString *const RCTTVDisableMenuKeyNotification = @"RCTTVDisableMenuKeyNotification";
|
|
43
|
+
|
|
45
44
|
|
|
46
45
|
|
|
47
46
|
@interface RCTUIManager (RCTRootView)
|
|
@@ -168,7 +167,7 @@ RCT_NOT_IMPLEMENTED(-(instancetype)initWithCoder : (NSCoder *)aDecoder)
|
|
|
168
167
|
#if TARGET_OS_TV
|
|
169
168
|
- (NSArray<id<UIFocusEnvironment>> *)preferredFocusEnvironments
|
|
170
169
|
{
|
|
171
|
-
if (self.reactPreferredFocusedView) {
|
|
170
|
+
if (self.reactPreferredFocusedView && self.reactPreferredFocusedView.window != nil) {
|
|
172
171
|
return @[self.reactPreferredFocusedView];
|
|
173
172
|
}
|
|
174
173
|
return [super preferredFocusEnvironments];
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
*/
|
|
27
27
|
#if TARGET_OS_TV
|
|
28
28
|
@property (nonatomic, strong) RCTTVRemoteHandler *tvRemoteHandler;
|
|
29
|
-
@property (nonatomic,
|
|
29
|
+
@property (nonatomic, weak) UIView *reactPreferredFocusedView;
|
|
30
30
|
#endif
|
|
31
31
|
|
|
32
32
|
- (void)contentViewInvalidated;
|
|
@@ -7,25 +7,33 @@
|
|
|
7
7
|
|
|
8
8
|
#import <UIKit/UIKit.h>
|
|
9
9
|
|
|
10
|
-
extern NSString *const
|
|
11
|
-
extern NSString *const
|
|
12
|
-
extern NSString *const RCTTVRemoteEventSelect;
|
|
10
|
+
extern NSString * _Nonnull const RCTTVEnableMenuKeyNotification;
|
|
11
|
+
extern NSString * _Nonnull const RCTTVDisableMenuKeyNotification;
|
|
13
12
|
|
|
14
|
-
extern NSString *const
|
|
15
|
-
extern NSString *const
|
|
13
|
+
extern NSString * _Nonnull const RCTTVEnablePanGestureNotification;
|
|
14
|
+
extern NSString * _Nonnull const RCTTVDisablePanGestureNotification;
|
|
16
15
|
|
|
17
|
-
extern NSString *const
|
|
18
|
-
extern NSString *const
|
|
19
|
-
extern NSString *const
|
|
20
|
-
extern NSString *const RCTTVRemoteEventDown;
|
|
16
|
+
extern NSString * _Nonnull const RCTTVRemoteEventMenu;
|
|
17
|
+
extern NSString * _Nonnull const RCTTVRemoteEventPlayPause;
|
|
18
|
+
extern NSString * _Nonnull const RCTTVRemoteEventSelect;
|
|
21
19
|
|
|
22
|
-
extern NSString *const
|
|
23
|
-
extern NSString *const
|
|
20
|
+
extern NSString * _Nonnull const RCTTVRemoteEventLongPlayPause;
|
|
21
|
+
extern NSString * _Nonnull const RCTTVRemoteEventLongSelect;
|
|
24
22
|
|
|
25
|
-
extern NSString *const
|
|
26
|
-
extern NSString *const
|
|
27
|
-
extern NSString *const
|
|
28
|
-
extern NSString *const
|
|
23
|
+
extern NSString * _Nonnull const RCTTVRemoteEventLeft;
|
|
24
|
+
extern NSString * _Nonnull const RCTTVRemoteEventRight;
|
|
25
|
+
extern NSString * _Nonnull const RCTTVRemoteEventUp;
|
|
26
|
+
extern NSString * _Nonnull const RCTTVRemoteEventDown;
|
|
27
|
+
|
|
28
|
+
extern NSString * _Nonnull const RCTTVRemoteEventPageUp;
|
|
29
|
+
extern NSString * _Nonnull const RCTTVRemoteEventPageDown;
|
|
30
|
+
|
|
31
|
+
extern NSString * _Nonnull const RCTTVRemoteEventSwipeLeft;
|
|
32
|
+
extern NSString * _Nonnull const RCTTVRemoteEventSwipeRight;
|
|
33
|
+
extern NSString * _Nonnull const RCTTVRemoteEventSwipeUp;
|
|
34
|
+
extern NSString * _Nonnull const RCTTVRemoteEventSwipeDown;
|
|
35
|
+
|
|
36
|
+
extern NSString * _Nonnull const RCTTVRemoteEventPan;
|
|
29
37
|
|
|
30
38
|
@interface RCTTVRemoteHandler : NSObject
|
|
31
39
|
|
|
@@ -35,4 +43,7 @@ extern NSString *const RCTTVRemoteEventSwipeDown;
|
|
|
35
43
|
+ (BOOL)useMenuKey;
|
|
36
44
|
+ (void)setUseMenuKey:(BOOL)useMenuKey;
|
|
37
45
|
|
|
46
|
+
+ (BOOL)usePanGesture;
|
|
47
|
+
+ (void)setUsePanGesture:(BOOL)usePanGesture;
|
|
48
|
+
|
|
38
49
|
@end
|
|
@@ -20,6 +20,12 @@
|
|
|
20
20
|
#import "RCTView.h"
|
|
21
21
|
#import "UIView+React.h"
|
|
22
22
|
|
|
23
|
+
NSString *const RCTTVEnableMenuKeyNotification = @"RCTTVEnableMenuKeyNotification";
|
|
24
|
+
NSString *const RCTTVDisableMenuKeyNotification = @"RCTTVDisableMenuKeyNotification";
|
|
25
|
+
|
|
26
|
+
NSString *const RCTTVEnablePanGestureNotification = @"RCTTVEnablePanGestureNotification";
|
|
27
|
+
NSString *const RCTTVDisablePanGestureNotification = @"RCTTVDisablePanGestureNotification";
|
|
28
|
+
|
|
23
29
|
NSString *const RCTTVRemoteEventMenu = @"menu";
|
|
24
30
|
NSString *const RCTTVRemoteEventPlayPause = @"playPause";
|
|
25
31
|
NSString *const RCTTVRemoteEventSelect = @"select";
|
|
@@ -40,10 +46,13 @@ NSString *const RCTTVRemoteEventSwipeRight = @"swipeRight";
|
|
|
40
46
|
NSString *const RCTTVRemoteEventSwipeUp = @"swipeUp";
|
|
41
47
|
NSString *const RCTTVRemoteEventSwipeDown = @"swipeDown";
|
|
42
48
|
|
|
49
|
+
NSString *const RCTTVRemoteEventPan = @"pan";
|
|
50
|
+
|
|
43
51
|
@interface RCTTVRemoteHandler()
|
|
44
52
|
|
|
45
53
|
@property (nonatomic, copy, readonly) NSDictionary *tvRemoteGestureRecognizers;
|
|
46
54
|
@property (nonatomic, strong) UITapGestureRecognizer *tvMenuKeyRecognizer;
|
|
55
|
+
@property (nonatomic, strong) UIPanGestureRecognizer *tvPanGestureRecognizer;
|
|
47
56
|
@property (nonatomic, weak) UIView *view;
|
|
48
57
|
|
|
49
58
|
@end
|
|
@@ -53,9 +62,10 @@ NSString *const RCTTVRemoteEventSwipeDown = @"swipeDown";
|
|
|
53
62
|
}
|
|
54
63
|
|
|
55
64
|
#pragma mark -
|
|
56
|
-
#pragma mark Static
|
|
65
|
+
#pragma mark Static settings for menu key and pan gesture
|
|
57
66
|
|
|
58
67
|
static __volatile BOOL __useMenuKey = NO;
|
|
68
|
+
static __volatile BOOL __usePanGesture = NO;
|
|
59
69
|
|
|
60
70
|
+ (BOOL)useMenuKey
|
|
61
71
|
{
|
|
@@ -67,6 +77,16 @@ static __volatile BOOL __useMenuKey = NO;
|
|
|
67
77
|
__useMenuKey = useMenuKey;
|
|
68
78
|
}
|
|
69
79
|
|
|
80
|
+
+ (BOOL)usePanGesture
|
|
81
|
+
{
|
|
82
|
+
return __usePanGesture;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
+ (void)setUsePanGesture:(BOOL)usePanGesture
|
|
86
|
+
{
|
|
87
|
+
__usePanGesture = usePanGesture;
|
|
88
|
+
}
|
|
89
|
+
|
|
70
90
|
#pragma mark -
|
|
71
91
|
#pragma mark Public methods
|
|
72
92
|
|
|
@@ -92,10 +112,14 @@ static __volatile BOOL __useMenuKey = NO;
|
|
|
92
112
|
{
|
|
93
113
|
_tvRemoteGestureRecognizers = [NSMutableDictionary dictionary];
|
|
94
114
|
// Recognizers for Apple TV remote buttons
|
|
115
|
+
|
|
95
116
|
// Menu recognizer
|
|
96
117
|
self.tvMenuKeyRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(menuPressed:)];
|
|
97
118
|
self.tvMenuKeyRecognizer.allowedPressTypes = @[@(UIPressTypeMenu)];
|
|
98
119
|
|
|
120
|
+
// Pan gesture recognizer
|
|
121
|
+
self.tvPanGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panned:)];
|
|
122
|
+
|
|
99
123
|
// Play/Pause
|
|
100
124
|
[self addTapGestureRecognizerWithSelector:@selector(playPausePressed:)
|
|
101
125
|
pressType:UIPressTypePlayPause
|
|
@@ -169,7 +193,6 @@ static __volatile BOOL __useMenuKey = NO;
|
|
|
169
193
|
[self addSwipeGestureRecognizerWithSelector:@selector(swipedRight:)
|
|
170
194
|
direction:UISwipeGestureRecognizerDirectionRight
|
|
171
195
|
name:RCTTVRemoteEventSwipeRight];
|
|
172
|
-
|
|
173
196
|
}
|
|
174
197
|
|
|
175
198
|
- (void)attachToView
|
|
@@ -183,6 +206,17 @@ static __volatile BOOL __useMenuKey = NO;
|
|
|
183
206
|
selector:@selector(disableTVMenuKey)
|
|
184
207
|
name:RCTTVDisableMenuKeyNotification
|
|
185
208
|
object:nil];
|
|
209
|
+
|
|
210
|
+
[[NSNotificationCenter defaultCenter] addObserver:self
|
|
211
|
+
selector:@selector(enableTVPanGesture)
|
|
212
|
+
name:RCTTVEnablePanGestureNotification
|
|
213
|
+
object:nil];
|
|
214
|
+
|
|
215
|
+
[[NSNotificationCenter defaultCenter] addObserver:self
|
|
216
|
+
selector:@selector(disableTVPanGesture)
|
|
217
|
+
name:RCTTVDisablePanGestureNotification
|
|
218
|
+
object:nil];
|
|
219
|
+
|
|
186
220
|
for (NSString *key in [self.tvRemoteGestureRecognizers allKeys]) {
|
|
187
221
|
[_view addGestureRecognizer:self.tvRemoteGestureRecognizers[key]];
|
|
188
222
|
}
|
|
@@ -191,6 +225,11 @@ static __volatile BOOL __useMenuKey = NO;
|
|
|
191
225
|
} else {
|
|
192
226
|
[self disableTVMenuKey];
|
|
193
227
|
}
|
|
228
|
+
if ([RCTTVRemoteHandler usePanGesture]) {
|
|
229
|
+
[self enableTVPanGesture];
|
|
230
|
+
} else {
|
|
231
|
+
[self disableTVPanGesture];
|
|
232
|
+
}
|
|
194
233
|
}
|
|
195
234
|
|
|
196
235
|
- (void)detachFromView
|
|
@@ -198,6 +237,9 @@ static __volatile BOOL __useMenuKey = NO;
|
|
|
198
237
|
if ([[self.view gestureRecognizers] containsObject:self.tvMenuKeyRecognizer]) {
|
|
199
238
|
[self.view removeGestureRecognizer:self.tvMenuKeyRecognizer];
|
|
200
239
|
}
|
|
240
|
+
if ([[self.view gestureRecognizers] containsObject:self.tvPanGestureRecognizer]) {
|
|
241
|
+
[self.view removeGestureRecognizer:self.tvPanGestureRecognizer];
|
|
242
|
+
}
|
|
201
243
|
for (NSString *key in [self.tvRemoteGestureRecognizers allKeys]) {
|
|
202
244
|
[_view removeGestureRecognizer:self.tvRemoteGestureRecognizers[key]];
|
|
203
245
|
}
|
|
@@ -207,7 +249,13 @@ static __volatile BOOL __useMenuKey = NO;
|
|
|
207
249
|
[[NSNotificationCenter defaultCenter] removeObserver:self
|
|
208
250
|
name:RCTTVDisableMenuKeyNotification
|
|
209
251
|
object:nil];
|
|
210
|
-
|
|
252
|
+
[[NSNotificationCenter defaultCenter] removeObserver:self
|
|
253
|
+
name:RCTTVEnablePanGestureNotification
|
|
254
|
+
object:nil];
|
|
255
|
+
[[NSNotificationCenter defaultCenter] removeObserver:self
|
|
256
|
+
name:RCTTVDisablePanGestureNotification
|
|
257
|
+
object:nil];
|
|
258
|
+
|
|
211
259
|
}
|
|
212
260
|
|
|
213
261
|
# pragma mark -
|
|
@@ -231,27 +279,45 @@ static __volatile BOOL __useMenuKey = NO;
|
|
|
231
279
|
});
|
|
232
280
|
}
|
|
233
281
|
|
|
282
|
+
- (void)enableTVPanGesture
|
|
283
|
+
{
|
|
284
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
285
|
+
if (![[self.view gestureRecognizers] containsObject:self.tvPanGestureRecognizer]) {
|
|
286
|
+
[self.view addGestureRecognizer:self.tvPanGestureRecognizer];
|
|
287
|
+
}
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
- (void)disableTVPanGesture
|
|
292
|
+
{
|
|
293
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
294
|
+
if ([[self.view gestureRecognizers] containsObject:self.tvPanGestureRecognizer]) {
|
|
295
|
+
[self.view removeGestureRecognizer:self.tvPanGestureRecognizer];
|
|
296
|
+
}
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
|
|
234
300
|
# pragma mark -
|
|
235
301
|
# pragma mark Gesture handlers
|
|
236
302
|
|
|
237
303
|
- (void)playPausePressed:(UIGestureRecognizer *)r
|
|
238
304
|
{
|
|
239
|
-
[self sendAppleTVEvent:RCTTVRemoteEventPlayPause
|
|
305
|
+
[self sendAppleTVEvent:RCTTVRemoteEventPlayPause];
|
|
240
306
|
}
|
|
241
307
|
|
|
242
308
|
- (void)menuPressed:(UIGestureRecognizer *)r
|
|
243
309
|
{
|
|
244
|
-
[self sendAppleTVEvent:RCTTVRemoteEventMenu
|
|
310
|
+
[self sendAppleTVEvent:RCTTVRemoteEventMenu];
|
|
245
311
|
}
|
|
246
312
|
|
|
247
313
|
- (void)selectPressed:(UIGestureRecognizer *)r
|
|
248
314
|
{
|
|
249
|
-
[self sendAppleTVEvent:RCTTVRemoteEventSelect
|
|
315
|
+
[self sendAppleTVEvent:RCTTVRemoteEventSelect];
|
|
250
316
|
}
|
|
251
317
|
|
|
252
318
|
- (void)longPlayPausePressed:(UIGestureRecognizer *)r
|
|
253
319
|
{
|
|
254
|
-
[self sendAppleTVEvent:RCTTVRemoteEventLongPlayPause
|
|
320
|
+
[self sendAppleTVEvent:RCTTVRemoteEventLongPlayPause];
|
|
255
321
|
|
|
256
322
|
#if RCT_DEV
|
|
257
323
|
// If shake to show is enabled on device, use long play/pause event to show dev menu
|
|
@@ -261,57 +327,73 @@ static __volatile BOOL __useMenuKey = NO;
|
|
|
261
327
|
|
|
262
328
|
- (void)longSelectPressed:(UIGestureRecognizer *)r
|
|
263
329
|
{
|
|
264
|
-
[self sendAppleTVEvent:RCTTVRemoteEventLongSelect
|
|
330
|
+
[self sendAppleTVEvent:RCTTVRemoteEventLongSelect];
|
|
265
331
|
}
|
|
266
332
|
|
|
267
333
|
- (void)swipedUp:(UIGestureRecognizer *)r
|
|
268
334
|
{
|
|
269
|
-
[self sendAppleTVEvent:RCTTVRemoteEventSwipeUp
|
|
335
|
+
[self sendAppleTVEvent:RCTTVRemoteEventSwipeUp];
|
|
270
336
|
}
|
|
271
337
|
|
|
272
338
|
- (void)swipedDown:(UIGestureRecognizer *)r
|
|
273
339
|
{
|
|
274
|
-
[self sendAppleTVEvent:RCTTVRemoteEventSwipeDown
|
|
340
|
+
[self sendAppleTVEvent:RCTTVRemoteEventSwipeDown];
|
|
275
341
|
}
|
|
276
342
|
|
|
277
343
|
- (void)swipedLeft:(UIGestureRecognizer *)r
|
|
278
344
|
{
|
|
279
|
-
[self sendAppleTVEvent:RCTTVRemoteEventSwipeLeft
|
|
345
|
+
[self sendAppleTVEvent:RCTTVRemoteEventSwipeLeft];
|
|
280
346
|
}
|
|
281
347
|
|
|
282
348
|
- (void)swipedRight:(UIGestureRecognizer *)r
|
|
283
349
|
{
|
|
284
|
-
[self sendAppleTVEvent:RCTTVRemoteEventSwipeRight
|
|
350
|
+
[self sendAppleTVEvent:RCTTVRemoteEventSwipeRight];
|
|
285
351
|
}
|
|
286
352
|
|
|
287
353
|
- (void)tappedUp:(UIGestureRecognizer *)r
|
|
288
354
|
{
|
|
289
|
-
[self sendAppleTVEvent:RCTTVRemoteEventUp
|
|
355
|
+
[self sendAppleTVEvent:RCTTVRemoteEventUp];
|
|
290
356
|
}
|
|
291
357
|
|
|
292
358
|
- (void)tappedDown:(UIGestureRecognizer *)r
|
|
293
359
|
{
|
|
294
|
-
[self sendAppleTVEvent:RCTTVRemoteEventDown
|
|
360
|
+
[self sendAppleTVEvent:RCTTVRemoteEventDown];
|
|
295
361
|
}
|
|
296
362
|
|
|
297
363
|
- (void)tappedPageUp:(UIGestureRecognizer *)r
|
|
298
364
|
{
|
|
299
|
-
[self sendAppleTVEvent:RCTTVRemoteEventPageUp
|
|
365
|
+
[self sendAppleTVEvent:RCTTVRemoteEventPageUp];
|
|
300
366
|
}
|
|
301
367
|
|
|
302
368
|
- (void)tappedPageDown:(UIGestureRecognizer *)r
|
|
303
369
|
{
|
|
304
|
-
[self sendAppleTVEvent:RCTTVRemoteEventPageDown
|
|
370
|
+
[self sendAppleTVEvent:RCTTVRemoteEventPageDown];
|
|
305
371
|
}
|
|
306
372
|
|
|
307
373
|
- (void)tappedLeft:(UIGestureRecognizer *)r
|
|
308
374
|
{
|
|
309
|
-
[self sendAppleTVEvent:RCTTVRemoteEventLeft
|
|
375
|
+
[self sendAppleTVEvent:RCTTVRemoteEventLeft];
|
|
310
376
|
}
|
|
311
377
|
|
|
312
378
|
- (void)tappedRight:(UIGestureRecognizer *)r
|
|
313
379
|
{
|
|
314
|
-
[self sendAppleTVEvent:RCTTVRemoteEventRight
|
|
380
|
+
[self sendAppleTVEvent:RCTTVRemoteEventRight];
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
- (void)panned:(UIPanGestureRecognizer *)gesture {
|
|
384
|
+
UIView *rootView = [self view];
|
|
385
|
+
NSString *gestureState = [self recognizerStateToString:gesture.state];
|
|
386
|
+
CGPoint translation = [gesture translationInView:rootView];
|
|
387
|
+
CGPoint velocity = [gesture velocityInView:rootView];
|
|
388
|
+
|
|
389
|
+
if (gestureState) {
|
|
390
|
+
[self sendAppleTVEvent:RCTTVRemoteEventPan withBody:@{@"state": gestureState,
|
|
391
|
+
@"x": [NSNumber numberWithInt:translation.x],
|
|
392
|
+
@"y": [NSNumber numberWithInt:translation.y],
|
|
393
|
+
@"velocityX": [NSNumber numberWithFloat:velocity.x],
|
|
394
|
+
@"velocityY": [NSNumber numberWithFloat:velocity.y],
|
|
395
|
+
}];
|
|
396
|
+
}
|
|
315
397
|
}
|
|
316
398
|
|
|
317
399
|
#pragma mark -
|
|
@@ -345,10 +427,36 @@ static __volatile BOOL __useMenuKey = NO;
|
|
|
345
427
|
_tvRemoteGestureRecognizers[name] = recognizer;
|
|
346
428
|
}
|
|
347
429
|
|
|
348
|
-
|
|
430
|
+
#pragma mark -
|
|
431
|
+
#pragma mark Helper methods
|
|
432
|
+
|
|
433
|
+
- (void)sendAppleTVEvent:(NSString *)eventType
|
|
349
434
|
{
|
|
435
|
+
[self sendAppleTVEvent:eventType withBody: nil];
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
- (void)sendAppleTVEvent:(NSString *)eventType
|
|
439
|
+
withBody:(NSDictionary * __nullable)body
|
|
440
|
+
{
|
|
441
|
+
NSDictionary *payload = (body != nil) ?
|
|
442
|
+
@{@"eventType" : eventType, @"body": body} :
|
|
443
|
+
@{@"eventType" : eventType};
|
|
444
|
+
|
|
350
445
|
[[NSNotificationCenter defaultCenter] postNotificationName:@"RCTTVNavigationEventNotification"
|
|
351
|
-
object
|
|
446
|
+
object:payload];
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
- (NSString *)recognizerStateToString:(UIGestureRecognizerState)state {
|
|
450
|
+
switch (state) {
|
|
451
|
+
case UIGestureRecognizerStateBegan:
|
|
452
|
+
return @"Began";
|
|
453
|
+
case UIGestureRecognizerStateChanged:
|
|
454
|
+
return @"Changed";
|
|
455
|
+
case UIGestureRecognizerStateEnded:
|
|
456
|
+
return @"Ended";
|
|
457
|
+
default:
|
|
458
|
+
return nil;
|
|
459
|
+
}
|
|
352
460
|
}
|
|
353
461
|
|
|
354
462
|
@end
|
package/React/Base/RCTVersion.m
CHANGED
|
@@ -35,7 +35,7 @@ using namespace facebook::react;
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
- (NSArray<id<UIFocusEnvironment>> *)preferredFocusEnvironments {
|
|
38
|
-
if (self.reactPreferredFocusedView) {
|
|
38
|
+
if (self.reactPreferredFocusedView && self.reactPreferredFocusedView.window != nil) {
|
|
39
39
|
return @[self.reactPreferredFocusedView];
|
|
40
40
|
}
|
|
41
41
|
return [super preferredFocusEnvironments];
|
|
@@ -24,4 +24,16 @@ RCT_EXPORT_METHOD(disableTVMenuKey)
|
|
|
24
24
|
[[NSNotificationCenter defaultCenter] postNotificationName:RCTTVDisableMenuKeyNotification object:nil];
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
RCT_EXPORT_METHOD(enableTVPanGesture)
|
|
28
|
+
{
|
|
29
|
+
[RCTTVRemoteHandler setUsePanGesture:YES];
|
|
30
|
+
[[NSNotificationCenter defaultCenter] postNotificationName:RCTTVEnablePanGestureNotification object:nil];
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
RCT_EXPORT_METHOD(disableTVPanGesture)
|
|
34
|
+
{
|
|
35
|
+
[RCTTVRemoteHandler setUsePanGesture:NO];
|
|
36
|
+
[[NSNotificationCenter defaultCenter] postNotificationName:RCTTVDisablePanGestureNotification object:nil];
|
|
37
|
+
}
|
|
38
|
+
|
|
27
39
|
@end
|
|
@@ -292,10 +292,13 @@ task androidSourcesJar(type: Jar) {
|
|
|
292
292
|
android {
|
|
293
293
|
compileSdkVersion 31
|
|
294
294
|
|
|
295
|
-
// Used to override the NDK path
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
295
|
+
// Used to override the NDK path/version on internal CI or by allowing
|
|
296
|
+
// users to customize the NDK path/version from their root project (e.g. for M1 support)
|
|
297
|
+
if (rootProject.hasProperty("ndkPath")) {
|
|
298
|
+
ndkPath rootProject.ext.ndkPath
|
|
299
|
+
}
|
|
300
|
+
if (rootProject.hasProperty("ndkVersion")) {
|
|
301
|
+
ndkVersion rootProject.ext.ndkVersion
|
|
299
302
|
}
|
|
300
303
|
|
|
301
304
|
defaultConfig {
|
|
@@ -329,6 +332,20 @@ android {
|
|
|
329
332
|
// This flag will suppress "fcntl(): Bad file descriptor" warnings on local builds.
|
|
330
333
|
arguments "--output-sync=none"
|
|
331
334
|
}
|
|
335
|
+
|
|
336
|
+
// Note: On Windows there are limits on number of character in file paths and in command lines
|
|
337
|
+
// Ref: https://android.googlesource.com/platform/ndk/+/master/docs/BuildSystemMaintainers.md#Path-Length-Limits
|
|
338
|
+
// NDK allows circumventing command line limits using response(RSP) files as inputs using NDK_APP_SHORT_COMMANDS flag.
|
|
339
|
+
//
|
|
340
|
+
// Windows can support long file paths if configured through registry or by prefixing all file paths with a special character sequence
|
|
341
|
+
// The latter requires changes in NDK. And there are tools in NDK (AR) which is not able to handle long paths (>256) even after setting the registry key.
|
|
342
|
+
// The new architecutre source tree is too deep, and the object file naming conventions in NDK makes the matters worse, by producing incredibly long file paths.
|
|
343
|
+
// Other solutions such as symlinking source code etc. didn't work as expected, and makes the build scripts complicated and hard to manage.
|
|
344
|
+
// This change temporarily works around the issue by placing the temporary build outputs as short a path as possible within the project path.
|
|
345
|
+
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
|
346
|
+
arguments "NDK_OUT=${rootProject.projectDir.getParent()}\\.cxx",
|
|
347
|
+
"NDK_APP_SHORT_COMMANDS=true"
|
|
348
|
+
}
|
|
332
349
|
}
|
|
333
350
|
}
|
|
334
351
|
ndk {
|
|
@@ -1502,9 +1502,9 @@ ansi-escapes@^4.2.1:
|
|
|
1502
1502
|
type-fest "^0.21.3"
|
|
1503
1503
|
|
|
1504
1504
|
ansi-regex@^4.1.0:
|
|
1505
|
-
version "4.1.
|
|
1506
|
-
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.
|
|
1507
|
-
integrity sha512-
|
|
1505
|
+
version "4.1.1"
|
|
1506
|
+
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed"
|
|
1507
|
+
integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==
|
|
1508
1508
|
|
|
1509
1509
|
ansi-regex@^5.0.0:
|
|
1510
1510
|
version "5.0.0"
|
|
@@ -4152,9 +4152,9 @@ minimatch@^3.0.4:
|
|
|
4152
4152
|
brace-expansion "^1.1.7"
|
|
4153
4153
|
|
|
4154
4154
|
minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5:
|
|
4155
|
-
version "1.2.
|
|
4156
|
-
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.
|
|
4157
|
-
integrity sha512-
|
|
4155
|
+
version "1.2.6"
|
|
4156
|
+
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
|
|
4157
|
+
integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
|
|
4158
4158
|
|
|
4159
4159
|
mississippi@^3.0.0:
|
|
4160
4160
|
version "3.0.0"
|
|
Binary file
|
package/android/com/facebook/react/react-native/0.68.1-0/react-native-0.68.1-0-sources.jar.md5
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
a4b49cd9a99108192f6b13751c9e1867
|
package/android/com/facebook/react/react-native/0.68.1-0/react-native-0.68.1-0-sources.jar.sha1
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
60ea53d0c0a552fef6466c9bf7ba7d35ec533027
|
package/android/com/facebook/react/react-native/0.68.1-0/react-native-0.68.1-0-sources.jar.sha256
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
89dd1687a2e294efbdbb8ac0f2d5fb1eb918357241379e8ebfbef10886267667
|
package/android/com/facebook/react/react-native/0.68.1-0/react-native-0.68.1-0-sources.jar.sha512
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
5544c3278443b89880d9a2870ae0f36b412d54ee287a9c603015f48ea7296b6dd761f6c05157d486adebc5d0683c0801aa0146fe49a81d8f5ada55010171ded5
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
014f5939c08dca2b3daad451e988b516
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
47e93c57dff21b477d3a5c989fac1907e401d2e0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
eeaf129e2bcb06fd7da630d18b6a24c2adc1f51144594bba59c27567bd6b9f75
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ad85e1cec19d8e898d2d138f6d5c6eca1fc409b26137866a4848aea5b1888f6e278ca772404477d21fb740dd7e78eb73f21ba78122d2625006b2e9b77fcb615f
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"component": {
|
|
4
4
|
"group": "com.facebook.react",
|
|
5
5
|
"module": "react-native",
|
|
6
|
-
"version": "0.68.
|
|
6
|
+
"version": "0.68.1-0",
|
|
7
7
|
"attributes": {
|
|
8
8
|
"org.gradle.status": "release"
|
|
9
9
|
}
|
|
@@ -131,13 +131,13 @@
|
|
|
131
131
|
],
|
|
132
132
|
"files": [
|
|
133
133
|
{
|
|
134
|
-
"name": "react-native-0.68.
|
|
135
|
-
"url": "react-native-0.68.
|
|
136
|
-
"size":
|
|
137
|
-
"sha512": "
|
|
138
|
-
"sha256": "
|
|
139
|
-
"sha1": "
|
|
140
|
-
"md5": "
|
|
134
|
+
"name": "react-native-0.68.1-0.aar",
|
|
135
|
+
"url": "react-native-0.68.1-0.aar",
|
|
136
|
+
"size": 16399352,
|
|
137
|
+
"sha512": "ad85e1cec19d8e898d2d138f6d5c6eca1fc409b26137866a4848aea5b1888f6e278ca772404477d21fb740dd7e78eb73f21ba78122d2625006b2e9b77fcb615f",
|
|
138
|
+
"sha256": "eeaf129e2bcb06fd7da630d18b6a24c2adc1f51144594bba59c27567bd6b9f75",
|
|
139
|
+
"sha1": "47e93c57dff21b477d3a5c989fac1907e401d2e0",
|
|
140
|
+
"md5": "014f5939c08dca2b3daad451e988b516"
|
|
141
141
|
}
|
|
142
142
|
]
|
|
143
143
|
},
|
|
@@ -258,13 +258,13 @@
|
|
|
258
258
|
],
|
|
259
259
|
"files": [
|
|
260
260
|
{
|
|
261
|
-
"name": "react-native-0.68.
|
|
262
|
-
"url": "react-native-0.68.
|
|
263
|
-
"size":
|
|
264
|
-
"sha512": "
|
|
265
|
-
"sha256": "
|
|
266
|
-
"sha1": "
|
|
267
|
-
"md5": "
|
|
261
|
+
"name": "react-native-0.68.1-0.aar",
|
|
262
|
+
"url": "react-native-0.68.1-0.aar",
|
|
263
|
+
"size": 16399352,
|
|
264
|
+
"sha512": "ad85e1cec19d8e898d2d138f6d5c6eca1fc409b26137866a4848aea5b1888f6e278ca772404477d21fb740dd7e78eb73f21ba78122d2625006b2e9b77fcb615f",
|
|
265
|
+
"sha256": "eeaf129e2bcb06fd7da630d18b6a24c2adc1f51144594bba59c27567bd6b9f75",
|
|
266
|
+
"sha1": "47e93c57dff21b477d3a5c989fac1907e401d2e0",
|
|
267
|
+
"md5": "014f5939c08dca2b3daad451e988b516"
|
|
268
268
|
}
|
|
269
269
|
]
|
|
270
270
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
b51090965a4962303b28e544d74d1171
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
61f16a7880116a37a073d138b8793df0ab749ab8
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
97ad75b46df27ecc1e84054206e3444d9e06b68dea2b3c05588abaefcabbecea
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
c524c27d9377773c8f35d46ac13645b5a52f2c079c43d301e9c446b4306b123d51d972cdd0ba07cf66de5c8816ca2c0d5975fb926bd46f70e8d905adf563a217
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
<modelVersion>4.0.0</modelVersion>
|
|
10
10
|
<groupId>com.facebook.react</groupId>
|
|
11
11
|
<artifactId>react-native</artifactId>
|
|
12
|
-
<version>0.68.
|
|
12
|
+
<version>0.68.1-0</version>
|
|
13
13
|
<packaging>aar</packaging>
|
|
14
14
|
<name>ReactNative</name>
|
|
15
15
|
<description>A framework for building native apps with React</description>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
381bcb169a745e481e55f5e062c2ec48
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
da6ab1159eb4999f5cc03ca86812866a840b52be
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
321eb17df316aad8ca94a1628f7d6ef867cc8c0dca9f81d85064ecd7d979e3f3
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
d1afa19f14fcafcc2b2fb7f26c7e2669b0a46e2ffb357b8faee0e9a791a7d70acb092759da3b4523cacaa779eaa21998e430f143a5e5eb53d5b308bbf98800c1
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
<groupId>com.facebook.react</groupId>
|
|
4
4
|
<artifactId>react-native</artifactId>
|
|
5
5
|
<versioning>
|
|
6
|
-
<latest>0.68.
|
|
7
|
-
<release>0.68.
|
|
6
|
+
<latest>0.68.1-0</latest>
|
|
7
|
+
<release>0.68.1-0</release>
|
|
8
8
|
<versions>
|
|
9
|
-
<version>0.68.
|
|
9
|
+
<version>0.68.1-0</version>
|
|
10
10
|
</versions>
|
|
11
|
-
<lastUpdated>
|
|
11
|
+
<lastUpdated>20220419010257</lastUpdated>
|
|
12
12
|
</versioning>
|
|
13
13
|
</metadata>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
ac56211a2072ce90ba4f6d310e7741ba
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
fc9553a84a3fc32f43a5ceda0424b2808faa2024
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
2ac3f0a2214b593309b37bb82a1ff50c1a43c3d98735b45366c91ee830097643
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
ded2ba86349f7b5aea24adec9031e6fd7b7d2c74c563bd9ea5795e2599ea47d58e3d34c7a60a157f4346dfd9335f242d61e70fdee329f945a1e293beeb432084
|
package/index.js
CHANGED
|
@@ -83,7 +83,7 @@ import typeof * as TurboModuleRegistry from './Libraries/TurboModule/TurboModule
|
|
|
83
83
|
import typeof TabBarIOS from './Libraries/Components/TabBarIOS/TabBarIOS';
|
|
84
84
|
import typeof TVEventHandler from './Libraries/Components/AppleTV/TVEventHandler';
|
|
85
85
|
import typeof TVFocusGuideView from './Libraries/Components/AppleTV/TVFocusGuideView';
|
|
86
|
-
import typeof
|
|
86
|
+
import typeof TVEventControl from './Libraries/Components/AppleTV/TVEventControl';
|
|
87
87
|
import typeof TVTextScrollView from './Libraries/Components/AppleTV/TVTextScrollView';
|
|
88
88
|
import typeof UIManager from './Libraries/ReactNative/UIManager';
|
|
89
89
|
import typeof useColorScheme from './Libraries/Utilities/useColorScheme';
|
|
@@ -403,6 +403,9 @@ module.exports = {
|
|
|
403
403
|
get TurboModuleRegistry(): TurboModuleRegistry {
|
|
404
404
|
return require('./Libraries/TurboModule/TurboModuleRegistry');
|
|
405
405
|
},
|
|
406
|
+
get TVEventControl(): TVEventControl {
|
|
407
|
+
return require('./Libraries/Components/AppleTV/TVEventControl');
|
|
408
|
+
},
|
|
406
409
|
get TVEventHandler(): TVEventHandler {
|
|
407
410
|
return require('./Libraries/Components/AppleTV/TVEventHandler');
|
|
408
411
|
},
|
|
@@ -410,7 +413,11 @@ module.exports = {
|
|
|
410
413
|
return require('./Libraries/Components/AppleTV/TVFocusGuideView');
|
|
411
414
|
},
|
|
412
415
|
get TVMenuControl(): TVMenuControl {
|
|
413
|
-
|
|
416
|
+
warnOnce(
|
|
417
|
+
'TVMenuControl-moved',
|
|
418
|
+
'TVMenuControl has been moved to TVEventControl, and now supports enabling/disabling both menu key events and pan gesture events.'
|
|
419
|
+
);
|
|
420
|
+
return require('./Libraries/Components/AppleTV/TVEventControl');
|
|
414
421
|
},
|
|
415
422
|
get TVTextScrollView(): TVTextScrollView {
|
|
416
423
|
return require('./Libraries/Components/AppleTV/TVTextScrollView');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-tvos",
|
|
3
|
-
"version": "0.68.
|
|
3
|
+
"version": "0.68.1-0",
|
|
4
4
|
"bin": "./cli.js",
|
|
5
5
|
"description": "A framework for building native apps using React",
|
|
6
6
|
"license": "MIT",
|
|
@@ -118,13 +118,13 @@
|
|
|
118
118
|
"promise": "^8.0.3",
|
|
119
119
|
"prop-types": "^15.7.2",
|
|
120
120
|
"react-devtools-core": "^4.23.0",
|
|
121
|
-
"react-native-gradle-plugin": "^0.0.
|
|
121
|
+
"react-native-gradle-plugin": "^0.0.6",
|
|
122
122
|
"react-refresh": "^0.4.0",
|
|
123
123
|
"react-shallow-renderer": "16.14.1",
|
|
124
124
|
"regenerator-runtime": "^0.13.2",
|
|
125
125
|
"scheduler": "^0.20.2",
|
|
126
126
|
"stacktrace-parser": "^0.1.3",
|
|
127
|
-
"use-subscription": "
|
|
127
|
+
"use-subscription": ">=1.0.0 <1.6.0",
|
|
128
128
|
"whatwg-fetch": "^3.0.0",
|
|
129
129
|
"ws": "^6.1.4",
|
|
130
130
|
"react-native-codegen": "^0.0.13"
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
"@react-native-community/eslint-plugin": "*",
|
|
138
138
|
"@react-native/eslint-plugin-specs": ">0.0.2",
|
|
139
139
|
"@reactions/component": "^2.0.2",
|
|
140
|
-
"async": "^2.
|
|
140
|
+
"async": "^3.2.2",
|
|
141
141
|
"babel-eslint": "^10.1.0",
|
|
142
142
|
"clang-format": "^1.2.4",
|
|
143
143
|
"connect": "^3.6.5",
|
package/template/Gemfile.lock
CHANGED
|
@@ -45,7 +45,7 @@ GEM
|
|
|
45
45
|
public_suffix (~> 4.0)
|
|
46
46
|
typhoeus (~> 1.0)
|
|
47
47
|
cocoapods-deintegrate (1.0.5)
|
|
48
|
-
cocoapods-downloader (1.6.
|
|
48
|
+
cocoapods-downloader (1.6.3)
|
|
49
49
|
cocoapods-plugins (1.0.0)
|
|
50
50
|
nap
|
|
51
51
|
cocoapods-search (1.0.1)
|
|
@@ -71,7 +71,7 @@ GEM
|
|
|
71
71
|
nanaimo (0.3.0)
|
|
72
72
|
nap (1.1.0)
|
|
73
73
|
netrc (0.11.0)
|
|
74
|
-
public_suffix (4.0.
|
|
74
|
+
public_suffix (4.0.7)
|
|
75
75
|
rexml (3.2.5)
|
|
76
76
|
ruby-macho (2.5.1)
|
|
77
77
|
typhoeus (1.4.0)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
apply plugin: "com.android.application"
|
|
2
2
|
|
|
3
3
|
import com.android.build.OutputFile
|
|
4
|
+
import org.apache.tools.ant.taskdefs.condition.Os
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
|
|
@@ -157,6 +158,17 @@ android {
|
|
|
157
158
|
// Make sure this target name is the same you specify inside the
|
|
158
159
|
// src/main/jni/Android.mk file for the `LOCAL_MODULE` variable.
|
|
159
160
|
targets "helloworld_appmodules"
|
|
161
|
+
|
|
162
|
+
// Fix for windows limit on number of character in file paths and in command lines
|
|
163
|
+
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
|
164
|
+
arguments "NDK_OUT=${rootProject.projectDir.getParent()}\\.cxx",
|
|
165
|
+
"NDK_APP_SHORT_COMMANDS=true"
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
if (!enableSeparateBuildPerCPUArchitecture) {
|
|
170
|
+
ndk {
|
|
171
|
+
abiFilters (*reactNativeArchitectures())
|
|
160
172
|
}
|
|
161
173
|
}
|
|
162
174
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import org.apache.tools.ant.taskdefs.condition.Os
|
|
2
|
+
|
|
1
3
|
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
|
2
4
|
|
|
3
5
|
buildscript {
|
|
@@ -6,7 +8,18 @@ buildscript {
|
|
|
6
8
|
minSdkVersion = 21
|
|
7
9
|
compileSdkVersion = 31
|
|
8
10
|
targetSdkVersion = 31
|
|
9
|
-
|
|
11
|
+
|
|
12
|
+
if (System.properties['os.arch'] == "aarch64") {
|
|
13
|
+
// For M1 Users we need to use the NDK 24 which added support for aarch64
|
|
14
|
+
ndkVersion = "24.0.8215888"
|
|
15
|
+
} else if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
|
16
|
+
// For Android Users, we need to use NDK 23, otherwise the build will
|
|
17
|
+
// fail due to paths longer than the OS limit
|
|
18
|
+
ndkVersion = "23.1.7779620"
|
|
19
|
+
} else {
|
|
20
|
+
// Otherwise we default to the side-by-side NDK version from AGP.
|
|
21
|
+
ndkVersion = "21.4.7075529"
|
|
22
|
+
}
|
|
10
23
|
}
|
|
11
24
|
repositories {
|
|
12
25
|
google()
|
package/template/package.json
CHANGED
package/android/com/facebook/react/react-native/0.68.0-0/react-native-0.68.0-0-sources.jar.md5
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
69a7966c4d3f06ac09ea047618e54788
|
package/android/com/facebook/react/react-native/0.68.0-0/react-native-0.68.0-0-sources.jar.sha1
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
4ffdbfa123cd164ce4310cb218e66df22d31de82
|
package/android/com/facebook/react/react-native/0.68.0-0/react-native-0.68.0-0-sources.jar.sha256
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
2628f5a2ac1d575257f0904e16b4d5fd789a83599c81003eed1f7362e65375a9
|
package/android/com/facebook/react/react-native/0.68.0-0/react-native-0.68.0-0-sources.jar.sha512
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
332870ddaa66eac0bf6108ced5248d092d2b8239653d786e034975133f5213319187a6aaf6c64d2a8dd8577ceeac794511d4e2abae5d5a132bce8bc26437285d
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
857b228ad236bf2c4da55bc46ee3bfde
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
fc23f8750c2a5fa717815c530d0661e0bffb503c
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
f516e5f35994251abf453701e9f02fe831b7b3367e68e1c82014cfcee1531270
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
43a9bde69dd33deb2f170c4caf18aaba73cffc570303eef2859d3ee76131bc757859e2bff88a6c901ff8f698259a8e97d0d2779ca32c2e7da6a9033e885e20e0
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
f148ee6ef1669b5371862b17c19a17cf
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
2411084d038ca22756938a1074ef4f3929b832f6
|
package/android/com/facebook/react/react-native/0.68.0-0/react-native-0.68.0-0.module.sha256
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
780c977da4b6a73051b40bbee7798a61d091fd8dd6db718230ad9960797a6f8f
|
package/android/com/facebook/react/react-native/0.68.0-0/react-native-0.68.0-0.module.sha512
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
4879741e17b3f04247f14b5ebc046fafafb8c08cff46f8b26bf7d93b111c476c67a0bd690d02f248d3ff4020ad8f583027b77262dd14d45209ef43577590bb22
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
39930e51726be539bab844c7719e46e7
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0370ec409bba4de8e21c095a7755fe3ec7ae6119
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
b14988652183f35e7f93cb148de040bfda45701a666285d48ab68ca215e0499b
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
7951ee4dc675c8a0dabc049c66a8f834287ef4dd94d7d45b7c4b2e2afc76c6bee958c1499846ff6bfcf191f22b1cb49eb734fad349709ffd15ff89ec4f1b5165
|