diff --git a/.github/workflows/analysis.yml b/.github/workflows/analysis.yml index ae87a05fd15..bbe92b1104b 100644 --- a/.github/workflows/analysis.yml +++ b/.github/workflows/analysis.yml @@ -71,7 +71,7 @@ jobs: run: | mkdir -p "$HOME/.gradle" { - echo "org.gradle.jvmargs=-Xmx5g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC -XX:MaxMetaspaceSize=1g" + echo "org.gradle.jvmargs=-Xmx3g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC -XX:MaxMetaspaceSize=1g" echo "org.gradle.configureondemand=true" echo "kapt.incremental.apt=true" } > "$HOME/.gradle/gradle.properties" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4cf4bc0ed67..14b80432d83 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -306,7 +306,7 @@ + android:foregroundServiceType="microphone|camera" /> = Build.VERSION_CODES.Q) { - startForeground( - NOTIFICATION_ID, - notification, - resolveForegroundServiceType(callExtras) - ) + val foregroundServiceType = resolveForegroundServiceType(callExtras) + startForeground(NOTIFICATION_ID, notification, foregroundServiceType) } else { startForeground(NOTIFICATION_ID, notification) } @@ -90,21 +88,20 @@ class CallForegroundService : Service() { } private fun resolveForegroundServiceType(callExtras: Bundle?): Int { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) { - return 0 - } - - var serviceType = ServiceInfo.FOREGROUND_SERVICE_TYPE_MICROPHONE - val isVoiceOnlyCall = callExtras?.getBoolean(KEY_CALL_VOICE_ONLY, false) ?: false - val canPublishVideo = callExtras?.getBoolean( - KEY_PARTICIPANT_PERMISSION_CAN_PUBLISH_VIDEO, - false - ) ?: false - - if (!isVoiceOnlyCall && canPublishVideo) { - serviceType = serviceType or ServiceInfo.FOREGROUND_SERVICE_TYPE_CAMERA + var serviceType = 0 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + serviceType = serviceType or ServiceInfo.FOREGROUND_SERVICE_TYPE_MICROPHONE + + val isVoiceOnlyCall = callExtras?.getBoolean(KEY_CALL_VOICE_ONLY, false) ?: false + val canPublishVideo = callExtras?.getBoolean( + KEY_PARTICIPANT_PERMISSION_CAN_PUBLISH_VIDEO, + false + ) ?: false + + if (!isVoiceOnlyCall && canPublishVideo) { + serviceType = serviceType or ServiceInfo.FOREGROUND_SERVICE_TYPE_CAMERA + } } - return serviceType }