mirror of
https://gitlab.linphone.org/BC/public/linphone-android.git
synced 2026-01-17 11:28:06 +00:00
Fixed issue with save/restore video preview position
This commit is contained in:
parent
1ead4d9218
commit
4dd92cddf0
4 changed files with 25 additions and 10 deletions
|
|
@ -29,6 +29,7 @@ import android.view.View
|
|||
import android.view.ViewGroup
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
import androidx.constraintlayout.widget.ConstraintSet
|
||||
import androidx.core.view.doOnLayout
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat
|
||||
|
|
@ -303,7 +304,9 @@ class ActiveConferenceCallFragment : GenericCallFragment() {
|
|||
override fun onResume() {
|
||||
super.onResume()
|
||||
|
||||
setupVideoPreview(binding.localPreviewVideoSurface)
|
||||
(binding.root as? ViewGroup)?.doOnLayout {
|
||||
setupVideoPreview(binding.localPreviewVideoSurface)
|
||||
}
|
||||
|
||||
coreContext.postOnCoreThread {
|
||||
// Need to be done manually
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ import android.view.animation.AnimationUtils
|
|||
import androidx.activity.OnBackPressedCallback
|
||||
import androidx.annotation.UiThread
|
||||
import androidx.constraintlayout.widget.ConstraintSet
|
||||
import androidx.core.view.doOnLayout
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat
|
||||
|
|
@ -394,7 +395,9 @@ class ActiveCallFragment : GenericCallFragment() {
|
|||
override fun onResume() {
|
||||
super.onResume()
|
||||
|
||||
setupVideoPreview(binding.localPreviewVideoSurface)
|
||||
(binding.root as? ViewGroup)?.doOnLayout {
|
||||
setupVideoPreview(binding.localPreviewVideoSurface)
|
||||
}
|
||||
|
||||
coreContext.postOnCoreThread { core ->
|
||||
Log.i("$TAG Fragment resuming, setting native video window ID")
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ import android.view.MotionEvent
|
|||
import android.view.View
|
||||
import androidx.annotation.UiThread
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import org.linphone.core.tools.Log
|
||||
import org.linphone.ui.GenericFragment
|
||||
import org.linphone.ui.call.view.RoundCornersTextureView
|
||||
import org.linphone.ui.call.viewmodel.SharedCallViewModel
|
||||
|
|
@ -46,8 +47,8 @@ abstract class GenericCallFragment : GenericFragment() {
|
|||
true
|
||||
}
|
||||
MotionEvent.ACTION_UP -> {
|
||||
sharedViewModel.videoPreviewX = view.translationX
|
||||
sharedViewModel.videoPreviewY = view.translationY
|
||||
sharedViewModel.videoPreviewX = view.x
|
||||
sharedViewModel.videoPreviewY = view.y
|
||||
true
|
||||
}
|
||||
MotionEvent.ACTION_MOVE -> {
|
||||
|
|
@ -75,12 +76,17 @@ abstract class GenericCallFragment : GenericFragment() {
|
|||
|
||||
@SuppressLint("ClickableViewAccessibility")
|
||||
protected fun setupVideoPreview(localPreviewVideoSurface: RoundCornersTextureView) {
|
||||
if (requireActivity().isInPictureInPictureMode) {
|
||||
Log.i("$TAG Activity is in PiP mode, do not move video preview")
|
||||
return
|
||||
}
|
||||
|
||||
// To restore video preview position if possible
|
||||
localPreviewVideoSurface.animate()
|
||||
.x(sharedViewModel.videoPreviewX)
|
||||
.y(sharedViewModel.videoPreviewY)
|
||||
.setDuration(0)
|
||||
.start()
|
||||
if (sharedViewModel.videoPreviewX != 0f && sharedViewModel.videoPreviewY != 0f) {
|
||||
Log.i("$TAG Restoring video preview position with position X [${sharedViewModel.videoPreviewX}] and Y [${sharedViewModel.videoPreviewY}]")
|
||||
localPreviewVideoSurface.x = sharedViewModel.videoPreviewX
|
||||
localPreviewVideoSurface.y = sharedViewModel.videoPreviewY
|
||||
}
|
||||
|
||||
localPreviewVideoSurface.setOnTouchListener(videoPreviewTouchListener)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ import android.view.LayoutInflater
|
|||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.annotation.UiThread
|
||||
import androidx.core.view.doOnLayout
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import org.linphone.LinphoneApplication.Companion.coreContext
|
||||
import org.linphone.core.tools.Log
|
||||
|
|
@ -72,7 +73,9 @@ class OutgoingCallFragment : GenericCallFragment() {
|
|||
override fun onResume() {
|
||||
super.onResume()
|
||||
|
||||
setupVideoPreview(binding.localPreviewVideoSurface)
|
||||
(binding.root as? ViewGroup)?.doOnLayout {
|
||||
setupVideoPreview(binding.localPreviewVideoSurface)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue