feat(remote): 修复键盘输入映射并重构连接流程

- Android端注入按键时显式设置SOURCE_KEYBOARD,修复IME丢弃事件导致输入框无法输入文字的问题
- Flutter端新增Flutter逻辑键到Android keyCode的转换映射,避免功能键误触发
- 重构RemoteController,分离信令连接与远程控制逻辑,支持设备列表选择与配对码兑换
- AuthRepository接口新增getBindings、getOnlineDevices、redeemPairingCode方法
- DioAuthRepository实现401自动刷新token重试机制
- ConnectionSessionState扩展设备列表、在线状态、配对码等状态字段
This commit is contained in:
TongTongStudio
2026-08-03 20:22:29 +08:00
parent 79cffcb041
commit e1de4c8170
21 changed files with 1529 additions and 703 deletions

View File

@@ -176,18 +176,6 @@ abstract class AppLocalizations {
/// **'连接被控设备'**
String get connectDevice;
/// No description provided for @serverUrl.
///
/// In zh, this message translates to:
/// **'信令服务器地址:'**
String get serverUrl;
/// No description provided for @serverUrlPlaceholder.
///
/// In zh, this message translates to:
/// **'wss://www.ttstd.com/signal'**
String get serverUrlPlaceholder;
/// No description provided for @deviceId.
///
/// In zh, this message translates to:
@@ -236,11 +224,11 @@ abstract class AppLocalizations {
/// **'请输入用户名和密码'**
String get usernamePasswordRequired;
/// No description provided for @serverAndTargetRequired.
/// No description provided for @targetRequired.
///
/// In zh, this message translates to:
/// **'请填写服务器地址和目标设备ID'**
String get serverAndTargetRequired;
/// **'请填写目标设备ID'**
String get targetRequired;
/// No description provided for @authTitle.
///
@@ -505,6 +493,72 @@ abstract class AppLocalizations {
/// In zh, this message translates to:
/// **'当前平台不支持自编码硬解。'**
String get streamModeSelfCodecDesc;
/// No description provided for @boundDevices.
///
/// In zh, this message translates to:
/// **'已绑定设备'**
String get boundDevices;
/// No description provided for @online.
///
/// In zh, this message translates to:
/// **'在线'**
String get online;
/// No description provided for @offline.
///
/// In zh, this message translates to:
/// **'离线'**
String get offline;
/// No description provided for @noBoundDevices.
///
/// In zh, this message translates to:
/// **'暂无已绑定设备'**
String get noBoundDevices;
/// No description provided for @refreshDevices.
///
/// In zh, this message translates to:
/// **'刷新'**
String get refreshDevices;
/// No description provided for @redeemPairingCode.
///
/// In zh, this message translates to:
/// **'使用配对码绑定'**
String get redeemPairingCode;
/// No description provided for @pairingCodeHint.
///
/// In zh, this message translates to:
/// **'请输入被控端显示的配对码'**
String get pairingCodeHint;
/// No description provided for @bindingFailed.
///
/// In zh, this message translates to:
/// **'绑定失败:{error}'**
String bindingFailed(Object error);
/// No description provided for @deviceOfflineCannotConnect.
///
/// In zh, this message translates to:
/// **'设备「{name}」当前不在线,无法连接'**
String deviceOfflineCannotConnect(Object name);
/// No description provided for @pleaseSelectDevice.
///
/// In zh, this message translates to:
/// **'请先选择一个绑定的设备'**
String get pleaseSelectDevice;
/// No description provided for @bindSuccess.
///
/// In zh, this message translates to:
/// **'绑定成功'**
String get bindSuccess;
}
class _AppLocalizationsDelegate