Browse Source

feat(设备信息): 根据设备类型动态显示电池信息标签

添加 DeviceType 扩展方法获取显示名称,并在单端耳机电池信息处使用该名称替代空字符串
weicu
lxm 1 year ago
parent
commit
81cb24cfae
  1. 22
      lib/data/models/appconfig_model.dart
  2. 6
      lib/modules/home/views/home_view.dart

22
lib/data/models/appconfig_model.dart

@ -1,4 +1,5 @@
import 'package:json_annotation/json_annotation.dart'; import 'package:json_annotation/json_annotation.dart';
import 'package:get/get.dart';
part 'appconfig_model.g.dart'; // 生成的文件名 part 'appconfig_model.g.dart'; // 生成的文件名
@ -136,3 +137,24 @@ enum DeviceType {
/// 设备类型对应的整数值 /// 设备类型对应的整数值
final int value; final int value;
} }
// 为 DeviceType 添加扩展方法
extension DeviceTypeExtension on DeviceType {
/// 获取设备类型的显示名称
/// @Description 根据设备类型返回对应的翻译键
String get displayName {
switch (this) {
case DeviceType.unknown:
return "deviceTypeUnknown".tr; // 未知设备
case DeviceType.classicBluetoothHeadset:
return "deviceTypeClassicBluetoothHeadset".tr; // 经典蓝牙耳机
case DeviceType.bleBluetoothDoubleHeadset:
case DeviceType.bleBluetoothSingleHeadset:
return "deviceTypeBleBluetoothHeadset".tr; // BLE蓝牙耳机(单端和双端都使用同一个翻译键)
case DeviceType.smartVoiceRecorder:
return "deviceTypeSmartVoiceRecorder".tr; // 智能录音笔
case DeviceType.smartEye:
return "deviceTypeSmartEye".tr; // 智能眼镜
}
}
}

6
lib/modules/home/views/home_view.dart

@ -6,6 +6,7 @@ import '../../../core/widgets/intro_overlay_builder.dart';
import '../controllers/home_controller.dart'; import '../controllers/home_controller.dart';
import '../../../routes/app_routes.dart'; import '../../../routes/app_routes.dart';
import '../../../core/widgets/common_bottom_nav.dart'; import '../../../core/widgets/common_bottom_nav.dart';
import '../../../data/models/appconfig_model.dart';
// 呼吸灯动画组件 // 呼吸灯动画组件
class AnimatedPulsing extends StatefulWidget { class AnimatedPulsing extends StatefulWidget {
@ -533,8 +534,9 @@ class HomeView extends GetView<HomeController> {
// 单端耳机只显示一个电池信息(优先显示左耳,如果左耳电量为0则显示右耳) // 单端耳机只显示一个电池信息(优先显示左耳,如果左耳电量为0则显示右耳)
if (isSingleHeadset) ...[ if (isSingleHeadset) ...[
_buildCompactBatteryItem( _buildCompactBatteryItem(
//label: 'deviceTypeBleBluetoothHeadset'.tr, label: controller
label: '', .getCurrentDeviceType()
.displayName, // 根据设备类型动态显示文本
batteryLevel: (leftBattery > 0 || rightBattery == 0) batteryLevel: (leftBattery > 0 || rightBattery == 0)
? leftBattery ? leftBattery
: rightBattery, : rightBattery,

Loading…
Cancel
Save