refactor: aspect ratio fit preserved

This commit is contained in:
jubb 2021-12-07 13:36:34 +11:00
parent ba590909df
commit ef79eb4bb2
3 changed files with 22 additions and 4 deletions

View File

@ -8,8 +8,11 @@ import android.content.IntentFilter
import android.media.AudioManager
import android.os.Build
import android.os.Bundle
import android.view.Gravity
import android.view.MenuItem
import android.view.ViewGroup
import android.view.WindowManager
import android.widget.FrameLayout
import androidx.activity.viewModels
import androidx.core.content.ContextCompat
import androidx.core.view.contains
@ -35,6 +38,7 @@ import org.thoughtcrime.securesms.webrtc.AudioManagerCommand
import org.thoughtcrime.securesms.webrtc.CallViewModel
import org.thoughtcrime.securesms.webrtc.CallViewModel.State.*
import org.thoughtcrime.securesms.webrtc.audio.SignalAudioManager.AudioDevice.*
import org.webrtc.RendererCommon
import java.util.*
@AndroidEntryPoint
@ -228,6 +232,11 @@ class WebRtcCallActivity: PassphraseRequiredActionBarActivity() {
viewModel.localRenderer?.let { surfaceView ->
surfaceView.setZOrderOnTop(true)
local_renderer.addView(surfaceView)
val params = surfaceView.layoutParams as FrameLayout.LayoutParams
params.width = FrameLayout.LayoutParams.WRAP_CONTENT
params.height = FrameLayout.LayoutParams.WRAP_CONTENT
params.gravity = Gravity.CENTER
surfaceView.layoutParams = params
}
}
local_renderer.isVisible = isEnabled
@ -239,7 +248,14 @@ class WebRtcCallActivity: PassphraseRequiredActionBarActivity() {
viewModel.remoteVideoEnabledState.collect { isEnabled ->
remote_renderer.removeAllViews()
if (isEnabled) {
viewModel.remoteRenderer?.let { remote_renderer.addView(it) }
viewModel.remoteRenderer?.let { surfaceView ->
remote_renderer.addView(surfaceView)
val params = surfaceView.layoutParams as FrameLayout.LayoutParams
params.width = ViewGroup.LayoutParams.WRAP_CONTENT
params.height = ViewGroup.LayoutParams.WRAP_CONTENT
params.gravity = Gravity.CENTER
surfaceView.layoutParams = params
}
}
remote_renderer.isVisible = isEnabled
remote_recipient.isVisible = !isEnabled

View File

@ -175,6 +175,8 @@ class CallManager(context: Context, audioManager: AudioManagerCompat, private va
localRenderer = SurfaceViewRenderer(context)
remoteRenderer = SurfaceViewRenderer(context)
localRenderer?.setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_FIT)
remoteRenderer?.setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_FIT)
localRenderer?.init(base.eglBaseContext, null)
remoteRenderer?.init(base.eglBaseContext, null)
@ -184,7 +186,7 @@ class CallManager(context: Context, audioManager: AudioManagerCompat, private va
peerConnectionFactory = PeerConnectionFactory.builder()
.setOptions(object: PeerConnectionFactory.Options() {
init {
// networkIgnoreMask = 1 shl 4
networkIgnoreMask = 1 shl 4
}
})
.setVideoEncoderFactory(encoderFactory)

View File

@ -59,7 +59,7 @@
android:id="@+id/callTime"
android:textSize="@dimen/medium_font_size"
android:textColor="@color/text"
tools:text="00:05:20"
tools:text="@tools:sample/date/hhmmss"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@+id/sessionCallText"
@ -214,7 +214,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:constraint_referenced_ids="switchCameraButton,enableCameraButton,microphoneButton,speakerPhoneButton"
app:constraint_referenced_ids="switchCameraButton,enableCameraButton,microphoneButton,speakerPhoneButton,acceptCallButton,declineCallButton"
/>
</androidx.constraintlayout.widget.ConstraintLayout>