Skip to content

Commit 9ff19c8

Browse files
MHShettythestinger
authored andcommitted
Implement "Include Audio" functionality to work in recording
1 parent 0c1e769 commit 9ff19c8

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

app/src/main/java/app/grapheneos/camera/ui/SettingsDialog.kt

+28
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package app.grapheneos.camera.ui
22

3+
import android.Manifest
34
import android.animation.ArgbEvaluator
45
import android.animation.ValueAnimator
56
import android.app.Dialog
7+
import android.content.pm.PackageManager
68
import android.graphics.Color
79
import android.hardware.camera2.CameraCharacteristics
810
import android.hardware.camera2.CameraMetadata
@@ -36,6 +38,7 @@ import androidx.camera.core.DynamicRange
3638
import androidx.camera.core.ImageCapture
3739
import androidx.camera.video.Quality
3840
import androidx.camera.video.Recorder
41+
import androidx.core.app.ActivityCompat
3942
import app.grapheneos.camera.CamConfig
4043
import app.grapheneos.camera.R
4144
import app.grapheneos.camera.databinding.SettingsBinding
@@ -324,6 +327,31 @@ class SettingsDialog(val mActivity: MainActivity) :
324327

325328
includeAudioToggle = binding.includeAudioSwitch
326329
includeAudioToggle.setOnClickListener {
330+
if (mActivity.videoCapturer.isRecording) {
331+
if (ActivityCompat.checkSelfPermission(mActivity, Manifest.permission.RECORD_AUDIO)
332+
!= PackageManager.PERMISSION_GRANTED) {
333+
334+
// Inform the user why enabling this option isn't possible
335+
mActivity.showMessage("Unable to request for audio permission in between a recording")
336+
337+
// Ensure the option is visually off
338+
includeAudioToggle.isChecked = false
339+
return@setOnClickListener
340+
}
341+
342+
if (includeAudioToggle.isChecked) {
343+
mActivity.videoCapturer.unmuteRecording()
344+
} else {
345+
mActivity.videoCapturer.muteRecording()
346+
}
347+
}
348+
349+
mActivity.micOffIcon.visibility = if (includeAudioToggle.isChecked) {
350+
View.GONE
351+
} else {
352+
View.VISIBLE
353+
}
354+
327355
camConfig.includeAudio = includeAudioToggle.isChecked
328356
}
329357

0 commit comments

Comments
 (0)