Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 39 additions & 25 deletions App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,11 @@ import { getLatestRelease, Release } from './src/githubApi';
import env from './src/env';
import { openDMChannelRequest } from './src/services/UserService';
import { SafeAreaView } from 'react-native-safe-area-context';
import { CallUI } from './src/components/CallUI';
import { SocketProvider } from './src/SocketProvider';
import { CallProvider } from './src/CallProvider';
import { WebViewProvider } from './src/WebViewProvider';
import { UserStoreProvider } from './src/UserStoreProvider';

TrackPlayer.setupPlayer();

Expand Down Expand Up @@ -163,31 +168,40 @@ function App(): JSX.Element {
}, []);

return (
<View style={{ flex: 1, backgroundColor: 'black' }}>
<SafeAreaView style={{ flex: 1 }}>
<KeyboardAvoidingView
style={{ flex: 1 }}
behavior={Platform.OS === 'android' ? behaviour : undefined}
>
<CustomWebView
onAuthenticated={() => setAuthenticated(true)}
ref={webViewRef}
// url={url || 'http://192.168.1.53:3000/login'}
url={url || 'https://nerimity.com/login'}
onVideoClick={setVideoUrl}
/>
<Show when={videoUrl}>
<CustomVideo
ref={videoRef}
videoUrl={videoUrl!}
onVideoEnd={() => {
setVideoUrl(null);
}}
/>
</Show>
</KeyboardAvoidingView>
</SafeAreaView>
</View>
<UserStoreProvider>
<WebViewProvider>
<SocketProvider>
<CallProvider>
<View style={{ flex: 1, backgroundColor: 'black' }}>
<SafeAreaView style={{ flex: 1 }}>
<KeyboardAvoidingView
style={{ flex: 1 }}
behavior={Platform.OS === 'android' ? behaviour : undefined}
>
<CallUI />
<CustomWebView
onAuthenticated={() => setAuthenticated(true)}
ref={webViewRef}
// url={url || 'http://192.168.1.53:3000/login'}
url={url || 'https://nerimity.com/login'}
onVideoClick={setVideoUrl}
/>
<Show when={videoUrl}>
<CustomVideo
ref={videoRef}
videoUrl={videoUrl!}
onVideoEnd={() => {
setVideoUrl(null);
}}
/>
</Show>
</KeyboardAvoidingView>
</SafeAreaView>
</View>
</CallProvider>
</SocketProvider>
</WebViewProvider>
</UserStoreProvider>
);
}

Expand Down
16 changes: 14 additions & 2 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">

<uses-permission android:name="android.permission.INTERNET" />

Expand All @@ -9,7 +10,9 @@
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.VIDEO_CAPTURE" />
<uses-permission android:name="android.permission.AUDIO_CAPTURE" />


<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE" />

<application
android:name=".MainApplication"
Expand All @@ -20,6 +23,15 @@
android:theme="@style/AppTheme"
android:usesCleartextTraffic="${usesCleartextTraffic}"
android:supportsRtl="true">


<service
android:name="app.notifee.core.ForegroundService"
android:stopWithTask="true"
tools:replace="android:stopWithTask"
android:foregroundServiceType="microphone"
android:exported="false" />

<activity
android:name=".MainActivity"
android:label="@string/app_name"
Expand Down
8 changes: 8 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,13 @@
import { AppRegistry } from 'react-native';
import App from './App';
import { name as appName } from './app.json';
import notifee from '@notifee/react-native';

notifee.registerForegroundService(() => {
return new Promise(() => {
// Keep the promise unresolved to keep the service alive
// It will be stopped when stopForegroundService() is called
});
});

AppRegistry.registerComponent(appName, () => App);
Loading
Loading