mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-18 07:29:39 +02:00
refactor: restructure
monorepo with apps/ and services/ directories
This commit is contained in:
parent
25824ed0ac
commit
ff80aeec1f
4062 changed files with 2592 additions and 1278 deletions
|
|
@ -0,0 +1,61 @@
|
|||
const { withAndroidManifest } = require('@expo/config-plugins');
|
||||
|
||||
/**
|
||||
* Expo config plugin to add foreground service type for microphone to Android manifest
|
||||
* This is required for Android 10+ to properly maintain audio recording when device is locked
|
||||
*/
|
||||
module.exports = function withAndroidForegroundService(config) {
|
||||
return withAndroidManifest(config, async config => {
|
||||
const androidManifest = config.modResults;
|
||||
|
||||
// Add the foreground service type to the manifest
|
||||
const application = androidManifest.manifest.application[0];
|
||||
|
||||
// Check if service declarations exist, if not create them
|
||||
if (!application.service) {
|
||||
application.service = [];
|
||||
}
|
||||
|
||||
// Check if Notifee's foreground service already exists
|
||||
const notifeeService = application.service.find(
|
||||
service => service.$['android:name'] === 'app.notifee.core.ForegroundService'
|
||||
);
|
||||
|
||||
if (!notifeeService) {
|
||||
// Add the Notifee foreground service with microphone type
|
||||
application.service.push({
|
||||
$: {
|
||||
'android:name': 'app.notifee.core.ForegroundService',
|
||||
'android:foregroundServiceType': 'microphone',
|
||||
'android:exported': 'false'
|
||||
}
|
||||
});
|
||||
console.log('✅ Added foreground service declaration with microphone type to Android manifest');
|
||||
} else {
|
||||
// Update existing service to include microphone type
|
||||
notifeeService.$['android:foregroundServiceType'] = 'microphone';
|
||||
notifeeService.$['android:exported'] = 'false';
|
||||
console.log('✅ Updated existing foreground service with microphone type in Android manifest');
|
||||
}
|
||||
|
||||
// Also ensure the FOREGROUND_SERVICE_MICROPHONE permission is present
|
||||
const permissions = androidManifest.manifest['uses-permission'] || [];
|
||||
const hasMicrophoneServicePermission = permissions.some(
|
||||
perm => perm.$['android:name'] === 'android.permission.FOREGROUND_SERVICE_MICROPHONE'
|
||||
);
|
||||
|
||||
if (!hasMicrophoneServicePermission) {
|
||||
if (!androidManifest.manifest['uses-permission']) {
|
||||
androidManifest.manifest['uses-permission'] = [];
|
||||
}
|
||||
androidManifest.manifest['uses-permission'].push({
|
||||
$: {
|
||||
'android:name': 'android.permission.FOREGROUND_SERVICE_MICROPHONE'
|
||||
}
|
||||
});
|
||||
console.log('✅ Added FOREGROUND_SERVICE_MICROPHONE permission to Android manifest');
|
||||
}
|
||||
|
||||
return config;
|
||||
});
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue