fix(mobile-next): 按 B-91 收口 Android 通话视觉打回项
呼出/通话中按钮、计时器、底色、60s 未接与进出场动效对齐视觉规范。 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
714794f7fe
commit
9bde926c81
@@ -425,18 +425,23 @@ const Map<String, String> en_US = {
|
||||
"outgoingCall": "Outgoing",
|
||||
"microphone": "Microphone",
|
||||
"speaker": "Speaker",
|
||||
"callMute": "Mute",
|
||||
"callHandsFree": "Speaker",
|
||||
"callEnded": "Call ended",
|
||||
"callNetworkInterrupted": "Network error, call interrupted",
|
||||
"unansweredCall": "Missed call",
|
||||
"hangUp": "Hang Up",
|
||||
"pickUp": "Pick Up",
|
||||
"waitingCallHint": "Calling...",
|
||||
"waitingVoiceCallHint": "Waiting for the other party to pick up...",
|
||||
"invitedVoiceCallHint": "Inviting you for a voice call...",
|
||||
"waitingVoiceCallHint": "Waiting for the other party to accept the invitation...",
|
||||
"invitedVoiceCallHint": "Inviting you to a voice call",
|
||||
"waitingVideoCallHint": "Waiting for the other party to accept the invitation",
|
||||
"invitedVideoCallHint": "Inviting you for a video call...",
|
||||
"waitingToAnswer": "Waiting to answer",
|
||||
"invitedYouToCall": "Invited you to a call",
|
||||
"calling": "Calling...",
|
||||
"nPeopleCalling": "%s people on the call",
|
||||
'busyVideoCallHint': 'A user is busy and cannot receive your invitation',
|
||||
'busyVideoCallHint': 'The other party is busy and cannot receive the invitation',
|
||||
'inviterBusyVideoCallHint': 'You are in another call and cannot send an invitation',
|
||||
"whoInvitedVoiceCallHint": "%s invited you for a voice call",
|
||||
"whoInvitedVideoCallHint": "%s invited you for a video call",
|
||||
|
||||
@@ -427,18 +427,23 @@ const Map<String, String> zh_CN = {
|
||||
"outgoingCall": "呼出",
|
||||
"microphone": "麦克风",
|
||||
"speaker": "扬声器",
|
||||
"callMute": "静音",
|
||||
"callHandsFree": "免提",
|
||||
"callEnded": "通话已结束",
|
||||
"callNetworkInterrupted": "网络异常,通话中断",
|
||||
"unansweredCall": "未接通话",
|
||||
"hangUp": "挂断",
|
||||
"pickUp": "接听",
|
||||
"waitingCallHint": "正在呼叫中…",
|
||||
"waitingVoiceCallHint": "正在等待对方接听…",
|
||||
"invitedVoiceCallHint": "邀请你进行语音通话…",
|
||||
"waitingVoiceCallHint": "正在等待对方接受邀请…",
|
||||
"invitedVoiceCallHint": "邀请你语音通话",
|
||||
"waitingVideoCallHint": "正在等待对方接受邀请",
|
||||
"invitedVideoCallHint": "邀请你进行视频通话…",
|
||||
"waitingToAnswer": "等待接听",
|
||||
"invitedYouToCall": "邀请你通话",
|
||||
"calling": "通话中",
|
||||
"nPeopleCalling": "%s人正在通话中",
|
||||
'busyVideoCallHint': '有用户正忙,无法接收到你的邀请',
|
||||
'busyVideoCallHint': '对方正忙,无法接收邀请',
|
||||
'inviterBusyVideoCallHint': '你在其它通话中,无法发起邀请',
|
||||
"whoInvitedVoiceCallHint": "%s邀请你进行语音通话",
|
||||
"whoInvitedVideoCallHint": "%s邀请你进行视频通话",
|
||||
|
||||
@@ -874,6 +874,16 @@ class StrRes {
|
||||
|
||||
static String get speaker => 'speaker'.tr;
|
||||
|
||||
static String get callMute => 'callMute'.tr;
|
||||
|
||||
static String get callHandsFree => 'callHandsFree'.tr;
|
||||
|
||||
static String get callEnded => 'callEnded'.tr;
|
||||
|
||||
static String get callNetworkInterrupted => 'callNetworkInterrupted'.tr;
|
||||
|
||||
static String get unansweredCall => 'unansweredCall'.tr;
|
||||
|
||||
static String get hangUp => 'hangUp'.tr;
|
||||
|
||||
static String get pickUp => 'pickUp'.tr;
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import 'dart:ui' show FontFeature;
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
|
||||
@@ -17,6 +19,35 @@ class Styles {
|
||||
|
||||
static Duration durationOverlay = const Duration(milliseconds: 150);
|
||||
static Duration durationOverlaySwitch = const Duration(milliseconds: 100);
|
||||
static Duration callPageMotion = const Duration(milliseconds: 250);
|
||||
static Duration callEndHold = const Duration(milliseconds: 1500);
|
||||
static Duration callInviteTimeout = const Duration(seconds: 60);
|
||||
static Duration callVibrate = const Duration(seconds: 1);
|
||||
|
||||
static Color c_callBg = const Color(0xFF1D2129);
|
||||
static Color c_callSecondaryBg = c_FFFFFF.withOpacity(.12);
|
||||
static double callNameTop = 96;
|
||||
static double callAvatar = 96;
|
||||
static double callPrimaryBtn = 64;
|
||||
static double callSecondaryBtn = 48;
|
||||
static double callIncomingGap = 96;
|
||||
static double callMinimizeHit = 48;
|
||||
static double callIconSize = 24;
|
||||
|
||||
static TextStyle ts_callName = TextStyle(
|
||||
color: c_FFFFFF,
|
||||
fontSize: 18.sp,
|
||||
fontWeight: FontWeight.w500,
|
||||
);
|
||||
static TextStyle ts_callStatus = TextStyle(
|
||||
color: c_FFFFFF.withOpacity(.6),
|
||||
fontSize: 14.sp,
|
||||
);
|
||||
static TextStyle ts_callTimer = TextStyle(
|
||||
color: c_FFFFFF,
|
||||
fontSize: 32.sp,
|
||||
fontFeatures: const [FontFeature.tabularFigures()],
|
||||
);
|
||||
|
||||
static bool Function(BuildContext) reduceMotion =
|
||||
(BuildContext context) => MediaQuery.maybeOf(context)?.disableAnimations ?? false;
|
||||
|
||||
@@ -939,7 +939,7 @@ class IMUtils {
|
||||
content = StrRes.rejectedByCaller;
|
||||
break;
|
||||
case 'timeout':
|
||||
content = StrRes.callTimeout;
|
||||
content = StrRes.unansweredCall;
|
||||
break;
|
||||
case 'networkError':
|
||||
content = StrRes.networkAnomaly;
|
||||
|
||||
Reference in New Issue
Block a user