mirror of
https://github.com/SrIzan10/helium.git
synced 2026-06-06 00:56:58 +00:00
chore: some webrtc build fixes
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION"/>
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
||||
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
|
||||
<uses-permission android:name="android.permission.VIBRATE"/>
|
||||
@@ -30,4 +30,4 @@
|
||||
</intent-filter>
|
||||
</activity>
|
||||
</application>
|
||||
</manifest>
|
||||
</manifest>
|
||||
@@ -1,13 +1,14 @@
|
||||
package dev.srizan.helium.viewer
|
||||
import expo.modules.splashscreen.SplashScreenManager
|
||||
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import com.oney.WebRTCModule.WebRTCModuleOptions
|
||||
|
||||
import com.facebook.react.ReactActivity
|
||||
import com.facebook.react.ReactActivityDelegate
|
||||
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled
|
||||
import com.facebook.react.defaults.DefaultReactActivityDelegate
|
||||
import com.oney.WebRTCModule.WebRTCModuleOptions
|
||||
|
||||
import expo.modules.ReactActivityDelegateWrapper
|
||||
|
||||
@@ -16,11 +17,11 @@ class MainActivity : ReactActivity() {
|
||||
// Set the theme to AppTheme BEFORE onCreate to support
|
||||
// coloring the background, status bar, and navigation bar.
|
||||
// This is required for expo-splash-screen.
|
||||
setTheme(R.style.AppTheme);
|
||||
|
||||
val webrtcOptions = WebRTCModuleOptions.getInstance()
|
||||
webrtcOptions.enableMediaProjectionService = true
|
||||
|
||||
// setTheme(R.style.AppTheme);
|
||||
// @generated begin expo-splashscreen - expo prebuild (DO NOT MODIFY) sync-f3ff59a738c56c9a6119210cb55f0b613eb8b6af
|
||||
SplashScreenManager.registerOnActivity(this)
|
||||
// @generated end expo-splashscreen
|
||||
WebRTCModuleOptions.getInstance().enableMediaProjectionService = true
|
||||
super.onCreate(null)
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
},
|
||||
"plugins": [
|
||||
"expo-secure-store",
|
||||
"./plugins/withWebRTCMediaProjection",
|
||||
[
|
||||
"expo-splash-screen",
|
||||
{
|
||||
|
||||
58
native-app/plugins/withWebRTCMediaProjection.js
Normal file
58
native-app/plugins/withWebRTCMediaProjection.js
Normal file
@@ -0,0 +1,58 @@
|
||||
const {
|
||||
AndroidConfig,
|
||||
createRunOncePlugin,
|
||||
withMainActivity,
|
||||
} = require("expo/config-plugins");
|
||||
|
||||
const PERMISSIONS = [
|
||||
"android.permission.FOREGROUND_SERVICE",
|
||||
"android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION",
|
||||
];
|
||||
|
||||
function withMediaProjectionPermissions(config) {
|
||||
return AndroidConfig.Permissions.withPermissions(config, PERMISSIONS);
|
||||
}
|
||||
|
||||
function withMediaProjectionMainActivity(config) {
|
||||
return withMainActivity(config, (configWithActivity) => {
|
||||
const { modResults } = configWithActivity;
|
||||
const importLine =
|
||||
modResults.language === "kt"
|
||||
? "import com.oney.WebRTCModule.WebRTCModuleOptions"
|
||||
: "import com.oney.WebRTCModule.WebRTCModuleOptions;";
|
||||
|
||||
const enableLine =
|
||||
modResults.language === "kt"
|
||||
? " WebRTCModuleOptions.getInstance().enableMediaProjectionService = true"
|
||||
: " WebRTCModuleOptions.getInstance().enableMediaProjectionService = true;";
|
||||
|
||||
if (!modResults.contents.includes(importLine)) {
|
||||
modResults.contents = modResults.contents.replace(
|
||||
/import android\.os\.Bundle\n/,
|
||||
`import android.os.Bundle\n${importLine}\n`,
|
||||
);
|
||||
}
|
||||
|
||||
if (!modResults.contents.includes("enableMediaProjectionService = true")) {
|
||||
modResults.contents = modResults.contents.replace(
|
||||
/\s*super\.onCreate\(null\)/,
|
||||
`\n${enableLine}\n super.onCreate(null)`,
|
||||
);
|
||||
}
|
||||
|
||||
configWithActivity.modResults = modResults;
|
||||
return configWithActivity;
|
||||
});
|
||||
}
|
||||
|
||||
function withWebRTCMediaProjection(config) {
|
||||
config = withMediaProjectionPermissions(config);
|
||||
config = withMediaProjectionMainActivity(config);
|
||||
return config;
|
||||
}
|
||||
|
||||
module.exports = createRunOncePlugin(
|
||||
withWebRTCMediaProjection,
|
||||
"with-webrtc-media-projection",
|
||||
"1.0.0",
|
||||
);
|
||||
@@ -27,12 +27,6 @@
|
||||
"electron:publish:win": "pnpm electron:compile && electron-builder --win --publish always",
|
||||
"electron:publish:mac": "pnpm electron:compile && electron-builder --mac --publish always",
|
||||
"electron:publish:linux": "pnpm electron:compile && electron-builder --linux --publish always",
|
||||
"mobile:install": "pnpm -C mobile-wrapper install",
|
||||
"mobile:dev": "pnpm -C mobile-wrapper dev",
|
||||
"mobile:build": "pnpm -C mobile-wrapper build",
|
||||
"mobile:android:add": "pnpm -C mobile-wrapper cap:android:add",
|
||||
"mobile:android:sync": "pnpm -C mobile-wrapper cap:sync",
|
||||
"mobile:android:open": "pnpm -C mobile-wrapper cap:android:open",
|
||||
"native:install": "pnpm -C native-app install",
|
||||
"native:android": "pnpm -C native-app android",
|
||||
"native:start": "pnpm -C native-app start",
|
||||
|
||||
Reference in New Issue
Block a user