|
|
@@ -1,12 +1,22 @@
|
|
|
package com.tencent.qcloud.tuikit.tuicallkit.manager
|
|
|
|
|
|
import android.content.Context
|
|
|
+import com.adealink.frame.log.Log
|
|
|
import com.adealink.weparty.call.R
|
|
|
+import com.adealink.weparty.call.constant.TAG_CALL_ENGINE
|
|
|
+import com.adealink.weparty.call.datasource.local.CallLocalService
|
|
|
+import com.adealink.weparty.call.util.PermissionRequest
|
|
|
+import com.adealink.weparty.call.widget.float.calling.CallingFloatData
|
|
|
+import com.adealink.weparty.call.widget.float.calling.CallingFloatView
|
|
|
+import com.adealink.weparty.commonui.widget.floatview.data.MODE_APPLICATION
|
|
|
+import com.adealink.weparty.commonui.widget.floatview.data.MODE_SYSTEM
|
|
|
import com.tencent.cloud.tuikit.engine.call.TUICallDefine
|
|
|
import com.tencent.cloud.tuikit.engine.call.TUICallEngine
|
|
|
import com.tencent.cloud.tuikit.engine.common.TUICommonDefine
|
|
|
import com.tencent.imsdk.BaseConstants
|
|
|
import com.tencent.qcloud.tuicore.TUIConfig
|
|
|
+import com.tencent.qcloud.tuicore.permission.PermissionCallback
|
|
|
+import com.tencent.qcloud.tuicore.permission.PermissionRequester
|
|
|
import com.tencent.qcloud.tuicore.util.ErrorMessageConverter
|
|
|
import com.tencent.qcloud.tuicore.util.SPUtils
|
|
|
import com.tencent.qcloud.tuicore.util.ToastUtil
|
|
|
@@ -43,13 +53,19 @@ class CallManager private constructor(context: Context) {
|
|
|
Logger.i(TAG, "calls, userIdList: $userIdList, mediaType: $mediaType, params: $params")
|
|
|
if (userIdList.isEmpty()) {
|
|
|
Logger.e(TAG, "calls failed, userIdList is empty")
|
|
|
- completion?.onFailure(TUICallDefine.ERROR_PARAM_INVALID, "calls failed, userIdList is empty")
|
|
|
+ completion?.onFailure(
|
|
|
+ TUICallDefine.ERROR_PARAM_INVALID,
|
|
|
+ "calls failed, userIdList is empty"
|
|
|
+ )
|
|
|
return
|
|
|
}
|
|
|
if (userIdList.size >= Constants.MAX_USER) {
|
|
|
ToastUtil.toastLongMessage(context.getString(R.string.callkit_user_exceed_limit))
|
|
|
Logger.e(TAG, "calls failed, exceeding max user number: 9")
|
|
|
- completion?.onFailure(TUICallDefine.ERROR_PARAM_INVALID, "calls failed, exceeding max user number")
|
|
|
+ completion?.onFailure(
|
|
|
+ TUICallDefine.ERROR_PARAM_INVALID,
|
|
|
+ "calls failed, exceeding max user number"
|
|
|
+ )
|
|
|
return
|
|
|
}
|
|
|
|
|
|
@@ -150,40 +166,44 @@ class CallManager private constructor(context: Context) {
|
|
|
|
|
|
fun enableMultiDeviceAbility(enable: Boolean, completion: CompletionHandler?) {
|
|
|
Logger.i(TAG, "enableMultiDeviceAbility, enable: $enable")
|
|
|
- TUICallEngine.createInstance(context).enableMultiDeviceAbility(enable, object : TUICommonDefine.Callback {
|
|
|
- override fun onSuccess() {
|
|
|
- completion?.onSuccess()
|
|
|
- }
|
|
|
+ TUICallEngine.createInstance(context)
|
|
|
+ .enableMultiDeviceAbility(enable, object : TUICommonDefine.Callback {
|
|
|
+ override fun onSuccess() {
|
|
|
+ completion?.onSuccess()
|
|
|
+ }
|
|
|
|
|
|
- override fun onError(errCode: Int, errMsg: String?) {
|
|
|
- completion?.onFailure(errCode, errMsg ?: "")
|
|
|
- }
|
|
|
+ override fun onError(errCode: Int, errMsg: String?) {
|
|
|
+ completion?.onFailure(errCode, errMsg ?: "")
|
|
|
+ }
|
|
|
|
|
|
- })
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
fun setSelfInfo(nickname: String?, avatar: String?, completion: CompletionHandler?) {
|
|
|
Logger.i(TAG, "setSelfInfo, nickname: $nickname, avatar: $avatar")
|
|
|
- TUICallEngine.createInstance(context).setSelfInfo(nickname, avatar, object : TUICommonDefine.Callback {
|
|
|
- override fun onSuccess() {
|
|
|
- completion?.onSuccess()
|
|
|
- }
|
|
|
+ TUICallEngine.createInstance(context)
|
|
|
+ .setSelfInfo(nickname, avatar, object : TUICommonDefine.Callback {
|
|
|
+ override fun onSuccess() {
|
|
|
+ completion?.onSuccess()
|
|
|
+ }
|
|
|
|
|
|
- override fun onError(errCode: Int, errMsg: String?) {
|
|
|
- completion?.onFailure(errCode, errMsg ?: "")
|
|
|
- }
|
|
|
- })
|
|
|
+ override fun onError(errCode: Int, errMsg: String?) {
|
|
|
+ completion?.onFailure(errCode, errMsg ?: "")
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
fun setCallingBell(filePath: String?) {
|
|
|
Logger.i(TAG, "setCallingBell, filePath: $filePath")
|
|
|
- SPUtils.getInstance(CallingBellFeature.PROFILE_TUICALLKIT).put(CallingBellFeature.PROFILE_CALL_BELL, filePath)
|
|
|
+ SPUtils.getInstance(CallingBellFeature.PROFILE_TUICALLKIT)
|
|
|
+ .put(CallingBellFeature.PROFILE_CALL_BELL, filePath)
|
|
|
}
|
|
|
|
|
|
fun enableMuteMode(enable: Boolean) {
|
|
|
Logger.i(TAG, "enableMuteMode, enable: $enable")
|
|
|
GlobalState.instance.enableMuteMode = enable
|
|
|
- SPUtils.getInstance(CallingBellFeature.PROFILE_TUICALLKIT).put(CallingBellFeature.PROFILE_MUTE_MODE, enable)
|
|
|
+ SPUtils.getInstance(CallingBellFeature.PROFILE_TUICALLKIT)
|
|
|
+ .put(CallingBellFeature.PROFILE_MUTE_MODE, enable)
|
|
|
}
|
|
|
|
|
|
fun enableFloatWindow(enable: Boolean) {
|
|
|
@@ -212,7 +232,8 @@ class CallManager private constructor(context: Context) {
|
|
|
|
|
|
if (orientation == Constants.Orientation.LandScape.ordinal) {
|
|
|
val videoEncoderParams = TUICommonDefine.VideoEncoderParams()
|
|
|
- videoEncoderParams.resolutionMode = TUICommonDefine.VideoEncoderParams.ResolutionMode.Landscape
|
|
|
+ videoEncoderParams.resolutionMode =
|
|
|
+ TUICommonDefine.VideoEncoderParams.ResolutionMode.Landscape
|
|
|
TUICallEngine.createInstance(context).setVideoEncoderParams(videoEncoderParams, null)
|
|
|
}
|
|
|
}
|
|
|
@@ -280,13 +301,19 @@ class CallManager private constructor(context: Context) {
|
|
|
|
|
|
private fun getCommonErrorMap(): Map<Int, String> {
|
|
|
val map = HashMap<Int, String>()
|
|
|
- map[TUICallDefine.ERROR_PACKAGE_NOT_PURCHASED] = context.getString(R.string.callkit_package_not_purchased)
|
|
|
- map[TUICallDefine.ERROR_PACKAGE_NOT_SUPPORTED] = context.getString(R.string.callkit_package_not_support)
|
|
|
+ map[TUICallDefine.ERROR_PACKAGE_NOT_PURCHASED] =
|
|
|
+ context.getString(R.string.callkit_package_not_purchased)
|
|
|
+ map[TUICallDefine.ERROR_PACKAGE_NOT_SUPPORTED] =
|
|
|
+ context.getString(R.string.callkit_package_not_support)
|
|
|
map[TUICallDefine.ERROR_INIT_FAIL] = context.getString(R.string.callkit_error_invalid_login)
|
|
|
- map[TUICallDefine.ERROR_PARAM_INVALID] = context.getString(R.string.callkit_error_parameter_invalid)
|
|
|
- map[TUICallDefine.ERROR_REQUEST_REFUSED] = context.getString(R.string.callkit_error_request_refused)
|
|
|
- map[TUICallDefine.ERROR_REQUEST_REPEATED] = context.getString(R.string.callkit_error_request_repeated)
|
|
|
- map[TUICallDefine.ERROR_SCENE_NOT_SUPPORTED] = context.getString(R.string.callkit_error_scene_not_support)
|
|
|
+ map[TUICallDefine.ERROR_PARAM_INVALID] =
|
|
|
+ context.getString(R.string.callkit_error_parameter_invalid)
|
|
|
+ map[TUICallDefine.ERROR_REQUEST_REFUSED] =
|
|
|
+ context.getString(R.string.callkit_error_request_refused)
|
|
|
+ map[TUICallDefine.ERROR_REQUEST_REPEATED] =
|
|
|
+ context.getString(R.string.callkit_error_request_repeated)
|
|
|
+ map[TUICallDefine.ERROR_SCENE_NOT_SUPPORTED] =
|
|
|
+ context.getString(R.string.callkit_error_scene_not_support)
|
|
|
return map
|
|
|
}
|
|
|
|
|
|
@@ -337,6 +364,42 @@ class CallManager private constructor(context: Context) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ fun showCallingFloatWindow(finishActivity: (() -> Unit)? = null) {
|
|
|
+ Log.d(TAG_CALL_ENGINE, "showCallingFloatWindow")
|
|
|
+ if (PermissionRequester.newInstance(
|
|
|
+ PermissionRequester.FLOAT_PERMISSION,
|
|
|
+ PermissionRequester.BG_START_PERMISSION
|
|
|
+ ).has()
|
|
|
+ ) {
|
|
|
+ CallingFloatView(CallingFloatData(MODE_SYSTEM)).showCallingView()
|
|
|
+ finishActivity?.invoke()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (!CallLocalService.requestOverPlayPermission) {
|
|
|
+ CallingFloatView(CallingFloatData(MODE_APPLICATION)).showCallingView()
|
|
|
+ finishActivity?.invoke()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ CallLocalService.requestOverPlayPermission = false
|
|
|
+ PermissionRequest.requestFloatPermission(context, object : PermissionCallback() {
|
|
|
+ override fun onGranted() {
|
|
|
+ CallingFloatView(CallingFloatData(MODE_SYSTEM)).showCallingView()
|
|
|
+ finishActivity?.invoke()
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onDenied() {
|
|
|
+ super.onDenied()
|
|
|
+ CallingFloatView(CallingFloatData(MODE_APPLICATION)).showCallingView()
|
|
|
+ finishActivity?.invoke()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ fun dismissCallingFloatWindow() {
|
|
|
+ Log.d(TAG_CALL_ENGINE, "dismissCallingFloatWindow")
|
|
|
+ CallingFloatView.dismiss()
|
|
|
+ }
|
|
|
+
|
|
|
companion object {
|
|
|
private const val TAG = "CallManager"
|
|
|
val instance: CallManager = CallManager(TUIConfig.getAppContext())
|