Merge branch 'develop_liyi' into 'canary_release'

发布测试版本

See merge request StarlockTeam/app-starlock!6
This commit is contained in:
李仪 2025-03-20 10:25:11 +00:00
commit 5ebfbe6e55
11 changed files with 115 additions and 66 deletions

View File

@ -1150,5 +1150,6 @@
"并用智能锁APP的账号和密码进行授权": "并用智能锁APP的账号和密码进行授权", "并用智能锁APP的账号和密码进行授权": "并用智能锁APP的账号和密码进行授权",
"暂无最新记录": "暂无最新记录", "暂无最新记录": "暂无最新记录",
"请将手机切换至2.4G WiFi进行手动连接": "请将手机切换至2.4G WiFi进行手动连接", "请将手机切换至2.4G WiFi进行手动连接": "请将手机切换至2.4G WiFi进行手动连接",
"请扫描可视门铃码二维码": "请扫描可视门铃码二维码",
"网关添加成功": "网关添加成功" "网关添加成功": "网关添加成功"
} }

View File

@ -504,7 +504,7 @@
"您的钥匙已过期": "Срок действия вашего ключа истек", "您的钥匙已过期": "Срок действия вашего ключа истек",
"常开模式开启": "Замок находится в режиме прохода", "常开模式开启": "Замок находится в режиме прохода",
"超级管理员": "Супер админ", "超级管理员": "Супер админ",
"授权管理员": "Авторизованный администратор", "授权管理员": "Автор. администратор",
"普通用户": "Обычный пользователь", "普通用户": "Обычный пользователь",
"余": "Баланс", "余": "Баланс",
"天": "День", "天": "День",
@ -1147,5 +1147,6 @@
"2.在APP里开启锁的远程开锁功能这个功能默认是关闭的。如果没有这个选项则锁不支持Google Home": "2. Включите функцию удаленного разблокирования замка в приложении (эта функция выключается по умолчанию). Если эта опция не доступна, блокировка не будет поддерживать Google Home", "2.在APP里开启锁的远程开锁功能这个功能默认是关闭的。如果没有这个选项则锁不支持Google Home": "2. Включите функцию удаленного разблокирования замка в приложении (эта функция выключается по умолчанию). Если эта опция не доступна, блокировка не будет поддерживать Google Home",
"3.安装Google Home APP点击左上角的加号按钮": "3. Установите приложение Google Home и нажмите кнопку plus в левом верхнем углу", "3.安装Google Home APP点击左上角的加号按钮": "3. Установите приложение Google Home и нажмите кнопку plus в левом верхнем углу",
"暂无最新记录": "В настоящее время последние данные отсутствуют", "暂无最新记录": "В настоящее время последние данные отсутствуют",
"请扫描可视门铃码二维码": "Сканируйте код вызова",
"请将手机切换至2.4G WiFi进行手动连接": "Пожалуйста, переключите телефон на 2.4G WiFi для ручного подключения" "请将手机切换至2.4G WiFi进行手动连接": "Пожалуйста, переключите телефон на 2.4G WiFi для ручного подключения"
} }

View File

@ -1150,5 +1150,6 @@
"并用智能锁APP的账号和密码进行授权": "并用智能锁APP的账号和密码进行授权", "并用智能锁APP的账号和密码进行授权": "并用智能锁APP的账号和密码进行授权",
"暂无最新记录": "暂无最新记录", "暂无最新记录": "暂无最新记录",
"请将手机切换至2.4G WiFi进行手动连接": "请将手机切换至2.4G WiFi进行手动连接", "请将手机切换至2.4G WiFi进行手动连接": "请将手机切换至2.4G WiFi进行手动连接",
"请扫描可视门铃码二维码": "请扫描可视门铃码二维码",
"网关添加成功": "网关添加成功" "网关添加成功": "网关添加成功"
} }

View File

