mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-19 19:49:33 +01:00
fix no sound after mic permission granted
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
parent
7e609d80c0
commit
fbad489ecb
@ -317,9 +317,7 @@ class CallActivity : CallBaseActivity() {
|
||||
val audioPermission = permissionMap[Manifest.permission.RECORD_AUDIO]
|
||||
if (audioPermission != null) {
|
||||
if (java.lang.Boolean.TRUE == audioPermission) {
|
||||
if (!microphoneOn) {
|
||||
onMicrophoneClick()
|
||||
}
|
||||
Log.d(TAG, "Microphone permission was granted")
|
||||
} else {
|
||||
rationaleList.add(resources.getString(R.string.nc_microphone_permission_hint))
|
||||
}
|
||||
@ -327,15 +325,7 @@ class CallActivity : CallBaseActivity() {
|
||||
val cameraPermission = permissionMap[Manifest.permission.CAMERA]
|
||||
if (cameraPermission != null) {
|
||||
if (java.lang.Boolean.TRUE == cameraPermission) {
|
||||
if (!videoOn) {
|
||||
onCameraClick()
|
||||
}
|
||||
if (cameraEnumerator!!.deviceNames.isEmpty()) {
|
||||
binding!!.cameraButton.visibility = View.GONE
|
||||
}
|
||||
if (cameraEnumerator!!.deviceNames.size > 1) {
|
||||
binding!!.switchSelfVideoButton.visibility = View.VISIBLE
|
||||
}
|
||||
Log.d(TAG, "Camera permission was granted")
|
||||
} else {
|
||||
rationaleList.add(resources.getString(R.string.nc_camera_permission_hint))
|
||||
}
|
||||
@ -357,6 +347,10 @@ class CallActivity : CallBaseActivity() {
|
||||
if (rationaleList.isNotEmpty()) {
|
||||
showRationaleDialogForSettings(rationaleList)
|
||||
}
|
||||
|
||||
if (!isConnectionEstablished) {
|
||||
prepareCall()
|
||||
}
|
||||
}
|
||||
private var canPublishAudioStream = false
|
||||
private var canPublishVideoStream = false
|
||||
@ -404,14 +398,11 @@ class CallActivity : CallBaseActivity() {
|
||||
.setDuration(PULSE_ANIMATION_DURATION)
|
||||
.setRepeatCount(PulseAnimation.INFINITE)
|
||||
.setRepeatMode(PulseAnimation.REVERSE)
|
||||
basicInitialization()
|
||||
callParticipants = HashMap()
|
||||
participantDisplayItems = HashMap()
|
||||
initViews()
|
||||
updateSelfVideoViewPosition()
|
||||
reactionAnimator = ReactionAnimator(context, binding!!.reactionAnimationWrapper, viewThemeUtils)
|
||||
|
||||
checkRecordingConsentAndInitiateCall()
|
||||
checkInitialDevicePermissions()
|
||||
}
|
||||
|
||||
private fun initCallRecordingViewModel(recordingState: Int) {
|
||||
@ -877,7 +868,6 @@ class CallActivity : CallBaseActivity() {
|
||||
private fun initViews() {
|
||||
Log.d(TAG, "initViews")
|
||||
binding!!.callInfosLinearLayout.visibility = View.VISIBLE
|
||||
binding!!.selfVideoViewWrapper.visibility = View.VISIBLE
|
||||
if (!isPipModePossible) {
|
||||
binding!!.pictureInPictureButton.visibility = View.GONE
|
||||
}
|
||||
@ -995,13 +985,11 @@ class CallActivity : CallBaseActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun checkDevicePermissions() {
|
||||
private fun checkInitialDevicePermissions() {
|
||||
val permissionsToRequest: MutableList<String> = ArrayList()
|
||||
val rationaleList: MutableList<String> = ArrayList()
|
||||
if (permissionUtil!!.isMicrophonePermissionGranted()) {
|
||||
if (!microphoneOn) {
|
||||
onMicrophoneClick()
|
||||
}
|
||||
Log.d(TAG, "Microphone permission already granted")
|
||||
} else if (shouldShowRequestPermissionRationale(Manifest.permission.RECORD_AUDIO)) {
|
||||
permissionsToRequest.add(Manifest.permission.RECORD_AUDIO)
|
||||
rationaleList.add(resources.getString(R.string.nc_microphone_permission_hint))
|
||||
@ -1011,15 +999,7 @@ class CallActivity : CallBaseActivity() {
|
||||
|
||||
if (!isVoiceOnlyCall) {
|
||||
if (permissionUtil!!.isCameraPermissionGranted()) {
|
||||
if (!videoOn) {
|
||||
onCameraClick()
|
||||
}
|
||||
if (cameraEnumerator!!.deviceNames.isEmpty()) {
|
||||
binding!!.cameraButton.visibility = View.GONE
|
||||
}
|
||||
if (cameraEnumerator!!.deviceNames.size > 1) {
|
||||
binding!!.switchSelfVideoButton.visibility = View.VISIBLE
|
||||
}
|
||||
Log.d(TAG, "Camera permission already granted")
|
||||
} else if (shouldShowRequestPermissionRationale(Manifest.permission.CAMERA)) {
|
||||
permissionsToRequest.add(Manifest.permission.CAMERA)
|
||||
rationaleList.add(resources.getString(R.string.nc_camera_permission_hint))
|
||||
@ -1037,16 +1017,41 @@ class CallActivity : CallBaseActivity() {
|
||||
permissionsToRequest.add(Manifest.permission.BLUETOOTH_CONNECT)
|
||||
}
|
||||
}
|
||||
|
||||
if (permissionsToRequest.isNotEmpty()) {
|
||||
if (rationaleList.isNotEmpty()) {
|
||||
showRationaleDialog(permissionsToRequest, rationaleList)
|
||||
} else {
|
||||
requestPermissionLauncher.launch(permissionsToRequest.toTypedArray())
|
||||
}
|
||||
} else if (!isConnectionEstablished) {
|
||||
prepareCall()
|
||||
}
|
||||
}
|
||||
|
||||
if (!isConnectionEstablished) {
|
||||
fetchSignalingSettings()
|
||||
private fun prepareCall() {
|
||||
basicInitialization()
|
||||
initViews()
|
||||
updateSelfVideoViewPosition()
|
||||
checkRecordingConsentAndInitiateCall()
|
||||
|
||||
if (permissionUtil!!.isMicrophonePermissionGranted()) {
|
||||
if (!microphoneOn) {
|
||||
onMicrophoneClick()
|
||||
}
|
||||
}
|
||||
|
||||
if (isVoiceOnlyCall) {
|
||||
binding!!.selfVideoViewWrapper.visibility = View.GONE
|
||||
} else if (permissionUtil!!.isCameraPermissionGranted()) {
|
||||
binding!!.selfVideoViewWrapper.visibility = View.VISIBLE
|
||||
onCameraClick()
|
||||
if (cameraEnumerator!!.deviceNames.isEmpty()) {
|
||||
binding!!.cameraButton.visibility = View.GONE
|
||||
}
|
||||
if (cameraEnumerator!!.deviceNames.size > 1) {
|
||||
binding!!.switchSelfVideoButton.visibility = View.VISIBLE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1603,8 +1608,8 @@ class CallActivity : CallBaseActivity() {
|
||||
}
|
||||
|
||||
override fun onError(e: Throwable) {
|
||||
Snackbar.make(binding!!.root, R.string.nc_common_error_sorry, Snackbar.LENGTH_LONG).show()
|
||||
Log.e(TAG, "Failed to fetch capabilities", e)
|
||||
Snackbar.make(binding!!.root, R.string.nc_common_error_sorry, Snackbar.LENGTH_LONG).show()
|
||||
// unused atm
|
||||
}
|
||||
|
||||
@ -1925,7 +1930,7 @@ class CallActivity : CallBaseActivity() {
|
||||
Log.d(TAG, "connection already established")
|
||||
return
|
||||
}
|
||||
checkDevicePermissions()
|
||||
fetchSignalingSettings()
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.BACKGROUND)
|
||||
|
@ -46,7 +46,9 @@
|
||||
<FrameLayout
|
||||
android:id="@+id/selfVideoViewWrapper"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible">
|
||||
|
||||
<org.webrtc.SurfaceViewRenderer
|
||||
android:id="@+id/selfVideoRenderer"
|
||||
|
Loading…
Reference in New Issue
Block a user