Browse Source

Merge branch 'new_dev' of https://github.com/deepcloud2048/deep_voice into new_dev

weicu
liwei1dao 1 year ago
parent
commit
1c8dae07e8
  1. 2
      android/app/src/main/AndroidManifest.xml
  2. 6
      lib/core/translations/language/en_us.dart
  3. 4
      lib/core/translations/language/zh_cn.dart
  4. 16
      lib/modules/settings/controllers/settings_controller.dart
  5. 44
      lib/modules/settings/views/permissions_view.dart

2
android/app/src/main/AndroidManifest.xml

@ -50,6 +50,8 @@
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<!--用于申请调用A-GPS模块,卫星定位加速--> <!--用于申请调用A-GPS模块,卫星定位加速-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<!--用于申请调用精确闹钟权限-->
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
<!--允许写设备缓存,用于问题排查--> <!--允许写设备缓存,用于问题排查-->
<uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.VIBRATE"/> <uses-permission android:name="android.permission.VIBRATE"/>

6
lib/core/translations/language/en_us.dart

@ -487,15 +487,19 @@ const Map<String, String> enUS = {
// 权限管理页面 // 权限管理页面
'getPermissionStatusFailed': 'Failed to get permission status', 'getPermissionStatusFailed': 'Failed to get permission status',
'communicationPermissions': 'Communication Permissions', 'communicationPermissions': 'Communication Permissions',
'alarmPermissions': 'Alarm Permissions',
'calendarPermissions': 'Calendar Permissions', 'calendarPermissions': 'Calendar Permissions',
'locationPermissions': 'Location Permissions', 'locationPermissions': 'Location Permissions',
'phone': 'Phone', 'phone': 'Phone',
'sms': 'SMS', 'sms': 'SMS',
'alarm': 'Alarm',
'calendarWrite': 'Calendar Write', 'calendarWrite': 'Calendar Write',
'calendarFullAccess': 'Calendar Full Access', 'calendarFullAccess': 'Calendar Full Access',
'locationInfo': 'Location Info', 'locationInfo': 'Location Info',
'phonePermissionDesc': 'Used for phone call functionality', 'phonePermissionDesc': 'Used for phone call functionality',
'smsPermissionDesc': 'Used for SMS functionality', 'smsPermissionDesc': 'Used for SMS functionality',
'alarmPermissionDesc':
'Used to set exact alarms to ensure reminders trigger on time',
'calendarWritePermissionDesc': 'calendarWritePermissionDesc':
'Used for creating calendar events and reminders', 'Used for creating calendar events and reminders',
'calendarFullAccessPermissionDesc': 'calendarFullAccessPermissionDesc':
@ -512,6 +516,8 @@ const Map<String, String> enUS = {
'phonePermissionDetailDesc': 'phonePermissionDetailDesc':
'Phone call functionality requires phone permission', 'Phone call functionality requires phone permission',
'smsPermissionDetailDesc': 'SMS functionality requires SMS permission', 'smsPermissionDetailDesc': 'SMS functionality requires SMS permission',
'alarmPermissionDetailDesc':
'This permission is required to set exact alarms and ensure reminders trigger on time',
'calendarWritePermissionDetailDesc': 'calendarWritePermissionDetailDesc':
'Creating calendar events requires calendar write permission', 'Creating calendar events requires calendar write permission',
'calendarFullAccessPermissionDetailDesc': 'calendarFullAccessPermissionDetailDesc':

4
lib/core/translations/language/zh_cn.dart

@ -455,15 +455,18 @@ const Map<String, String> zhCN = {
// 权限管理页面 // 权限管理页面
'getPermissionStatusFailed': '获取权限状态失败', 'getPermissionStatusFailed': '获取权限状态失败',
'communicationPermissions': '通讯权限', 'communicationPermissions': '通讯权限',
'alarmPermissions': '闹钟权限',
'calendarPermissions': '日历权限', 'calendarPermissions': '日历权限',
'locationPermissions': '位置权限', 'locationPermissions': '位置权限',
'phone': '电话', 'phone': '电话',
'sms': '短信', 'sms': '短信',
'alarm': '闹钟',
'calendarWrite': '日历写入', 'calendarWrite': '日历写入',
'calendarFullAccess': '日历完整访问', 'calendarFullAccess': '日历完整访问',
'locationInfo': '位置信息', 'locationInfo': '位置信息',
'phonePermissionDesc': '用于拨打电话功能', 'phonePermissionDesc': '用于拨打电话功能',
'smsPermissionDesc': '用于发送短信功能', 'smsPermissionDesc': '用于发送短信功能',
'alarmPermissionDesc': '用于设置精确闹钟以确保提醒按时触发',
'calendarWritePermissionDesc': '用于创建日历事件和提醒', 'calendarWritePermissionDesc': '用于创建日历事件和提醒',
'calendarFullAccessPermissionDesc': '用于读取和管理日历事件及提醒', 'calendarFullAccessPermissionDesc': '用于读取和管理日历事件及提醒',
'locationPermissionDesc': '用于获取当前位置信息', 'locationPermissionDesc': '用于获取当前位置信息',
@ -477,6 +480,7 @@ const Map<String, String> zhCN = {
'permissionRequestError': '请求权限时出错', 'permissionRequestError': '请求权限时出错',
'phonePermissionDetailDesc': '拨打电话功能需要电话权限', 'phonePermissionDetailDesc': '拨打电话功能需要电话权限',
'smsPermissionDetailDesc': '发送短信功能需要短信权限', 'smsPermissionDetailDesc': '发送短信功能需要短信权限',
'alarmPermissionDetailDesc': '设置精确闹钟需要此权限,以确保提醒按时触发',
'calendarWritePermissionDetailDesc': '创建日历事件需要日历写入权限', 'calendarWritePermissionDetailDesc': '创建日历事件需要日历写入权限',
'calendarFullAccessPermissionDetailDesc': '管理日历事件需要完整日历权限', 'calendarFullAccessPermissionDetailDesc': '管理日历事件需要完整日历权限',
'locationPermissionDetailDesc': '获取位置信息需要位置权限', 'locationPermissionDetailDesc': '获取位置信息需要位置权限',

16
lib/modules/settings/controllers/settings_controller.dart

@ -192,7 +192,18 @@ class SettingsController extends GetxController {
}, },
{'type': Permission.bluetooth, 'name': '蓝牙', 'description': '用于连接蓝牙设备'} {'type': Permission.bluetooth, 'name': '蓝牙', 'description': '用于连接蓝牙设备'}
] ]
} },
{
'name': '闹钟权限',
'icon': Icons.alarm,
'permissions': [
{
'type': Permission.scheduleExactAlarm,
'name': '闹钟',
'description': '用于设置精确闹钟'
}
]
},
]; ];
// 检查单个权限状态 // 检查单个权限状态
@ -453,7 +464,8 @@ class SettingsController extends GetxController {
Logger().i('更新agent服务语音识别语言: ${supportedLanguages.join(', ')}'); Logger().i('更新agent服务语音识别语言: ${supportedLanguages.join(', ')}');
// 调用agent服务更新语言设置 // 调用agent服务更新语言设置
final success = await AgentService.setSupportedLanguages(supportedLanguages); final success =
await AgentService.setSupportedLanguages(supportedLanguages);
if (success) { if (success) {
Logger().i('agent服务语言设置更新成功'); Logger().i('agent服务语言设置更新成功');
} else { } else {

44
lib/modules/settings/views/permissions_view.dart

@ -4,6 +4,8 @@ import 'package:permission_handler/permission_handler.dart';
import '../controllers/settings_controller.dart'; import '../controllers/settings_controller.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'dart:ui'; import 'dart:ui';
import 'dart:io' show Platform;
import '../../../core/utils/permission_util.dart'; // 引入PermissionUtil import '../../../core/utils/permission_util.dart'; // 引入PermissionUtil
class PermissionsView extends GetView<SettingsController> { class PermissionsView extends GetView<SettingsController> {
@ -37,7 +39,7 @@ class PermissionsView extends GetView<SettingsController> {
centerTitle: true, centerTitle: true,
), ),
body: FutureBuilder<Map<Permission, PermissionStatus>>( body: FutureBuilder<Map<Permission, PermissionStatus>>(
future: controller.checkAllPermissions(), future: controller.checkAllPermissions(), //检查权限当前状态
builder: (context, snapshot) { builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) { if (snapshot.connectionState == ConnectionState.waiting) {
return const Center(child: CircularProgressIndicator()); return const Center(child: CircularProgressIndicator());
@ -45,8 +47,8 @@ class PermissionsView extends GetView<SettingsController> {
if (snapshot.hasError) { if (snapshot.hasError) {
return Center( return Center(
child: Text('getPermissionStatusFailed'.tr + child: Text(
': ${snapshot.error}')); // 获取权限状态失败 '${'getPermissionStatusFailed'.tr}: ${snapshot.error}')); // 获取权限状态失败
} }
final permissionStatuses = snapshot.data ?? {}; final permissionStatuses = snapshot.data ?? {};
@ -54,15 +56,27 @@ class PermissionsView extends GetView<SettingsController> {
return ListView( return ListView(
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 16.h), padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 16.h),
children: [ children: [
// 通讯权限组 // 通讯权限组- iOS平台没有通讯权限
_buildPermissionSection( if (Platform.isAndroid) ...[
'communicationPermissions'.tr, // 通讯权限 _buildPermissionSection(
Icons.phone_android, 'communicationPermissions'.tr, // 通讯权限
[Permission.phone, Permission.sms], Icons.phone_android,
[Permission.phone, Permission.sms],
permissionStatuses,
isDarkMode),
SizedBox(height: 20.h),
],
// 闹钟权限组
if (Platform.isAndroid) ...[
_buildPermissionSection(
'alarmPermissions'.tr, // 闹钟权限
Icons.alarm,
[Permission.scheduleExactAlarm],
permissionStatuses, permissionStatuses,
isDarkMode), isDarkMode,
),
SizedBox(height: 20.h), SizedBox(height: 20.h),
],
// 日历权限组 // 日历权限组
_buildPermissionSection( _buildPermissionSection(
@ -162,6 +176,8 @@ class PermissionsView extends GetView<SettingsController> {
return 'calendarFullAccess'.tr; // 日历完整访问 return 'calendarFullAccess'.tr; // 日历完整访问
case Permission.location: case Permission.location:
return 'locationInfo'.tr; // 位置信息 return 'locationInfo'.tr; // 位置信息
case Permission.scheduleExactAlarm:
return 'alarm'.tr; // 闹钟
default: default:
return permission.toString(); return permission.toString();
} }
@ -180,6 +196,8 @@ class PermissionsView extends GetView<SettingsController> {
return 'calendarFullAccessPermissionDesc'.tr; // 用于读取和管理日历事件及提醒 return 'calendarFullAccessPermissionDesc'.tr; // 用于读取和管理日历事件及提醒
case Permission.location: case Permission.location:
return 'locationPermissionDesc'.tr; // 用于获取当前位置信息 return 'locationPermissionDesc'.tr; // 用于获取当前位置信息
case Permission.scheduleExactAlarm:
return 'alarmPermissionDesc'.tr; // 设置精确闹钟需要此权限
default: default:
return 'appFunctionNeeds'.tr; // 应用功能需要 return 'appFunctionNeeds'.tr; // 应用功能需要
} }
@ -355,6 +373,8 @@ class PermissionsView extends GetView<SettingsController> {
return 'calendarFullAccess'.tr; // 日历完整访问 return 'calendarFullAccess'.tr; // 日历完整访问
case Permission.location: case Permission.location:
return 'locationInfo'.tr; // 位置信息 return 'locationInfo'.tr; // 位置信息
case Permission.scheduleExactAlarm:
return 'alarm'.tr; // 闹钟
default: default:
return permission.toString(); return permission.toString();
} }
@ -373,6 +393,8 @@ class PermissionsView extends GetView<SettingsController> {
return 'calendarFullAccessPermissionDetailDesc'.tr; // 管理日历事件需要完整日历权限 return 'calendarFullAccessPermissionDetailDesc'.tr; // 管理日历事件需要完整日历权限
case Permission.location: case Permission.location:
return 'locationPermissionDetailDesc'.tr; // 获取位置信息需要位置权限 return 'locationPermissionDetailDesc'.tr; // 获取位置信息需要位置权限
case Permission.scheduleExactAlarm:
return 'alarmPermissionDetailDesc'.tr; // 设置精确闹钟需要此权限
default: default:
return 'appNeedsPermissionForFullFunction'.tr; // 应用需要此权限以提供完整功能 return 'appNeedsPermissionForFullFunction'.tr; // 应用需要此权限以提供完整功能
} }

Loading…
Cancel
Save