fix(carmode) Force portrait when in carmode
This commit is contained in:
parent
d61d47fae3
commit
fb2cfaa204
|
@ -77,6 +77,7 @@ dependencies {
|
||||||
implementation project(':react-native-immersive')
|
implementation project(':react-native-immersive')
|
||||||
implementation project(':react-native-keep-awake')
|
implementation project(':react-native-keep-awake')
|
||||||
implementation project(':react-native-masked-view_masked-view')
|
implementation project(':react-native-masked-view_masked-view')
|
||||||
|
implementation project(':react-native-orientation-locker')
|
||||||
implementation project(':react-native-pager-view')
|
implementation project(':react-native-pager-view')
|
||||||
implementation project(':react-native-performance')
|
implementation project(':react-native-performance')
|
||||||
implementation project(':react-native-safe-area-context')
|
implementation project(':react-native-safe-area-context')
|
||||||
|
|
|
@ -21,6 +21,7 @@ import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
|
import android.content.res.Configuration;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
@ -30,6 +31,7 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||||
|
|
||||||
import com.facebook.react.modules.core.PermissionListener;
|
import com.facebook.react.modules.core.PermissionListener;
|
||||||
|
|
||||||
|
import org.wonday.orientation.OrientationActivityLifecycle;
|
||||||
import org.jitsi.meet.sdk.log.JitsiMeetLogger;
|
import org.jitsi.meet.sdk.log.JitsiMeetLogger;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
@ -86,6 +88,14 @@ public class JitsiMeetActivity extends AppCompatActivity
|
||||||
// Overrides
|
// Overrides
|
||||||
//
|
//
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onConfigurationChanged(Configuration newConfig) {
|
||||||
|
super.onConfigurationChanged(newConfig);
|
||||||
|
Intent intent = new Intent("onConfigurationChanged");
|
||||||
|
intent.putExtra("newConfig", newConfig);
|
||||||
|
this.sendBroadcast(intent);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -94,6 +104,7 @@ public class JitsiMeetActivity extends AppCompatActivity
|
||||||
this.jitsiView = findViewById(R.id.jitsiView);
|
this.jitsiView = findViewById(R.id.jitsiView);
|
||||||
|
|
||||||
registerForBroadcastMessages();
|
registerForBroadcastMessages();
|
||||||
|
registerActivityLifecycleCallbacks(OrientationActivityLifecycle.getInstance());
|
||||||
|
|
||||||
if (!extraInitialize()) {
|
if (!extraInitialize()) {
|
||||||
initialize();
|
initialize();
|
||||||
|
|
|
@ -129,6 +129,7 @@ class ReactInstanceManagerHolder {
|
||||||
new com.zmxv.RNSound.RNSoundPackage(),
|
new com.zmxv.RNSound.RNSoundPackage(),
|
||||||
new com.th3rdwave.safeareacontext.SafeAreaContextPackage(),
|
new com.th3rdwave.safeareacontext.SafeAreaContextPackage(),
|
||||||
new com.horcrux.svg.SvgPackage(),
|
new com.horcrux.svg.SvgPackage(),
|
||||||
|
new org.wonday.orientation.OrientationPackage(),
|
||||||
new ReactPackageAdapter() {
|
new ReactPackageAdapter() {
|
||||||
@Override
|
@Override
|
||||||
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
|
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
|
||||||
|
|
|
@ -33,6 +33,8 @@ include ':react-native-keep-awake'
|
||||||
project(':react-native-keep-awake').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-keep-awake/android')
|
project(':react-native-keep-awake').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-keep-awake/android')
|
||||||
include ':react-native-masked-view_masked-view'
|
include ':react-native-masked-view_masked-view'
|
||||||
project(':react-native-masked-view_masked-view').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-masked-view/masked-view/android')
|
project(':react-native-masked-view_masked-view').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-masked-view/masked-view/android')
|
||||||
|
include ':react-native-orientation-locker'
|
||||||
|
project(':react-native-orientation-locker').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-orientation-locker/android')
|
||||||
include ':react-native-pager-view'
|
include ':react-native-pager-view'
|
||||||
project(':react-native-pager-view').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-pager-view/android')
|
project(':react-native-pager-view').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-pager-view/android')
|
||||||
include ':react-native-performance'
|
include ':react-native-performance'
|
||||||
|
|
|
@ -366,6 +366,8 @@ PODS:
|
||||||
- React
|
- React
|
||||||
- react-native-netinfo (7.1.7):
|
- react-native-netinfo (7.1.7):
|
||||||
- React-Core
|
- React-Core
|
||||||
|
- react-native-orientation-locker (1.5.0):
|
||||||
|
- React-Core
|
||||||
- react-native-pager-view (5.4.9):
|
- react-native-pager-view (5.4.9):
|
||||||
- React-Core
|
- React-Core
|
||||||
- react-native-performance (2.1.0):
|
- react-native-performance (2.1.0):
|
||||||
|
@ -514,6 +516,7 @@ DEPENDENCIES:
|
||||||
- react-native-get-random-values (from `../node_modules/react-native-get-random-values`)
|
- react-native-get-random-values (from `../node_modules/react-native-get-random-values`)
|
||||||
- react-native-keep-awake (from `../node_modules/react-native-keep-awake`)
|
- react-native-keep-awake (from `../node_modules/react-native-keep-awake`)
|
||||||
- "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)"
|
- "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)"
|
||||||
|
- react-native-orientation-locker (from `../node_modules/react-native-orientation-locker`)
|
||||||
- react-native-pager-view (from `../node_modules/react-native-pager-view`)
|
- react-native-pager-view (from `../node_modules/react-native-pager-view`)
|
||||||
- react-native-performance (from `../node_modules/react-native-performance/ios`)
|
- react-native-performance (from `../node_modules/react-native-performance/ios`)
|
||||||
- react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
|
- react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
|
||||||
|
@ -623,6 +626,8 @@ EXTERNAL SOURCES:
|
||||||
:path: "../node_modules/react-native-keep-awake"
|
:path: "../node_modules/react-native-keep-awake"
|
||||||
react-native-netinfo:
|
react-native-netinfo:
|
||||||
:path: "../node_modules/@react-native-community/netinfo"
|
:path: "../node_modules/@react-native-community/netinfo"
|
||||||
|
react-native-orientation-locker:
|
||||||
|
:path: "../node_modules/react-native-orientation-locker"
|
||||||
react-native-pager-view:
|
react-native-pager-view:
|
||||||
:path: "../node_modules/react-native-pager-view"
|
:path: "../node_modules/react-native-pager-view"
|
||||||
react-native-performance:
|
react-native-performance:
|
||||||
|
@ -738,6 +743,7 @@ SPEC CHECKSUMS:
|
||||||
react-native-get-random-values: 30b3f74ca34e30e2e480de48e4add2706a40ac8f
|
react-native-get-random-values: 30b3f74ca34e30e2e480de48e4add2706a40ac8f
|
||||||
react-native-keep-awake: afad8a51dfef9fe9655a6344771be32c8596d774
|
react-native-keep-awake: afad8a51dfef9fe9655a6344771be32c8596d774
|
||||||
react-native-netinfo: 27f287f2d191693f3b9d01a4273137fcf91c3b5d
|
react-native-netinfo: 27f287f2d191693f3b9d01a4273137fcf91c3b5d
|
||||||
|
react-native-orientation-locker: 851f6510d8046ea2f14aa169b1e01fcd309a94ba
|
||||||
react-native-pager-view: 3ee7d4c7697fb3ef788346e834a60cca97ed8540
|
react-native-pager-view: 3ee7d4c7697fb3ef788346e834a60cca97ed8540
|
||||||
react-native-performance: f4b6604a9d5a8a7407e34a82fab6c641d9a3ec12
|
react-native-performance: f4b6604a9d5a8a7407e34a82fab6c641d9a3ec12
|
||||||
react-native-safe-area-context: 584dc04881deb49474363f3be89e4ca0e854c057
|
react-native-safe-area-context: 584dc04881deb49474363f3be89e4ca0e854c057
|
||||||
|
|
|
@ -124,4 +124,10 @@
|
||||||
options:options];
|
options:options];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (UIInterfaceOrientationMask)application:(UIApplication *)application
|
||||||
|
supportedInterfaceOrientationsForWindow:(UIWindow *)window {
|
||||||
|
return [[JitsiMeet sharedInstance] application:application
|
||||||
|
supportedInterfaceOrientationsForWindow:window];
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
|
@ -57,6 +57,9 @@
|
||||||
openURL:(NSURL *_Nonnull)url
|
openURL:(NSURL *_Nonnull)url
|
||||||
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *_Nonnull)options;
|
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *_Nonnull)options;
|
||||||
|
|
||||||
|
- (UIInterfaceOrientationMask)application:(UIApplication *)application
|
||||||
|
supportedInterfaceOrientationsForWindow:(UIWindow *)window;
|
||||||
|
|
||||||
#pragma mark - Utility methods
|
#pragma mark - Utility methods
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
|
|
||||||
#import <Intents/Intents.h>
|
#import <Intents/Intents.h>
|
||||||
#import <WebRTC/RTCLogging.h>
|
#import <WebRTC/RTCLogging.h>
|
||||||
|
#import "Orientation.h"
|
||||||
|
|
||||||
#import "JitsiMeet+Private.h"
|
#import "JitsiMeet+Private.h"
|
||||||
#import "JitsiMeetConferenceOptions+Private.h"
|
#import "JitsiMeetConferenceOptions+Private.h"
|
||||||
|
@ -127,6 +128,10 @@
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
|
||||||
|
return [Orientation getOrientation];
|
||||||
|
}
|
||||||
|
|
||||||
#pragma mark - Utility methods
|
#pragma mark - Utility methods
|
||||||
|
|
||||||
- (void)instantiateReactNativeBridge {
|
- (void)instantiateReactNativeBridge {
|
||||||
|
|
|
@ -99,6 +99,7 @@
|
||||||
"react-native-get-random-values": "1.7.2",
|
"react-native-get-random-values": "1.7.2",
|
||||||
"react-native-immersive": "2.0.0",
|
"react-native-immersive": "2.0.0",
|
||||||
"react-native-keep-awake": "4.0.0",
|
"react-native-keep-awake": "4.0.0",
|
||||||
|
"react-native-orientation-locker": "^1.5.0",
|
||||||
"react-native-pager-view": "5.4.9",
|
"react-native-pager-view": "5.4.9",
|
||||||
"react-native-paper": "4.11.1",
|
"react-native-paper": "4.11.1",
|
||||||
"react-native-performance": "2.1.0",
|
"react-native-performance": "2.1.0",
|
||||||
|
@ -15915,6 +15916,16 @@
|
||||||
"resolved": "https://registry.npmjs.org/react-native-keep-awake/-/react-native-keep-awake-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/react-native-keep-awake/-/react-native-keep-awake-4.0.0.tgz",
|
||||||
"integrity": "sha512-0Fotox+eLXQooeibVs3P60yASYUWjtRw9MZNmbuHt5UZQrgUrAKsE4jm7gTr4tPU1m1RkwGzcgUFpcOkh/ec7g=="
|
"integrity": "sha512-0Fotox+eLXQooeibVs3P60yASYUWjtRw9MZNmbuHt5UZQrgUrAKsE4jm7gTr4tPU1m1RkwGzcgUFpcOkh/ec7g=="
|
||||||
},
|
},
|
||||||
|
"node_modules/react-native-orientation-locker": {
|
||||||
|
"version": "1.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-native-orientation-locker/-/react-native-orientation-locker-1.5.0.tgz",
|
||||||
|
"integrity": "sha512-4XOCGmNN4BXg5JUFjUuXpsfhPJmbA3LkQilJO1ed+6vL97teTdG2w5IEevKiqL9/hPjeWE8YYtX/YW+yp53hkg==",
|
||||||
|
"peerDependencies": {
|
||||||
|
"react": ">=16.13.1",
|
||||||
|
"react-native": ">=0.63.2",
|
||||||
|
"react-native-windows": ">=0.63.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/react-native-pager-view": {
|
"node_modules/react-native-pager-view": {
|
||||||
"version": "5.4.9",
|
"version": "5.4.9",
|
||||||
"resolved": "https://registry.npmjs.org/react-native-pager-view/-/react-native-pager-view-5.4.9.tgz",
|
"resolved": "https://registry.npmjs.org/react-native-pager-view/-/react-native-pager-view-5.4.9.tgz",
|
||||||
|
@ -32503,6 +32514,11 @@
|
||||||
"resolved": "https://registry.npmjs.org/react-native-keep-awake/-/react-native-keep-awake-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/react-native-keep-awake/-/react-native-keep-awake-4.0.0.tgz",
|
||||||
"integrity": "sha512-0Fotox+eLXQooeibVs3P60yASYUWjtRw9MZNmbuHt5UZQrgUrAKsE4jm7gTr4tPU1m1RkwGzcgUFpcOkh/ec7g=="
|
"integrity": "sha512-0Fotox+eLXQooeibVs3P60yASYUWjtRw9MZNmbuHt5UZQrgUrAKsE4jm7gTr4tPU1m1RkwGzcgUFpcOkh/ec7g=="
|
||||||
},
|
},
|
||||||
|
"react-native-orientation-locker": {
|
||||||
|
"version": "1.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-native-orientation-locker/-/react-native-orientation-locker-1.5.0.tgz",
|
||||||
|
"integrity": "sha512-4XOCGmNN4BXg5JUFjUuXpsfhPJmbA3LkQilJO1ed+6vL97teTdG2w5IEevKiqL9/hPjeWE8YYtX/YW+yp53hkg=="
|
||||||
|
},
|
||||||
"react-native-pager-view": {
|
"react-native-pager-view": {
|
||||||
"version": "5.4.9",
|
"version": "5.4.9",
|
||||||
"resolved": "https://registry.npmjs.org/react-native-pager-view/-/react-native-pager-view-5.4.9.tgz",
|
"resolved": "https://registry.npmjs.org/react-native-pager-view/-/react-native-pager-view-5.4.9.tgz",
|
||||||
|
|
|
@ -104,6 +104,7 @@
|
||||||
"react-native-get-random-values": "1.7.2",
|
"react-native-get-random-values": "1.7.2",
|
||||||
"react-native-immersive": "2.0.0",
|
"react-native-immersive": "2.0.0",
|
||||||
"react-native-keep-awake": "4.0.0",
|
"react-native-keep-awake": "4.0.0",
|
||||||
|
"react-native-orientation-locker": "^1.5.0",
|
||||||
"react-native-pager-view": "5.4.9",
|
"react-native-pager-view": "5.4.9",
|
||||||
"react-native-paper": "4.11.1",
|
"react-native-paper": "4.11.1",
|
||||||
"react-native-performance": "2.1.0",
|
"react-native-performance": "2.1.0",
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/* eslint-disable lines-around-comment */
|
/* eslint-disable lines-around-comment */
|
||||||
import React, { useEffect } from 'react';
|
import React, { useEffect } from 'react';
|
||||||
import { View } from 'react-native';
|
import { View } from 'react-native';
|
||||||
|
import Orientation from 'react-native-orientation-locker';
|
||||||
import { withSafeAreaInsets } from 'react-native-safe-area-context';
|
import { withSafeAreaInsets } from 'react-native-safe-area-context';
|
||||||
import { useDispatch, useSelector } from 'react-redux';
|
import { useDispatch, useSelector } from 'react-redux';
|
||||||
|
|
||||||
|
@ -38,8 +39,10 @@ const CarMode = (): JSX.Element => {
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
dispatch(setIsCarmode(true));
|
dispatch(setIsCarmode(true));
|
||||||
setPictureInPictureEnabled(false);
|
setPictureInPictureEnabled(false);
|
||||||
|
Orientation.lockToPortrait();
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
|
Orientation.unlockAllOrientations();
|
||||||
dispatch(setIsCarmode(false));
|
dispatch(setIsCarmode(false));
|
||||||
if (!isSharing) {
|
if (!isSharing) {
|
||||||
setPictureInPictureEnabled(true);
|
setPictureInPictureEnabled(true);
|
||||||
|
|
Loading…
Reference in New Issue