From 666a4f1ad0f2810fed9234b17e0beb7b8f0bb366 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 16 May 2023 09:42:11 +0200 Subject: [PATCH] Improved how TextureViews are handled in calls & confs --- app/build.gradle | 2 +- .../voip/fragments/CallsListFragment.kt | 14 ++++++++++++-- .../voip/fragments/ConferenceLayoutFragment.kt | 11 +++++++---- .../fragments/ConferenceParticipantsFragment.kt | 6 ++---- .../voip/fragments/GenericVideoPreviewFragment.kt | 15 +++++---------- .../voip/fragments/OutgoingCallFragment.kt | 13 ++++++++----- .../voip/fragments/SingleCallFragment.kt | 9 ++++++--- 7 files changed, 41 insertions(+), 29 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 767676097..f2f0e860a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -247,7 +247,7 @@ dependencies { implementation 'org.linphone:linphone-sdk-android:5.2+' // Only enable leak canary prior to release - //debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.4' + // debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.10' } task generateContactsXml(type: Copy) { diff --git a/app/src/main/java/org/linphone/activities/voip/fragments/CallsListFragment.kt b/app/src/main/java/org/linphone/activities/voip/fragments/CallsListFragment.kt index 2cd8ba9a3..d48bf8e71 100644 --- a/app/src/main/java/org/linphone/activities/voip/fragments/CallsListFragment.kt +++ b/app/src/main/java/org/linphone/activities/voip/fragments/CallsListFragment.kt @@ -62,8 +62,6 @@ class CallsListFragment : GenericVideoPreviewFragment @@ -90,12 +87,13 @@ class ConferenceParticipantsFragment : GenericVideoPreviewFragment : GenericFragmen private var switchY: Float = 0f private var switchCameraImageView: ImageView? = null - private lateinit var videoPreviewTextureView: TextureView private val previewTouchListener = View.OnTouchListener { view, event -> when (event.action) { @@ -67,17 +66,13 @@ abstract class GenericVideoPreviewFragment : GenericFragmen } } - protected fun setupLocalViewPreview(localVideoPreview: TextureView, switchCamera: ImageView?) { - videoPreviewTextureView = localVideoPreview + protected fun setupLocalVideoPreview(localVideoPreview: TextureView, switchCamera: ImageView?) { switchCameraImageView = switchCamera - videoPreviewTextureView.setOnTouchListener(previewTouchListener) + localVideoPreview.setOnTouchListener(previewTouchListener) + coreContext.core.nativePreviewWindowId = localVideoPreview } - override fun onResume() { - super.onResume() - - if (::videoPreviewTextureView.isInitialized) { - coreContext.core.nativePreviewWindowId = videoPreviewTextureView - } + protected fun cleanUpLocalVideoPreview(localVideoPreview: TextureView) { + localVideoPreview.setOnTouchListener(null) } } diff --git a/app/src/main/java/org/linphone/activities/voip/fragments/OutgoingCallFragment.kt b/app/src/main/java/org/linphone/activities/voip/fragments/OutgoingCallFragment.kt index 32bc7b828..8ba1baa55 100644 --- a/app/src/main/java/org/linphone/activities/voip/fragments/OutgoingCallFragment.kt +++ b/app/src/main/java/org/linphone/activities/voip/fragments/OutgoingCallFragment.kt @@ -24,7 +24,6 @@ import android.os.SystemClock import android.view.View import android.widget.Chronometer import androidx.navigation.navGraphViewModels -import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.R import org.linphone.activities.navigateToActiveCall import org.linphone.activities.voip.viewmodels.CallsViewModel @@ -46,8 +45,6 @@ class OutgoingCallFragment : GenericVideoPreviewFragment