@ -48,9 +48,18 @@ class _CatEyeCustomModePageState extends State<CatEyeCustomModePage> {
isHaveLine: false, isHaveLine: false,
isHaveDirection: true, isHaveDirection: true,
isHaveRightWidget: true, isHaveRightWidget: true,
rightWidget: Text(state.selectVideoSlot.value, rightWidget: Container(
constraints: BoxConstraints(maxWidth: 150.w), //
child: Text(
state.selectVideoSlot.value,
style: TextStyle( style: TextStyle(
fontSize: 22.sp, color: AppColors.darkGrayTextColor)), fontSize: 22.sp, color: AppColors.darkGrayTextColor),
textAlign: TextAlign.right, //
softWrap: true, //
maxLines: 2,
overflow: TextOverflow.ellipsis, //
),
),
action: () { action: () {
Navigator.pushNamed(context, Routers.videoSlotPage, Navigator.pushNamed(context, Routers.videoSlotPage,
arguments: { arguments: {

View File

@ -37,48 +37,50 @@ class _CatEyeWorkModePageState extends State<CatEyeWorkModePage> {
Navigator.pop(context, true); Navigator.pop(context, true);
}, },
backgroundColor: AppColors.mainColor), backgroundColor: AppColors.mainColor),
body: Obx( body: SingleChildScrollView(
() => Column( child: Obx(
children: <Widget>[ () => Column(
SizedBox( children: <Widget>[
height: 30.h, SizedBox(
), height: 30.h,
_buildTipsView( ),
'省电模式'.tr + '\n', _buildTipsView(
'适合门口较为安全的环境。'.tr + '省电模式'.tr + '\n',
'\n' + '适合门口较为安全的环境。'.tr +
'仅发生特定事件才录像,并可查看实时画面。'.tr + '\n' +
'\n' + '仅发生特定事件才录像,并可查看实时画面。'.tr +
'一般情况下满电可使用7-8个月'.tr, '\n' +
0), '一般情况下满电可使用7-8个月'.tr,
SizedBox( 0),
height: 30.h, SizedBox(
), height: 30.h,
_buildTipsView( ),
'逗留抓拍模式'.tr + '\n', _buildTipsView(
'有人逗留或发生特定事件才录像,可随时查看'.tr + '逗留抓拍模式'.tr + '\n',
'\n' + '有人逗留或发生特定事件才录像,可随时查看'.tr +
'实时画面。'.tr + '\n' +
'\n' + '实时画面。'.tr +
'一般情况下满电可使用5~6个月。'.tr, '\n' +
1), '一般情况下满电可使用5~6个月。'.tr,
SizedBox( 1),
height: 30.h, SizedBox(
), height: 30.h,
_buildTipsView( ),
'实时监控模式'.tr + '\n', _buildTipsView(
'适合门口人员复杂、较不安全的环境。'.tr + '实时监控模式'.tr + '\n',
'\n' + '适合门口人员复杂、较不安全的环境。'.tr +
'有人出现就录像,可随时查看实时画面。'.tr + '\n' +
'\n' + '有人出现就录像,可随时查看实时画面。'.tr +
'一般情况下满电可使用2~4个月。'.tr, '\n' +
2), '一般情况下满电可使用2~4个月。'.tr,
SizedBox( 2),
height: 30.h, SizedBox(
), height: 30.h,
_buildTipsView('自定义模式'.tr + '\n', ),
'根据您家门口实际情况设置录像和实时画面功能。'.tr + '\n' + '可使用时长由具体设置决定。'.tr, 3) _buildTipsView('自定义模式'.tr + '\n',
], '根据您家门口实际情况设置录像和实时画面功能。'.tr + '\n' + '可使用时长由具体设置决定。'.tr, 3)
],
),
), ),
), ),
); );
@ -121,13 +123,14 @@ class _CatEyeWorkModePageState extends State<CatEyeWorkModePage> {
), ),
GestureDetector( GestureDetector(
child: Container( child: Container(
width: 90.w, padding: EdgeInsets.all(8.w),
height: 40.h,
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.transparent, color: Colors.transparent,
borderRadius: BorderRadius.circular(15.0), borderRadius: BorderRadius.circular(15.0),
border: Border.all( border: Border.all(
color: AppColors.placeholderTextColor, width: 1.w), color: AppColors.placeholderTextColor,
width: 1.w,
),
), ),
child: Center( child: Center(
child: Text( child: Text(

View File

@ -28,7 +28,7 @@ class _LiveVideoPageState extends State<LiveVideoPage> {
return Scaffold( return Scaffold(
backgroundColor: AppColors.mainBackgroundColor, backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar( appBar: TitleAppBar(
barTitle: '实时画面', barTitle: '实时画面'.tr,
haveBack: true, haveBack: true,
backAction: () { backAction: () {
Navigator.pop(context, true); Navigator.pop(context, true);

View File

@ -155,10 +155,16 @@ class _MsgNotificationPageState extends State<MsgNotificationPage> {
SizedBox( SizedBox(
height: 60.h, height: 60.h,
), ),
Text( Padding(
'此模块功能需要锁联网后设置方可生效'.tr, padding: EdgeInsets.symmetric(horizontal: 30.w),
style: TextStyle(fontSize: 20.sp), child: Text(
) '此模块功能需要锁联网后设置方可生效'.tr,
style: TextStyle(fontSize: 20.sp),
textAlign: TextAlign.center, //
softWrap: true, //
overflow: TextOverflow.visible, //
),
),
], ],
); );
} }

View File

@ -109,8 +109,10 @@ class _AuthorizedAdministratorListPageState
64.h), 64.h),
Align( Align(
alignment: const Alignment(0.0, 0.2), alignment: const Alignment(0.0, 0.2),
child: SizedBox( child: Container(
width: 360.w, constraints: BoxConstraints(
maxWidth: 0.9.sw,
),
child: SubmitBtn( child: SubmitBtn(
btnName: '添加授权管理员'.tr, btnName: '添加授权管理员'.tr,
onClick: () { onClick: () {

View File

@ -17,9 +17,13 @@ import 'package:star_lock/talk/starChart/proto/talk_expect.pb.dart';
import 'package:star_lock/talk/starChart/proto/talk_request.pb.dart'; import 'package:star_lock/talk/starChart/proto/talk_request.pb.dart';
import 'package:star_lock/tools/push/xs_jPhush.dart'; import 'package:star_lock/tools/push/xs_jPhush.dart';
import 'package:star_lock/tools/storage.dart'; import 'package:star_lock/tools/storage.dart';
import 'package:star_lock/translations/current_locale_tool.dart';
class UdpTalkRequestHandler extends ScpMessageBaseHandle class UdpTalkRequestHandler extends ScpMessageBaseHandle
implements ScpMessageHandler { implements ScpMessageHandler {
RxString currentLanguage =
CurrentLocaleTool.getCurrentLocaleString().obs; //
@override @override
void handleReq(ScpMessage scpMessage) async { void handleReq(ScpMessage scpMessage) async {
// //
@ -107,7 +111,9 @@ class UdpTalkRequestHandler extends ScpMessageBaseHandle
} }
}; };
XSJPushProvider().showCustomNotification(message); if (currentLanguage.value == 'zh_CN') {
XSJPushProvider().showCustomNotification(message);
}
} }
/* /*
const AndroidNotificationDetails androidPlatformChannelSpecifics = const AndroidNotificationDetails androidPlatformChannelSpecifics =

View File

@ -20,6 +20,7 @@ class CommonItem extends StatelessWidget {
this.rightWidget, this.rightWidget,
this.isTipsImg, this.isTipsImg,
this.action, this.action,
this.leftTitleMaxWidth, //
this.tipsImgAction}) this.tipsImgAction})
: super(key: key); : super(key: key);
String? leftTitel; String? leftTitel;
@ -34,6 +35,7 @@ class CommonItem extends StatelessWidget {
bool? setHeight; bool? setHeight;
bool? isTipsImg; bool? isTipsImg;
bool? isPadding; bool? isPadding;
final double? leftTitleMaxWidth; //
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -57,7 +59,17 @@ class CommonItem extends StatelessWidget {
), ),
child: Row( child: Row(
children: <Widget>[ children: <Widget>[
Text(leftTitel!, style: TextStyle(fontSize: 22.sp)), ConstrainedBox(
constraints: BoxConstraints(
maxWidth: leftTitleMaxWidth ?? 0.6.sw, // 40%
),
child: Text(
leftTitel!,
style: TextStyle(fontSize: 22.sp),
overflow: TextOverflow.ellipsis, //
maxLines: 3, // 2
),
),
SizedBox(width: 6.w), SizedBox(width: 6.w),
if (isTipsImg == true) if (isTipsImg == true)
GestureDetector( GestureDetector(

View File

@ -1,4 +1,3 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
@ -9,9 +8,9 @@ import '../app_settings/app_colors.dart';
* */ * */
class SubmitBtn extends StatelessWidget { class SubmitBtn extends StatelessWidget {
SubmitBtn({ SubmitBtn({
required this.btnName, Key? key, required this.btnName,
Key? key,
this.borderRadius, this.borderRadius,
this.color, this.color,
this.padding, this.padding,
@ -49,7 +48,9 @@ class SubmitBtn extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
width: ScreenUtil().screenWidth - 40.w, width: ScreenUtil().screenWidth - 40.w,
height: 60.h, constraints: BoxConstraints(
minHeight: 60.h, //
),
child: ElevatedButton( child: ElevatedButton(
style: ElevatedButton.styleFrom( style: ElevatedButton.styleFrom(
backgroundColor: isDisabled == false backgroundColor: isDisabled == false
@ -63,7 +64,14 @@ class SubmitBtn extends StatelessWidget {
}, },
child: Text( child: Text(
btnName!, btnName!,
style: TextStyle(color: Colors.white, fontSize: 24.sp), textAlign: TextAlign.center, //
softWrap: true, //
overflow: TextOverflow.visible, //
style: TextStyle(
color: Colors.white,
fontSize: 24.sp,
height: 1.2, //
),
)), )),
); );
/* /*
@ -111,9 +119,9 @@ class SubmitBtn extends StatelessWidget {
* */ * */
class AddBottomWhiteBtn extends StatelessWidget { class AddBottomWhiteBtn extends StatelessWidget {
AddBottomWhiteBtn({ AddBottomWhiteBtn({
required this.btnName, Key? key, required this.btnName,
Key? key,
this.onClick, this.onClick,
}) : super(key: key); }) : super(key: key);
String? btnName; String? btnName;
@ -164,9 +172,9 @@ class AddBottomWhiteBtn extends StatelessWidget {
* */ * */
class OutLineBtn extends StatelessWidget { class OutLineBtn extends StatelessWidget {
OutLineBtn({ OutLineBtn({
required this.btnName, Key? key, required this.btnName,
Key? key,
this.onClick, this.onClick,
}) : super(key: key); }) : super(key: key);
String? btnName; String? btnName;