@@ -8,7 +8,6 @@ import android.content.Intent
88import android.os.Build
99import android.text.TextUtils
1010import android.util.AttributeSet
11- import android.util.Log
1211import android.view.LayoutInflater
1312import android.view.View
1413import android.view.ViewGroup
@@ -19,10 +18,6 @@ import com.tencent.cloud.tuikit.engine.extension.TUILiveListManager
1918import com.tencent.qcloud.tuicore.TUIConstants
2019import com.tencent.qcloud.tuicore.TUICore
2120import com.tencent.qcloud.tuicore.TUIThemeManager
22- import com.trtc.tuikit.common.foregroundservice.VideoForegroundService
23- import com.trtc.tuikit.common.permission.PermissionCallback
24- import com.trtc.tuikit.common.system.ContextProvider
25- import com.trtc.tuikit.common.util.ScreenUtil
2621import com.trtc.uikit.livekit.R
2722import com.trtc.uikit.livekit.common.COMPONENT_LIVE_STREAM
2823import com.trtc.uikit.livekit.common.ErrorLocalized
@@ -71,6 +66,11 @@ import com.trtc.uikit.livekit.features.anchorboardcast.view.cohost.widgets.CoHos
7166import com.trtc.uikit.livekit.features.anchorboardcast.view.cohost.widgets.CoHostForegroundWidgetsView
7267import com.trtc.uikit.livekit.features.anchorboardcast.view.settings.SettingsPanelDialog
7368import com.trtc.uikit.livekit.features.anchorboardcast.view.usermanage.UserManagerDialog
69+ import io.trtc.tuikit.atomicx.common.foregroundservice.VideoForegroundService
70+ import io.trtc.tuikit.atomicx.common.permission.PermissionCallback
71+ import com.tencent.cloud.tuikit.engine.common.ContextProvider
72+ import io.trtc.tuikit.atomicx.common.util.ScreenUtil
73+ import io.trtc.tuikit.atomicx.common.util.ScreenUtil.dip2px
7474import io.trtc.tuikit.atomicx.widget.basicwidget.alertdialog.AtomicAlertDialog
7575import io.trtc.tuikit.atomicx.widget.basicwidget.alertdialog.addItem
7676import io.trtc.tuikit.atomicx.widget.basicwidget.alertdialog.cancelButton
@@ -108,7 +108,6 @@ import io.trtc.tuikit.atomicxcore.api.live.SeatLayoutTemplate
108108import io.trtc.tuikit.atomicxcore.api.live.SeatUserInfo
109109import io.trtc.tuikit.atomicxcore.api.live.StopLiveCompletionHandler
110110import io.trtc.tuikit.atomicxcore.api.live.TakeSeatMode
111- import io.trtc.tuikit.atomicxcore.api.live.deprecated.LiveCoreViewDeprecated
112111import io.trtc.tuikit.atomicxcore.api.login.LoginStore
113112import io.trtc.tuikit.atomicxcore.api.view.CoreViewType
114113import io.trtc.tuikit.atomicxcore.api.view.LiveCoreView
@@ -118,8 +117,6 @@ import kotlinx.coroutines.CoroutineScope
118117import kotlinx.coroutines.Dispatchers
119118import kotlinx.coroutines.Job
120119import kotlinx.coroutines.launch
121- import org.json.JSONException
122- import org.json.JSONObject
123120import java.util.Locale
124121import java.util.Objects
125122
@@ -236,12 +233,13 @@ class AnchorView @JvmOverloads constructor(
236233 override fun onHostInvitationNoResponse (guestUser : LiveUserInfo , reason : NoResponseReason ) {
237234 if (reason == NoResponseReason .TIMEOUT ) {
238235 logger.info(" ${hashCode()} onUserConnectionAccepted:[guestUser:$guestUser ]" )
239- val context = ContextProvider .getApplicationContext()
240- AtomicToast .show(
241- context,
242- context.resources.getString(R .string.common_voiceroom_take_seat_timeout),
243- AtomicToast .Style .INFO
244- )
236+ ContextProvider .getApplicationContext()?.apply {
237+ AtomicToast .show(
238+ context,
239+ context.resources.getString(R .string.common_voiceroom_take_seat_timeout),
240+ AtomicToast .Style .INFO
241+ )
242+ }
245243 }
246244 }
247245 }
@@ -546,8 +544,6 @@ class AnchorView @JvmOverloads constructor(
546544 }
547545 })
548546
549- PIPPanelStore .sharedInstance().state.isAnchorStreaming = true
550-
551547 if (behavior == RoomBehavior .ENTER_ROOM ) {
552548 enterRoom()
553549 } else {
@@ -563,6 +559,7 @@ class AnchorView @JvmOverloads constructor(
563559 val liveListStore = LiveListStore .shared()
564560 liveListStore.joinLive(it.roomId, object : LiveInfoCompletionHandler {
565561 override fun onSuccess (liveInfo : LiveInfo ) {
562+ setCoreViewLayoutParamsWhenLandscape(liveInfo.seatTemplate)
566563 startLocalPreview(liveInfo)
567564 val activity = baseContext as Activity
568565 if (activity.isFinishing || activity.isDestroyed) {
@@ -634,37 +631,39 @@ class AnchorView @JvmOverloads constructor(
634631
635632 private fun startLocalPreview (liveInfo : LiveInfo ) {
636633 if (liveInfo.keepOwnerOnSeat) {
637- PermissionRequest .requestCameraPermissions(
638- ContextProvider .getApplicationContext(), object : PermissionCallback () {
639- override fun onGranted () {
640- logger.info(" requestCameraPermissions:[onGranted]" )
641- DeviceStore .shared().openLocalCamera(true , object : CompletionHandler {
642- override fun onSuccess () {
643- logger.info(" startCamera success, requestMicrophonePermissions" )
644- PermissionRequest .requestMicrophonePermissions(
645- ContextProvider .getApplicationContext(), object : PermissionCallback () {
646- override fun onGranted () {
647- logger.info(" requestMicrophonePermissions success" )
648- DeviceStore .shared().openLocalMicrophone(null )
649- }
650-
651- override fun onDenied () {
652- logger.error(" requestMicrophonePermissions:[onDenied]" )
653- }
654- })
655- }
656-
657- override fun onFailure (code : Int , desc : String ) {
658- logger.error(" startCamera failed:code:$code ,desc:$desc " )
659- }
660-
661- })
662- }
634+ ContextProvider .getApplicationContext()?.apply {
635+ PermissionRequest .requestCameraPermissions(
636+ this , object : PermissionCallback () {
637+ override fun onGranted () {
638+ logger.info(" requestCameraPermissions:[onGranted]" )
639+ DeviceStore .shared().openLocalCamera(true , object : CompletionHandler {
640+ override fun onSuccess () {
641+ logger.info(" startCamera success, requestMicrophonePermissions" )
642+ PermissionRequest .requestMicrophonePermissions(
643+ this @apply, object : PermissionCallback () {
644+ override fun onGranted () {
645+ logger.info(" requestMicrophonePermissions success" )
646+ DeviceStore .shared().openLocalMicrophone(null )
647+ }
648+
649+ override fun onDenied () {
650+ logger.error(" requestMicrophonePermissions:[onDenied]" )
651+ }
652+ })
653+ }
654+
655+ override fun onFailure (code : Int , desc : String ) {
656+ logger.error(" startCamera failed:code:$code ,desc:$desc " )
657+ }
658+
659+ })
660+ }
663661
664- override fun onDenied () {
665- logger.error(" requestCameraPermissions:[onDenied]" )
666- }
667- })
662+ override fun onDenied () {
663+ logger.error(" requestCameraPermissions:[onDenied]" )
664+ }
665+ })
666+ }
668667 }
669668 }
670669
@@ -751,6 +750,17 @@ class AnchorView @JvmOverloads constructor(
751750 }
752751 }
753752
753+ private fun setCoreViewLayoutParamsWhenLandscape (template : SeatLayoutTemplate ) {
754+ logger.info(" setCoreViewLayoutParamsWhenLandscape:template:$template ," )
755+ if (template == SeatLayoutTemplate .VideoLandscape4Seats ) {
756+ layoutCoreViewContainer.setRadius(0 )
757+ val layoutParams: FrameLayout .LayoutParams = layoutCoreViewContainer.layoutParams as FrameLayout .LayoutParams
758+ layoutParams.topMargin = dip2px(150f )
759+ layoutParams.height = ScreenUtil .getScreenWidth(context) * 720 / 1280
760+ layoutCoreViewContainer.layoutParams = layoutParams
761+ }
762+ }
763+
754764 private fun initBarrageStreamView () {
755765 val ownerUserId = LiveListStore .shared().liveState.currentLive.value.liveOwner.userID
756766 val liveId = LiveListStore .shared().liveState.currentLive.value.liveID
@@ -1393,18 +1403,18 @@ class AnchorView @JvmOverloads constructor(
13931403 }
13941404
13951405 private fun startForegroundService () {
1396- val context = ContextProvider .getApplicationContext()
1397- VideoForegroundService .start(
1398- context,
1399- context.getString(context.applicationInfo.labelRes),
1400- context.getString(R .string.common_app_running),
1401- 0
1402- )
1406+ ContextProvider .getApplicationContext()?.apply {
1407+ VideoForegroundService .start(
1408+ context,
1409+ context.getString(context.applicationInfo.labelRes),
1410+ context.getString(R .string.common_app_running),
1411+ 0
1412+ )
1413+ }
14031414 }
14041415
14051416 private fun stopForegroundService () {
1406- val context = ContextProvider .getApplicationContext()
1407- VideoForegroundService .stop(context)
1417+ ContextProvider .getApplicationContext()?.apply { VideoForegroundService .stop(context) }
14081418 }
14091419
14101420 private fun onCoGuestApplicantsChange (applicants : List <LiveUserInfo >) {
0 commit comments