fix(mobile-next): 清理悬浮窗、语音文案与位置发送
按 B-273 / B-269 收口 Android 客户端:去掉悬浮窗申请与旧浮窗服务,通话入口统一为语音通话,删除位置发送与定位权限,保留历史位置只读展示。 Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
co-authored by
Cursor
multica-agent
parent
092039bc1a
commit
694891c393
@@ -1,12 +1,10 @@
|
||||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:openim_common/openim_common.dart';
|
||||
import 'package:permission_handler/permission_handler.dart';
|
||||
import 'package:openim_live/openim_live.dart';
|
||||
|
||||
import '../../company/feature_flags.dart';
|
||||
@@ -20,7 +18,8 @@ class IMController extends GetxController with IMCallback, OpenIMLive {
|
||||
late Rx<UserFullInfo> userInfo;
|
||||
late String atAllTag;
|
||||
final _rtcTokenApi = RtcTokenApi();
|
||||
final callGuard = CallSessionGuard(inviteTimeout: LiveKitCallConfig.inviteTimeout);
|
||||
final callGuard =
|
||||
CallSessionGuard(inviteTimeout: LiveKitCallConfig.inviteTimeout);
|
||||
|
||||
@override
|
||||
void onClose() {
|
||||
@@ -36,7 +35,8 @@ class IMController extends GetxController with IMCallback, OpenIMLive {
|
||||
if (token == null || token.isEmpty) {
|
||||
return Future.error(StateError('登录状态已失效,请重新登录'));
|
||||
}
|
||||
return _rtcTokenApi.getToken(room: roomID, identity: userID, authToken: token);
|
||||
return _rtcTokenApi.getToken(
|
||||
room: roomID, identity: userID, authToken: token);
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -54,11 +54,13 @@ class IMController extends GetxController with IMCallback, OpenIMLive {
|
||||
if (!FeatureFlags.livekitCall) return;
|
||||
final invitation = info.invitation;
|
||||
final roomID = invitation?.roomID ?? '';
|
||||
if (invitation?.mediaType != 'audio' || invitation?.sessionType != ConversationType.single) {
|
||||
if (invitation?.mediaType != 'audio' ||
|
||||
invitation?.sessionType != ConversationType.single) {
|
||||
onTapReject(info);
|
||||
return;
|
||||
}
|
||||
if (!callGuard.acceptSignaling(customType: CustomMessageType.callingInvite, roomID: roomID)) {
|
||||
if (!callGuard.acceptSignaling(
|
||||
customType: CustomMessageType.callingInvite, roomID: roomID)) {
|
||||
return;
|
||||
}
|
||||
if (isBusy || callGuard.isBusy) {
|
||||
@@ -149,7 +151,8 @@ class IMController extends GetxController with IMCallback, OpenIMLive {
|
||||
);
|
||||
|
||||
OpenIM.iMManager
|
||||
..setUploadLogsListener(OnUploadLogsListener(onUploadProgress: uploadLogsProgress))
|
||||
..setUploadLogsListener(
|
||||
OnUploadLogsListener(onUploadProgress: uploadLogsProgress))
|
||||
..userManager.setUserListener(OnUserListener(
|
||||
onSelfInfoUpdated: (u) {
|
||||
selfInfoUpdated(u);
|
||||
@@ -180,11 +183,13 @@ class IMController extends GetxController with IMCallback, OpenIMLive {
|
||||
customType == CustomMessageType.callingCancel ||
|
||||
customType == CustomMessageType.callingHungup) {
|
||||
if (!FeatureFlags.livekitCall) return;
|
||||
final signaling = SignalingInfo(invitation: InvitationInfo.fromJson(map['data']));
|
||||
final signaling = SignalingInfo(
|
||||
invitation: InvitationInfo.fromJson(map['data']));
|
||||
signaling.userID = signaling.invitation?.inviterUserID;
|
||||
final roomID = signaling.invitation?.roomID ?? '';
|
||||
if (customType != CustomMessageType.callingInvite &&
|
||||
!callGuard.acceptSignaling(customType: customType as int, roomID: roomID)) {
|
||||
!callGuard.acceptSignaling(
|
||||
customType: customType as int, roomID: roomID)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -236,9 +241,6 @@ class IMController extends GetxController with IMCallback, OpenIMLive {
|
||||
},
|
||||
onSyncServerFinish: (reInstall) {
|
||||
imSdkStatus(IMSdkStatus.syncEnded, reInstall: reInstall ?? false);
|
||||
if (Platform.isAndroid) {
|
||||
Permissions.request([Permission.systemAlertWindow]);
|
||||
}
|
||||
},
|
||||
onSyncServerStart: (reInstall) {
|
||||
imSdkStatus(IMSdkStatus.syncStart, reInstall: reInstall ?? false);
|
||||
|
||||
Reference in New Issue
Block a user