react-native-orientation-director 2.6.5 → 3.0.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/README.md +11 -33
- package/android/build.gradle +19 -79
- package/android/src/main/AndroidManifest.xml +1 -2
- package/android/src/{newarch → main/java/com/orientationdirector}/OrientationDirectorModule.kt +20 -11
- package/android/src/main/java/com/orientationdirector/OrientationDirectorPackage.kt +15 -20
- package/android/src/main/java/com/orientationdirector/implementation/EventManager.kt +4 -17
- package/android/src/main/java/com/orientationdirector/implementation/EventManagerDelegate.kt +9 -0
- package/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt +11 -21
- package/android/src/main/java/com/orientationdirector/implementation/OrientationSensorsEventListener.kt +73 -80
- package/android/src/main/java/com/orientationdirector/implementation/Utils.kt +0 -54
- package/app.plugin.js +1 -1
- package/ios/OrientationDirector.h +1 -18
- package/ios/OrientationDirector.mm +35 -35
- package/ios/SharedOrientationDirectorImpl.swift +12 -0
- package/ios/implementation/EventManager.swift +12 -37
- package/ios/implementation/OrientationDirectorImpl.swift +6 -6
- package/lib/module/EventEmitter.js +15 -9
- package/lib/module/EventEmitter.js.map +1 -1
- package/lib/module/NativeOrientationDirector.js.map +1 -1
- package/lib/module/module.js +1 -2
- package/lib/module/module.js.map +1 -1
- package/lib/plugin/index.d.ts +3 -0
- package/lib/plugin/index.js +10 -0
- package/lib/plugin/withAndroidConfiguration.d.ts +3 -0
- package/{plugin/build/withRNOrientationMainActivity.js → lib/plugin/withAndroidConfiguration.js} +3 -3
- package/lib/plugin/withIosConfiguration.d.ts +3 -0
- package/lib/plugin/withIosConfiguration.js +62 -0
- package/lib/typescript/{commonjs/src → src}/EventEmitter.d.ts +5 -4
- package/lib/typescript/src/EventEmitter.d.ts.map +1 -0
- package/lib/typescript/{commonjs/src → src}/NativeOrientationDirector.d.ts +10 -3
- package/lib/typescript/src/NativeOrientationDirector.d.ts.map +1 -0
- package/lib/typescript/{module/src → src}/RNOrientationDirector.d.ts +3 -3
- package/lib/typescript/src/RNOrientationDirector.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useDeviceOrientation.hook.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useInterfaceOrientation.hook.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useIsInterfaceOrientationLocked.hook.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/module.d.ts +4 -0
- package/lib/typescript/src/module.d.ts.map +1 -0
- package/lib/typescript/src/types/AutoRotation.enum.d.ts.map +1 -0
- package/lib/typescript/src/types/Event.enum.d.ts.map +1 -0
- package/lib/typescript/src/types/HumanReadableAutoRotationsResource.type.d.ts.map +1 -0
- package/lib/typescript/src/types/HumanReadableOrientationsResource.type.d.ts.map +1 -0
- package/lib/typescript/src/types/LockableOrientation.type.d.ts.map +1 -0
- package/lib/typescript/src/types/LockedEvent.interface.d.ts.map +1 -0
- package/lib/typescript/src/types/Orientation.enum.d.ts.map +1 -0
- package/lib/typescript/src/types/OrientationEvent.interface.d.ts.map +1 -0
- package/lib/typescript/src/types/OrientationType.enum.d.ts.map +1 -0
- package/package.json +72 -77
- package/react-native-orientation-director.podspec +4 -24
- package/src/EventEmitter.ts +21 -24
- package/src/NativeOrientationDirector.ts +8 -3
- package/src/module.ts +1 -3
- package/android/gradle.properties +0 -17
- package/android/src/main/AndroidManifestNew.xml +0 -2
- package/android/src/oldarch/OrientationDirectorModule.kt +0 -66
- package/android/src/test/java/com/orientationdirector/implementation/OrientationDirectorModuleImplTest.kt +0 -199
- package/android/src/test/java/com/orientationdirector/implementation/UtilsTest.kt +0 -314
- package/ios/react-native-orientation-director-Bridging-Header.h +0 -6
- package/lib/commonjs/EventEmitter.js +0 -48
- package/lib/commonjs/NativeOrientationDirector.js +0 -8
- package/lib/commonjs/RNOrientationDirector.js +0 -126
- package/lib/commonjs/hooks/useDeviceOrientation.hook.js +0 -37
- package/lib/commonjs/hooks/useInterfaceOrientation.hook.js +0 -37
- package/lib/commonjs/hooks/useIsInterfaceOrientationLocked.hook.js +0 -27
- package/lib/commonjs/index.js +0 -51
- package/lib/commonjs/module.js +0 -22
- package/lib/commonjs/package.json +0 -1
- package/lib/commonjs/types/AutoRotation.enum.js +0 -12
- package/lib/commonjs/types/Event.enum.js +0 -13
- package/lib/commonjs/types/HumanReadableAutoRotationsResource.type.js +0 -5
- package/lib/commonjs/types/HumanReadableOrientationsResource.type.js +0 -5
- package/lib/commonjs/types/LockableOrientation.type.js +0 -5
- package/lib/commonjs/types/LockedEvent.interface.js +0 -1
- package/lib/commonjs/types/Orientation.enum.js +0 -17
- package/lib/commonjs/types/OrientationEvent.interface.js +0 -5
- package/lib/commonjs/types/OrientationType.enum.js +0 -11
- package/lib/typescript/commonjs/example/src/App.d.ts +0 -2
- package/lib/typescript/commonjs/example/src/App.d.ts.map +0 -1
- package/lib/typescript/commonjs/example/src/AppNavigationContainer.d.ts +0 -3
- package/lib/typescript/commonjs/example/src/AppNavigationContainer.d.ts.map +0 -1
- package/lib/typescript/commonjs/example/src/screens/Explore.d.ts +0 -3
- package/lib/typescript/commonjs/example/src/screens/Explore.d.ts.map +0 -1
- package/lib/typescript/commonjs/example/src/screens/Home.d.ts +0 -3
- package/lib/typescript/commonjs/example/src/screens/Home.d.ts.map +0 -1
- package/lib/typescript/commonjs/example/src/screens/InnerExplore.d.ts +0 -3
- package/lib/typescript/commonjs/example/src/screens/InnerExplore.d.ts.map +0 -1
- package/lib/typescript/commonjs/example/src/screens/styles.d.ts +0 -51
- package/lib/typescript/commonjs/example/src/screens/styles.d.ts.map +0 -1
- package/lib/typescript/commonjs/package.json +0 -1
- package/lib/typescript/commonjs/src/EventEmitter.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/NativeOrientationDirector.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/RNOrientationDirector.d.ts +0 -62
- package/lib/typescript/commonjs/src/RNOrientationDirector.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/hooks/useDeviceOrientation.hook.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/hooks/useInterfaceOrientation.hook.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/hooks/useIsInterfaceOrientationLocked.hook.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/module.d.ts +0 -6
- package/lib/typescript/commonjs/src/module.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/types/AutoRotation.enum.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/types/Event.enum.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/types/HumanReadableAutoRotationsResource.type.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/types/HumanReadableOrientationsResource.type.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/types/LockableOrientation.type.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/types/LockedEvent.interface.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/types/Orientation.enum.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/types/OrientationEvent.interface.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/types/OrientationType.enum.d.ts.map +0 -1
- package/lib/typescript/module/example/src/App.d.ts +0 -2
- package/lib/typescript/module/example/src/App.d.ts.map +0 -1
- package/lib/typescript/module/example/src/AppNavigationContainer.d.ts +0 -3
- package/lib/typescript/module/example/src/AppNavigationContainer.d.ts.map +0 -1
- package/lib/typescript/module/example/src/screens/Explore.d.ts +0 -3
- package/lib/typescript/module/example/src/screens/Explore.d.ts.map +0 -1
- package/lib/typescript/module/example/src/screens/Home.d.ts +0 -3
- package/lib/typescript/module/example/src/screens/Home.d.ts.map +0 -1
- package/lib/typescript/module/example/src/screens/InnerExplore.d.ts +0 -3
- package/lib/typescript/module/example/src/screens/InnerExplore.d.ts.map +0 -1
- package/lib/typescript/module/example/src/screens/styles.d.ts +0 -51
- package/lib/typescript/module/example/src/screens/styles.d.ts.map +0 -1
- package/lib/typescript/module/src/EventEmitter.d.ts +0 -11
- package/lib/typescript/module/src/EventEmitter.d.ts.map +0 -1
- package/lib/typescript/module/src/NativeOrientationDirector.d.ts +0 -17
- package/lib/typescript/module/src/NativeOrientationDirector.d.ts.map +0 -1
- package/lib/typescript/module/src/RNOrientationDirector.d.ts.map +0 -1
- package/lib/typescript/module/src/hooks/useDeviceOrientation.hook.d.ts +0 -8
- package/lib/typescript/module/src/hooks/useDeviceOrientation.hook.d.ts.map +0 -1
- package/lib/typescript/module/src/hooks/useInterfaceOrientation.hook.d.ts +0 -8
- package/lib/typescript/module/src/hooks/useInterfaceOrientation.hook.d.ts.map +0 -1
- package/lib/typescript/module/src/hooks/useIsInterfaceOrientationLocked.hook.d.ts +0 -7
- package/lib/typescript/module/src/hooks/useIsInterfaceOrientationLocked.hook.d.ts.map +0 -1
- package/lib/typescript/module/src/index.d.ts +0 -12
- package/lib/typescript/module/src/index.d.ts.map +0 -1
- package/lib/typescript/module/src/module.d.ts +0 -6
- package/lib/typescript/module/src/module.d.ts.map +0 -1
- package/lib/typescript/module/src/types/AutoRotation.enum.d.ts +0 -6
- package/lib/typescript/module/src/types/AutoRotation.enum.d.ts.map +0 -1
- package/lib/typescript/module/src/types/Event.enum.d.ts +0 -7
- package/lib/typescript/module/src/types/Event.enum.d.ts.map +0 -1
- package/lib/typescript/module/src/types/HumanReadableAutoRotationsResource.type.d.ts +0 -3
- package/lib/typescript/module/src/types/HumanReadableAutoRotationsResource.type.d.ts.map +0 -1
- package/lib/typescript/module/src/types/HumanReadableOrientationsResource.type.d.ts +0 -3
- package/lib/typescript/module/src/types/HumanReadableOrientationsResource.type.d.ts.map +0 -1
- package/lib/typescript/module/src/types/LockableOrientation.type.d.ts +0 -3
- package/lib/typescript/module/src/types/LockableOrientation.type.d.ts.map +0 -1
- package/lib/typescript/module/src/types/LockedEvent.interface.d.ts +0 -4
- package/lib/typescript/module/src/types/LockedEvent.interface.d.ts.map +0 -1
- package/lib/typescript/module/src/types/Orientation.enum.d.ts +0 -11
- package/lib/typescript/module/src/types/Orientation.enum.d.ts.map +0 -1
- package/lib/typescript/module/src/types/OrientationEvent.interface.d.ts +0 -5
- package/lib/typescript/module/src/types/OrientationEvent.interface.d.ts.map +0 -1
- package/lib/typescript/module/src/types/OrientationType.enum.d.ts +0 -5
- package/lib/typescript/module/src/types/OrientationType.enum.d.ts.map +0 -1
- package/plugin/build/custom-mod/withBridgingHeader.d.ts +0 -12
- package/plugin/build/custom-mod/withBridgingHeader.js +0 -107
- package/plugin/build/index.d.ts +0 -3
- package/plugin/build/index.js +0 -27
- package/plugin/build/withRNOrientationAppDelegate.d.ts +0 -4
- package/plugin/build/withRNOrientationAppDelegate.js +0 -102
- package/plugin/build/withRNOrientationBridgingHeader.d.ts +0 -3
- package/plugin/build/withRNOrientationBridgingHeader.js +0 -27
- package/plugin/build/withRNOrientationMainActivity.d.ts +0 -3
- package/plugin/tsconfig.json +0 -9
- /package/lib/typescript/{module/package.json → package.json} +0 -0
- /package/lib/typescript/{commonjs/src → src}/hooks/useDeviceOrientation.hook.d.ts +0 -0
- /package/lib/typescript/{commonjs/src → src}/hooks/useInterfaceOrientation.hook.d.ts +0 -0
- /package/lib/typescript/{commonjs/src → src}/hooks/useIsInterfaceOrientationLocked.hook.d.ts +0 -0
- /package/lib/typescript/{commonjs/src → src}/index.d.ts +0 -0
- /package/lib/typescript/{commonjs/src → src}/types/AutoRotation.enum.d.ts +0 -0
- /package/lib/typescript/{commonjs/src → src}/types/Event.enum.d.ts +0 -0
- /package/lib/typescript/{commonjs/src → src}/types/HumanReadableAutoRotationsResource.type.d.ts +0 -0
- /package/lib/typescript/{commonjs/src → src}/types/HumanReadableOrientationsResource.type.d.ts +0 -0
- /package/lib/typescript/{commonjs/src → src}/types/LockableOrientation.type.d.ts +0 -0
- /package/lib/typescript/{commonjs/src → src}/types/LockedEvent.interface.d.ts +0 -0
- /package/lib/typescript/{commonjs/src → src}/types/Orientation.enum.d.ts +0 -0
- /package/lib/typescript/{commonjs/src → src}/types/OrientationEvent.interface.d.ts +0 -0
- /package/lib/typescript/{commonjs/src → src}/types/OrientationType.enum.d.ts +0 -0
|
@@ -19,51 +19,6 @@ class Utils(private val context: ReactContext) {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
fun convertToDeviceOrientationFrom(orientationAngles: FloatArray): Orientation {
|
|
23
|
-
if (orientationAngles.size < 3) {
|
|
24
|
-
return Orientation.PORTRAIT
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
val (_, pitchRadians, rollRadians) = orientationAngles
|
|
28
|
-
|
|
29
|
-
val pitch = Math.toDegrees(pitchRadians.toDouble()).toFloat()
|
|
30
|
-
val roll = Math.toDegrees(rollRadians.toDouble()).toFloat()
|
|
31
|
-
|
|
32
|
-
val faceUpDownPitchTolerance = 30f
|
|
33
|
-
|
|
34
|
-
fun isValueCloseTo(value: Float, target: Float, tolerance: Float): Boolean {
|
|
35
|
-
return value in (target - tolerance)..(target + tolerance)
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return when {
|
|
39
|
-
// Face up: device is lying flat with screen up
|
|
40
|
-
isValueCloseTo(pitch, 0f, faceUpDownPitchTolerance) &&
|
|
41
|
-
isValueCloseTo(roll, 0f, faceUpDownPitchTolerance) -> Orientation.FACE_UP
|
|
42
|
-
|
|
43
|
-
// Face down: device is lying flat with screen down
|
|
44
|
-
isValueCloseTo(pitch, 0f, faceUpDownPitchTolerance) &&
|
|
45
|
-
(isValueCloseTo(roll, 180f, faceUpDownPitchTolerance) || isValueCloseTo(
|
|
46
|
-
roll,
|
|
47
|
-
-180f,
|
|
48
|
-
faceUpDownPitchTolerance
|
|
49
|
-
)) -> Orientation.FACE_DOWN
|
|
50
|
-
|
|
51
|
-
// Portrait
|
|
52
|
-
isValueCloseTo(pitch, -90f, 45f) -> Orientation.PORTRAIT
|
|
53
|
-
|
|
54
|
-
// Portrait upside down
|
|
55
|
-
isValueCloseTo(pitch, 90f, 45f) -> Orientation.PORTRAIT_UPSIDE_DOWN
|
|
56
|
-
|
|
57
|
-
// Landscape left
|
|
58
|
-
isValueCloseTo(roll, -90f, 45f) -> Orientation.LANDSCAPE_LEFT
|
|
59
|
-
|
|
60
|
-
// Landscape right
|
|
61
|
-
isValueCloseTo(roll, 90f, 45f) -> Orientation.LANDSCAPE_RIGHT
|
|
62
|
-
|
|
63
|
-
else -> Orientation.UNKNOWN
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
22
|
fun convertToActivityOrientationFrom(orientation: Orientation): Int {
|
|
68
23
|
return when (orientation) {
|
|
69
24
|
Orientation.LANDSCAPE_RIGHT -> ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
|
|
@@ -93,13 +48,4 @@ class Utils(private val context: ReactContext) {
|
|
|
93
48
|
}
|
|
94
49
|
}
|
|
95
50
|
|
|
96
|
-
fun convertToInterfaceOrientationFrom(deviceOrientation: Orientation): Orientation {
|
|
97
|
-
return when (deviceOrientation) {
|
|
98
|
-
Orientation.PORTRAIT -> Orientation.PORTRAIT
|
|
99
|
-
Orientation.LANDSCAPE_RIGHT -> Orientation.LANDSCAPE_LEFT
|
|
100
|
-
Orientation.PORTRAIT_UPSIDE_DOWN -> Orientation.PORTRAIT_UPSIDE_DOWN
|
|
101
|
-
Orientation.LANDSCAPE_LEFT -> Orientation.LANDSCAPE_RIGHT
|
|
102
|
-
else -> Orientation.UNKNOWN
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
51
|
}
|
package/app.plugin.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
module.exports = require('./plugin
|
|
1
|
+
module.exports = require('./lib/plugin');
|
|
@@ -1,22 +1,5 @@
|
|
|
1
|
-
#import <React/RCTEventEmitter.h>
|
|
2
|
-
|
|
3
|
-
#ifdef RCT_NEW_ARCH_ENABLED
|
|
4
1
|
#import <RNOrientationDirectorSpec/RNOrientationDirectorSpec.h>
|
|
5
2
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
@interface OrientationDirector : RCTEventEmitter <NativeOrientationDirectorSpec>
|
|
9
|
-
|
|
10
|
-
NS_ASSUME_NONNULL_END
|
|
11
|
-
|
|
12
|
-
#else
|
|
13
|
-
#import <React/RCTBridgeModule.h>
|
|
14
|
-
|
|
15
|
-
@interface OrientationDirector : RCTEventEmitter <RCTBridgeModule>
|
|
16
|
-
#endif
|
|
17
|
-
|
|
18
|
-
@property (nonatomic, assign) BOOL isJsListening;
|
|
19
|
-
|
|
20
|
-
+(UIInterfaceOrientationMask)getSupportedInterfaceOrientationsForWindow;
|
|
3
|
+
@interface OrientationDirector : NativeOrientationDirectorSpecBase <NativeOrientationDirectorSpec>
|
|
21
4
|
|
|
22
5
|
@end
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
This condition is needed to support use_frameworks.
|
|
5
5
|
https://github.com/callstack/react-native-builder-bob/discussions/412#discussioncomment-6352402
|
|
6
6
|
*/
|
|
7
|
-
#if __has_include("
|
|
8
|
-
#import "
|
|
7
|
+
#if __has_include("OrientationDirector-Swift.h")
|
|
8
|
+
#import "OrientationDirector-Swift.h"
|
|
9
9
|
#else
|
|
10
|
-
#import "
|
|
10
|
+
#import "OrientationDirector/OrientationDirector-Swift.h"
|
|
11
11
|
#endif
|
|
12
12
|
|
|
13
|
-
static OrientationDirectorImpl *_director =
|
|
13
|
+
static OrientationDirectorImpl *_director = SharedOrientationDirectorImpl.shared;
|
|
14
14
|
|
|
15
15
|
///////////////////////////////////////////////////////////////////////////////////////
|
|
16
16
|
/// EVENT EMITTER SETUP
|
|
@@ -21,7 +21,6 @@ static OrientationDirectorImpl *_director = [OrientationDirectorImpl new];
|
|
|
21
21
|
//////////////////////////////////////////////////////////////////////////////////////////
|
|
22
22
|
|
|
23
23
|
@implementation OrientationDirector
|
|
24
|
-
RCT_EXPORT_MODULE()
|
|
25
24
|
|
|
26
25
|
- (instancetype)init
|
|
27
26
|
{
|
|
@@ -41,28 +40,19 @@ RCT_EXPORT_MODULE()
|
|
|
41
40
|
return YES;
|
|
42
41
|
}
|
|
43
42
|
|
|
44
|
-
+ (UIInterfaceOrientationMask)getSupportedInterfaceOrientationsForWindow
|
|
45
|
-
{
|
|
46
|
-
return [_director supportedInterfaceOrientations];
|
|
47
|
-
}
|
|
48
|
-
|
|
49
43
|
///////////////////////////////////////////////////////////////////////////////////////
|
|
50
44
|
/// EVENT EMITTER SETUP
|
|
51
45
|
///
|
|
52
|
-
-(void)
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
-(void)stopObserving {
|
|
57
|
-
self.isJsListening = NO;
|
|
46
|
+
-(void)emitOnDeviceOrientationDidChangeWithParams:(NSDictionary*)params {
|
|
47
|
+
[self emitOnDeviceOrientationChanged:params];
|
|
58
48
|
}
|
|
59
49
|
|
|
60
|
-
-
|
|
61
|
-
|
|
50
|
+
-(void)emitOnInterfaceOrientationDidChangeWithParams:(NSDictionary*)params {
|
|
51
|
+
[self emitOnInterfaceOrientationChanged:params];
|
|
62
52
|
}
|
|
63
53
|
|
|
64
|
-
-
|
|
65
|
-
|
|
54
|
+
-(void)emitOnLockChangedWithParams:(NSDictionary*)params {
|
|
55
|
+
[self emitOnLockChanged:params];
|
|
66
56
|
}
|
|
67
57
|
///
|
|
68
58
|
///////////////////////////////////////////////////////////////////////////////////////
|
|
@@ -70,28 +60,29 @@ RCT_EXPORT_MODULE()
|
|
|
70
60
|
///////////////////////////////////////////////////////////////////////////////////////
|
|
71
61
|
/// EXPORTED METHODS
|
|
72
62
|
///
|
|
73
|
-
|
|
74
|
-
|
|
63
|
+
|
|
64
|
+
- (void)getInterfaceOrientation:(RCTPromiseResolveBlock)resolve
|
|
65
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
75
66
|
{
|
|
76
67
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
77
68
|
resolve(@([_director getInterfaceOrientation]));
|
|
78
69
|
});
|
|
79
70
|
}
|
|
80
71
|
|
|
81
|
-
|
|
82
|
-
reject:(RCTPromiseRejectBlock)reject
|
|
72
|
+
- (void)getDeviceOrientation:(RCTPromiseResolveBlock)resolve
|
|
73
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
83
74
|
{
|
|
84
75
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
85
76
|
resolve(@([_director getDeviceOrientation]));
|
|
86
77
|
});
|
|
87
78
|
}
|
|
88
79
|
|
|
89
|
-
|
|
80
|
+
- (NSNumber *)isLocked
|
|
90
81
|
{
|
|
91
82
|
return @([_director getIsLocked]);
|
|
92
83
|
}
|
|
93
84
|
|
|
94
|
-
|
|
85
|
+
- (void)lockTo:(double)jsOrientation
|
|
95
86
|
{
|
|
96
87
|
NSNumber *jsOrientationNumber = @(jsOrientation);
|
|
97
88
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
@@ -99,37 +90,46 @@ RCT_EXPORT_METHOD(lockTo:(double)jsOrientation)
|
|
|
99
90
|
});
|
|
100
91
|
}
|
|
101
92
|
|
|
102
|
-
|
|
93
|
+
- (void)unlock
|
|
103
94
|
{
|
|
104
95
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
105
96
|
[_director unlock];
|
|
106
97
|
});
|
|
107
98
|
}
|
|
108
99
|
|
|
109
|
-
|
|
100
|
+
- (void)resetSupportedInterfaceOrientations
|
|
110
101
|
{
|
|
111
102
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
112
103
|
[_director resetSupportedInterfaceOrientations];
|
|
113
104
|
});
|
|
114
105
|
}
|
|
115
106
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
107
|
+
///////////////////////////////////////////////////////////////////////////////////////
|
|
108
|
+
/// STUBS
|
|
109
|
+
///
|
|
110
|
+
|
|
111
|
+
- (NSNumber *)isAutoRotationEnabled
|
|
120
112
|
{
|
|
121
113
|
return @(NO);
|
|
122
114
|
}
|
|
115
|
+
|
|
116
|
+
- (void)disableOrientationSensors {}
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
- (void)enableOrientationSensors {}
|
|
120
|
+
|
|
123
121
|
///
|
|
124
122
|
///////////////////////////////////////////////////////////////////////////////////////
|
|
125
123
|
|
|
126
|
-
// Don't compile this code when we build for the old architecture.
|
|
127
|
-
#ifdef RCT_NEW_ARCH_ENABLED
|
|
128
124
|
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
129
125
|
(const facebook::react::ObjCTurboModule::InitParams &)params
|
|
130
126
|
{
|
|
131
127
|
return std::make_shared<facebook::react::NativeOrientationDirectorSpecJSI>(params);
|
|
132
128
|
}
|
|
133
|
-
|
|
129
|
+
|
|
130
|
+
+ (NSString *)moduleName
|
|
131
|
+
{
|
|
132
|
+
return @"OrientationDirector";
|
|
133
|
+
}
|
|
134
134
|
|
|
135
135
|
@end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//
|
|
2
|
+
// SharedOrientationDirectorImpl.swift
|
|
3
|
+
// react-native-orientation-director
|
|
4
|
+
//
|
|
5
|
+
// Created by Mirko Quaglia on 14/03/26.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
|
|
10
|
+
@objc public class SharedOrientationDirectorImpl: NSObject {
|
|
11
|
+
@objc public static let shared = OrientationDirectorImpl()
|
|
12
|
+
}
|
|
@@ -7,33 +7,25 @@
|
|
|
7
7
|
|
|
8
8
|
import Foundation
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
public class EventManager: NSObject {
|
|
11
|
+
public weak var delegate: OrientationEventEmitterDelegate?
|
|
12
12
|
|
|
13
|
-
func sendDeviceOrientationDidChange(
|
|
13
|
+
func sendDeviceOrientationDidChange(value: Int) {
|
|
14
14
|
guard let delegate = delegate else {
|
|
15
15
|
return
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
let params = Dictionary(dictionaryLiteral: ("orientation", orientationValue))
|
|
23
|
-
delegate.sendEvent(name: Event.DeviceOrientationDidChange.rawValue, params: params as NSDictionary)
|
|
18
|
+
let params = Dictionary(dictionaryLiteral: ("orientation", value))
|
|
19
|
+
delegate.emitOnDeviceOrientationDidChange(params: params as NSDictionary)
|
|
24
20
|
}
|
|
25
21
|
|
|
26
|
-
func sendInterfaceOrientationDidChange(
|
|
22
|
+
func sendInterfaceOrientationDidChange(value: Int) {
|
|
27
23
|
guard let delegate = delegate else {
|
|
28
24
|
return
|
|
29
25
|
}
|
|
30
26
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
let params = Dictionary(dictionaryLiteral: ("orientation", orientationValue))
|
|
36
|
-
delegate.sendEvent(name: Event.InterfaceOrientationDidChange.rawValue, params: params as NSDictionary)
|
|
27
|
+
let params = Dictionary(dictionaryLiteral: ("orientation", value))
|
|
28
|
+
delegate.emitOnInterfaceOrientationDidChange(params: params as NSDictionary)
|
|
37
29
|
}
|
|
38
30
|
|
|
39
31
|
func sendLockDidChange(value: Bool) {
|
|
@@ -41,30 +33,13 @@ import Foundation
|
|
|
41
33
|
return
|
|
42
34
|
}
|
|
43
35
|
|
|
44
|
-
if !delegate.isJsListening {
|
|
45
|
-
return
|
|
46
|
-
}
|
|
47
|
-
|
|
48
36
|
let params = Dictionary(dictionaryLiteral: ("locked", value))
|
|
49
|
-
delegate.
|
|
37
|
+
delegate.emitOnLockChanged(params: params as NSDictionary)
|
|
50
38
|
}
|
|
51
39
|
}
|
|
52
40
|
|
|
53
41
|
@objc public protocol OrientationEventEmitterDelegate {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
func
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
public extension EventManager {
|
|
60
|
-
|
|
61
|
-
enum Event: String, CaseIterable {
|
|
62
|
-
case DeviceOrientationDidChange
|
|
63
|
-
case InterfaceOrientationDidChange
|
|
64
|
-
case LockDidChange
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
@objc static var supportedEvents: [String] {
|
|
68
|
-
return Event.allCases.map(\.rawValue)
|
|
69
|
-
}
|
|
42
|
+
func emitOnLockChanged(params: NSDictionary)
|
|
43
|
+
func emitOnDeviceOrientationDidChange(params: NSDictionary)
|
|
44
|
+
func emitOnInterfaceOrientationDidChange(params: NSDictionary)
|
|
70
45
|
}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import Foundation
|
|
9
9
|
import UIKit
|
|
10
10
|
|
|
11
|
-
@
|
|
11
|
+
@objcMembers public class OrientationDirectorImpl: NSObject {
|
|
12
12
|
private static let TAG = "OrientationDirectorImpl"
|
|
13
13
|
|
|
14
14
|
private let bundleManager: BundleManager = BundleManager()
|
|
@@ -19,7 +19,7 @@ import UIKit
|
|
|
19
19
|
private var lastInterfaceOrientation = Orientation.UNKNOWN
|
|
20
20
|
private var lastDeviceOrientation = Orientation.UNKNOWN
|
|
21
21
|
private var isLocked = false
|
|
22
|
-
|
|
22
|
+
|
|
23
23
|
/// # Only on iOS < 16
|
|
24
24
|
/// This variable is needed to prevent a loop where
|
|
25
25
|
/// we lock the interface to a specific orientation
|
|
@@ -174,11 +174,11 @@ import UIKit
|
|
|
174
174
|
|
|
175
175
|
private func onOrientationChanged(uiDeviceOrientation: UIDeviceOrientation) {
|
|
176
176
|
let deviceOrientation = utils.convertToOrientationFrom(deviceOrientation: uiDeviceOrientation)
|
|
177
|
-
|
|
177
|
+
|
|
178
178
|
if (!self.isLocking) {
|
|
179
|
-
self.eventManager.sendDeviceOrientationDidChange(
|
|
179
|
+
self.eventManager.sendDeviceOrientationDidChange(value: deviceOrientation.rawValue)
|
|
180
180
|
}
|
|
181
|
-
|
|
181
|
+
|
|
182
182
|
lastDeviceOrientation = deviceOrientation
|
|
183
183
|
adaptInterfaceTo(deviceOrientation: deviceOrientation)
|
|
184
184
|
}
|
|
@@ -203,7 +203,7 @@ import UIKit
|
|
|
203
203
|
}
|
|
204
204
|
|
|
205
205
|
private func updateLastInterfaceOrientationTo(value: Orientation) {
|
|
206
|
-
|
|
206
|
+
self.eventManager.sendInterfaceOrientationDidChange(value: value.rawValue)
|
|
207
207
|
lastInterfaceOrientation = value
|
|
208
208
|
}
|
|
209
209
|
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { Platform } from 'react-native';
|
|
4
|
-
import Module
|
|
5
|
-
import Event from "./types/Event.enum.js";
|
|
4
|
+
import Module from "./module.js";
|
|
6
5
|
class EventEmitter {
|
|
6
|
+
static androidListenerCount = 0;
|
|
7
7
|
static addDeviceOrientationDidChangeListener(callback) {
|
|
8
|
-
let listener =
|
|
8
|
+
let listener = Module.onDeviceOrientationChanged(callback);
|
|
9
9
|
if (Platform.OS !== 'android') {
|
|
10
10
|
return listener;
|
|
11
11
|
}
|
|
12
|
-
|
|
13
|
-
if (
|
|
12
|
+
EventEmitter.androidListenerCount++;
|
|
13
|
+
if (EventEmitter.androidListenerCount === 1) {
|
|
14
14
|
Module.enableOrientationSensors();
|
|
15
15
|
}
|
|
16
16
|
return EventEmitter.createDeviceOrientationListenerProxy(listener);
|
|
17
17
|
}
|
|
18
18
|
static addInterfaceOrientationDidChangeListener(callback) {
|
|
19
|
-
return
|
|
19
|
+
return Module.onInterfaceOrientationChanged(callback);
|
|
20
20
|
}
|
|
21
21
|
static addLockDidChangeListener(callback) {
|
|
22
|
-
return
|
|
22
|
+
return Module.onLockChanged(callback);
|
|
23
23
|
}
|
|
24
24
|
static createDeviceOrientationListenerProxy(listener) {
|
|
25
25
|
const handler = {
|
|
@@ -32,10 +32,16 @@ class EventEmitter {
|
|
|
32
32
|
};
|
|
33
33
|
return new Proxy(listener, handler);
|
|
34
34
|
function disableOrientationSensorsIfLastListener() {
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
if (EventEmitter.androidListenerCount === 1) {
|
|
36
|
+
EventEmitter.androidListenerCount = 0;
|
|
37
37
|
Module.disableOrientationSensors();
|
|
38
|
+
return;
|
|
38
39
|
}
|
|
40
|
+
if (EventEmitter.androidListenerCount === 0) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
EventEmitter.androidListenerCount--;
|
|
44
|
+
return;
|
|
39
45
|
}
|
|
40
46
|
}
|
|
41
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","Module","
|
|
1
|
+
{"version":3,"names":["Platform","Module","EventEmitter","androidListenerCount","addDeviceOrientationDidChangeListener","callback","listener","onDeviceOrientationChanged","OS","enableOrientationSensors","createDeviceOrientationListenerProxy","addInterfaceOrientationDidChangeListener","onInterfaceOrientationChanged","addLockDidChangeListener","onLockChanged","handler","get","target","propertyKey","receiver","disableOrientationSensorsIfLastListener","Reflect","Proxy","disableOrientationSensors"],"sourceRoot":"../../src","sources":["EventEmitter.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAgC,cAAc;AAC/D,OAAOC,MAAM,MAAM,aAAU;AAI7B,MAAMC,YAAY,CAAC;EACjB,OAAeC,oBAAoB,GAAG,CAAC;EAEvC,OAAOC,qCAAqCA,CAC1CC,QAAiD,EACjD;IACA,IAAIC,QAAQ,GAAGL,MAAM,CAACM,0BAA0B,CAACF,QAAQ,CAAC;IAE1D,IAAIL,QAAQ,CAACQ,EAAE,KAAK,SAAS,EAAE;MAC7B,OAAOF,QAAQ;IACjB;IAEAJ,YAAY,CAACC,oBAAoB,EAAE;IACnC,IAAID,YAAY,CAACC,oBAAoB,KAAK,CAAC,EAAE;MAC3CF,MAAM,CAACQ,wBAAwB,CAAC,CAAC;IACnC;IAEA,OAAOP,YAAY,CAACQ,oCAAoC,CAACJ,QAAQ,CAAC;EACpE;EAEA,OAAOK,wCAAwCA,CAC7CN,QAAiD,EACjD;IACA,OAAOJ,MAAM,CAACW,6BAA6B,CAACP,QAAQ,CAAC;EACvD;EAEA,OAAOQ,wBAAwBA,CAACR,QAAsC,EAAE;IACtE,OAAOJ,MAAM,CAACa,aAAa,CAACT,QAAQ,CAAC;EACvC;EAEA,OAAeK,oCAAoCA,CACjDJ,QAA2B,EAC3B;IACA,MAAMS,OAAwC,GAAG;MAC/CC,GAAGA,CAACC,MAAM,EAAEC,WAAW,EAAEC,QAAQ,EAAE;QACjC,IAAID,WAAW,KAAK,QAAQ,EAAE;UAC5BE,uCAAuC,CAAC,CAAC;QAC3C;QACA,OAAOC,OAAO,CAACL,GAAG,CAACC,MAAM,EAAEC,WAAW,EAAEC,QAAQ,CAAC;MACnD;IACF,CAAC;IAED,OAAO,IAAIG,KAAK,CAAChB,QAAQ,EAAES,OAAO,CAAC;IAEnC,SAASK,uCAAuCA,CAAA,EAAG;MACjD,IAAIlB,YAAY,CAACC,oBAAoB,KAAK,CAAC,EAAE;QAC3CD,YAAY,CAACC,oBAAoB,GAAG,CAAC;QACrCF,MAAM,CAACsB,yBAAyB,CAAC,CAAC;QAClC;MACF;MAEA,IAAIrB,YAAY,CAACC,oBAAoB,KAAK,CAAC,EAAE;QAC3C;MACF;MAEAD,YAAY,CAACC,oBAAoB,EAAE;MACnC;IACF;EACF;AACF;AAEA,eAAeD,YAAY","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeOrientationDirector.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeOrientationDirector.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AA+BlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,qBAAqB,CAAC","ignoreList":[]}
|
package/lib/module/module.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { NativeModules, Platform } from 'react-native';
|
|
4
4
|
const LINKING_ERROR = `The package 'react-native-orientation-director' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
|
|
5
5
|
ios: "- You have run 'pod install'\n",
|
|
6
6
|
default: ''
|
|
@@ -14,6 +14,5 @@ const OrientationDirectorModule = Module ? Module : new Proxy({}, {
|
|
|
14
14
|
throw new Error(LINKING_ERROR);
|
|
15
15
|
}
|
|
16
16
|
});
|
|
17
|
-
export const ModuleEventEmitter = new NativeEventEmitter(Module);
|
|
18
17
|
export default OrientationDirectorModule;
|
|
19
18
|
//# sourceMappingURL=module.js.map
|
package/lib/module/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","Module","require","OrientationDirector","OrientationDirectorModule","Proxy","get","Error"],"sourceRoot":"../../src","sources":["module.ts"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAGtD,MAAMC,aAAa,GACjB,4FAA4F,GAC5FD,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;;AAEjC;AACA,MAAMC,oBAAoB,GAAGC,MAAM,CAACC,kBAAkB,IAAI,IAAI;AAE9D,MAAMC,MAAM,GAAGH,oBAAoB,GAC/BI,OAAO,CAAC,6BAA6B,CAAC,CAACL,OAAO,GAC9CL,aAAa,CAACW,mBAAmB;AAErC,MAAMC,yBAAyB,GAAGH,MAAM,GACpCA,MAAM,GACN,IAAII,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACb,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEL,eAAeU,yBAAyB","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const withAndroidConfiguration_1 = require("./withAndroidConfiguration");
|
|
4
|
+
const withIosConfiguration_1 = require("./withIosConfiguration");
|
|
5
|
+
const withYourLibrary = (config) => {
|
|
6
|
+
config = (0, withAndroidConfiguration_1.withAndroidConfiguration)(config);
|
|
7
|
+
config = (0, withIosConfiguration_1.withIosConfiguration)(config);
|
|
8
|
+
return config;
|
|
9
|
+
};
|
|
10
|
+
exports.default = withYourLibrary;
|
package/{plugin/build/withRNOrientationMainActivity.js → lib/plugin/withAndroidConfiguration.js}
RENAMED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.withAndroidConfiguration = void 0;
|
|
4
4
|
exports.ktFileUpdater = ktFileUpdater;
|
|
5
5
|
const config_plugins_1 = require("@expo/config-plugins");
|
|
6
6
|
const generateCode_1 = require("@expo/config-plugins/build/utils/generateCode");
|
|
7
|
-
const
|
|
7
|
+
const withAndroidConfiguration = (config) => {
|
|
8
8
|
return (0, config_plugins_1.withMainActivity)(config, readMainActivityFileAndUpdateContents);
|
|
9
9
|
};
|
|
10
|
-
exports.
|
|
10
|
+
exports.withAndroidConfiguration = withAndroidConfiguration;
|
|
11
11
|
async function readMainActivityFileAndUpdateContents(config) {
|
|
12
12
|
const { modResults: mainActivityFile } = config;
|
|
13
13
|
const worker = getCompatibleFileUpdater(mainActivityFile.language);
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.withIosConfiguration = void 0;
|
|
4
|
+
exports.swiftFileUpdater = swiftFileUpdater;
|
|
5
|
+
const config_plugins_1 = require("@expo/config-plugins");
|
|
6
|
+
const generateCode_1 = require("@expo/config-plugins/build/utils/generateCode");
|
|
7
|
+
const withIosConfiguration = (config) => {
|
|
8
|
+
return (0, config_plugins_1.withAppDelegate)(config, readAppDelegateFileAndUpdateContents);
|
|
9
|
+
};
|
|
10
|
+
exports.withIosConfiguration = withIosConfiguration;
|
|
11
|
+
async function readAppDelegateFileAndUpdateContents(config) {
|
|
12
|
+
const { modResults: appDelegateFile } = config;
|
|
13
|
+
if (appDelegateFile.language !== 'swift') {
|
|
14
|
+
throw new Error(`Cannot add React Native Orientation Director code to AppDelegate of language "${appDelegateFile.language}"`);
|
|
15
|
+
}
|
|
16
|
+
appDelegateFile.contents = swiftFileUpdater(appDelegateFile.contents, config.sdkVersion);
|
|
17
|
+
return config;
|
|
18
|
+
}
|
|
19
|
+
function swiftFileUpdater(originalContents, sdkVersion) {
|
|
20
|
+
const methodPrefix = computeMethodPrefix(sdkVersion);
|
|
21
|
+
const libraryImportCodeBlock = `import OrientationDirector`;
|
|
22
|
+
const rightBeforeAnnotation = /@main|@UIApplicationMain/g;
|
|
23
|
+
const withImport = (0, generateCode_1.mergeContents)({
|
|
24
|
+
tag: '@react-native-orientation-director/library-import',
|
|
25
|
+
src: originalContents,
|
|
26
|
+
newSrc: libraryImportCodeBlock,
|
|
27
|
+
anchor: rightBeforeAnnotation,
|
|
28
|
+
offset: -1,
|
|
29
|
+
comment: '// React Native Orientation Director',
|
|
30
|
+
});
|
|
31
|
+
const supportedInterfaceOrientationsCodeBlock = `\n ${methodPrefix} func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
|
|
32
|
+
return SharedOrientationDirectorImpl.shared.supportedInterfaceOrientations
|
|
33
|
+
}\n`;
|
|
34
|
+
const rightBeforeLastClosingBrace = /didFinishLaunchingWithOptions:\s*launchOptions\)/g;
|
|
35
|
+
const pasteInTheListJustAfterTheClosingBracket = 2;
|
|
36
|
+
const completedMerge = (0, generateCode_1.mergeContents)({
|
|
37
|
+
tag: '@react-native-orientation-director/supportedInterfaceOrientations-implementation',
|
|
38
|
+
src: withImport.contents,
|
|
39
|
+
newSrc: supportedInterfaceOrientationsCodeBlock,
|
|
40
|
+
anchor: rightBeforeLastClosingBrace,
|
|
41
|
+
offset: pasteInTheListJustAfterTheClosingBracket,
|
|
42
|
+
comment: '// React Native Orientation Director',
|
|
43
|
+
});
|
|
44
|
+
return completedMerge.contents;
|
|
45
|
+
function computeMethodPrefix(_sdkVersion) {
|
|
46
|
+
if (!_sdkVersion) {
|
|
47
|
+
return '';
|
|
48
|
+
}
|
|
49
|
+
const rawMajor = _sdkVersion.split('.').at(0);
|
|
50
|
+
if (!rawMajor) {
|
|
51
|
+
return '';
|
|
52
|
+
}
|
|
53
|
+
const major = Number(rawMajor);
|
|
54
|
+
if (Number.isNaN(major)) {
|
|
55
|
+
return '';
|
|
56
|
+
}
|
|
57
|
+
if (major === 53) {
|
|
58
|
+
return '';
|
|
59
|
+
}
|
|
60
|
+
return 'public override';
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type EventSubscription } from 'react-native';
|
|
2
2
|
import type { OrientationEvent } from './types/OrientationEvent.interface';
|
|
3
3
|
import type { LockedEvent } from './types/LockedEvent.interface';
|
|
4
4
|
declare class EventEmitter {
|
|
5
|
-
static
|
|
6
|
-
static
|
|
7
|
-
static
|
|
5
|
+
private static androidListenerCount;
|
|
6
|
+
static addDeviceOrientationDidChangeListener(callback: (orientation: OrientationEvent) => void): EventSubscription;
|
|
7
|
+
static addInterfaceOrientationDidChangeListener(callback: (orientation: OrientationEvent) => void): EventSubscription;
|
|
8
|
+
static addLockDidChangeListener(callback: (event: LockedEvent) => void): EventSubscription;
|
|
8
9
|
private static createDeviceOrientationListenerProxy;
|
|
9
10
|
}
|
|
10
11
|
export default EventEmitter;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventEmitter.d.ts","sourceRoot":"","sources":["../../../src/EventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,cAAM,YAAY;IAChB,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAK;IAExC,MAAM,CAAC,qCAAqC,CAC1C,QAAQ,EAAE,CAAC,WAAW,EAAE,gBAAgB,KAAK,IAAI;IAgBnD,MAAM,CAAC,wCAAwC,CAC7C,QAAQ,EAAE,CAAC,WAAW,EAAE,gBAAgB,KAAK,IAAI;IAKnD,MAAM,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI;IAItE,OAAO,CAAC,MAAM,CAAC,oCAAoC;CA6BpD;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type CodegenTypes, type TurboModule } from 'react-native';
|
|
2
2
|
export interface Spec extends TurboModule {
|
|
3
3
|
getInterfaceOrientation(): Promise<number>;
|
|
4
4
|
getDeviceOrientation(): Promise<number>;
|
|
@@ -9,8 +9,15 @@ export interface Spec extends TurboModule {
|
|
|
9
9
|
isAutoRotationEnabled(): boolean;
|
|
10
10
|
enableOrientationSensors(): void;
|
|
11
11
|
disableOrientationSensors(): void;
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
readonly onDeviceOrientationChanged: CodegenTypes.EventEmitter<{
|
|
13
|
+
orientation: number;
|
|
14
|
+
}>;
|
|
15
|
+
readonly onInterfaceOrientationChanged: CodegenTypes.EventEmitter<{
|
|
16
|
+
orientation: number;
|
|
17
|
+
}>;
|
|
18
|
+
readonly onLockChanged: CodegenTypes.EventEmitter<{
|
|
19
|
+
locked: boolean;
|
|
20
|
+
}>;
|
|
14
21
|
}
|
|
15
22
|
declare const _default: Spec;
|
|
16
23
|
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeOrientationDirector.d.ts","sourceRoot":"","sources":["../../../src/NativeOrientationDirector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAGnE,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,MAAM,IAAI,IAAI,CAAC;IACf,QAAQ,IAAI,OAAO,CAAC;IACpB,mCAAmC,IAAI,IAAI,CAAC;IAO5C,qBAAqB,IAAI,OAAO,CAAC;IACjC,wBAAwB,IAAI,IAAI,CAAC;IACjC,yBAAyB,IAAI,IAAI,CAAC;IAKlC,QAAQ,CAAC,0BAA0B,EAAE,YAAY,CAAC,YAAY,CAAC;QAC7D,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,QAAQ,CAAC,6BAA6B,EAAE,YAAY,CAAC,YAAY,CAAC;QAChE,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC,YAAY,CAAC;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACxE;;AAED,wBAA6E"}
|