From 4c993fcecb923607cb999a8aaf2c914cbfab10a8 Mon Sep 17 00:00:00 2001 From: grummbeer Date: Wed, 1 Mar 2023 08:55:21 +0100 Subject: [PATCH 01/22] Mobile. Share Screen. Fix "service" button causes canvas overflow --- flutter/lib/mobile/pages/server_page.dart | 128 +++++++++++----------- 1 file changed, 66 insertions(+), 62 deletions(-) diff --git a/flutter/lib/mobile/pages/server_page.dart b/flutter/lib/mobile/pages/server_page.dart index 218559a6e..07a81f8de 100644 --- a/flutter/lib/mobile/pages/server_page.dart +++ b/flutter/lib/mobile/pages/server_page.dart @@ -2,6 +2,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_hbb/mobile/widgets/dialog.dart'; +import 'package:get/get.dart'; import 'package:provider/provider.dart'; import '../../common.dart'; @@ -264,70 +265,73 @@ class _PermissionCheckerState extends State { } else { status = 'Ready'; } + + // @todo Theming + Widget ServerStateMessage() { + if (!serverModel.mediaOk) { + return Row(children: [ + const Icon(Icons.warning_amber_outlined, + color: Colors.redAccent, size: 24) + .marginOnly(right: 10), + Expanded(child: Text(translate('Service is not running'))) + ]); + } + + if (serverModel.connectStatus == -1) { + return Row(children: [ + const Icon(Icons.warning_amber_sharp, + color: Colors.redAccent, size: 24) + .marginOnly(right: 10), + Expanded(child: Text(translate('not_ready_status'))) + ]); + } else if (serverModel.connectStatus == 0) { + return Row(children: [ + SizedBox(width: 20, height: 20, child: CircularProgressIndicator()) + .marginOnly(left: 4, right: 10), + Expanded(child: Text(translate('connecting_status'))) + ]); + } else { + return Row(children: [ + const Icon(Icons.check, color: Colors.greenAccent, size: 24) + .marginOnly(right: 10), + Expanded(child: Text(translate('Ready'))) + ]); + } + } + return PaddingCard( title: translate("Permissions"), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - PermissionRow(translate("Screen Capture"), serverModel.mediaOk, - serverModel.toggleService), - PermissionRow(translate("Input Control"), serverModel.inputOk, - serverModel.toggleInput), - PermissionRow(translate("Transfer File"), serverModel.fileOk, - serverModel.toggleFile), - hasAudioPermission - ? PermissionRow(translate("Audio Capture"), serverModel.audioOk, - serverModel.toggleAudio) - : Text( - "* ${translate("android_version_audio_tip")}", - style: const TextStyle(color: MyTheme.darkGray), - ), - const SizedBox(height: 8), - Row( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Expanded( - flex: 0, - child: serverModel.mediaOk - ? ElevatedButton.icon( - style: ButtonStyle( - backgroundColor: - MaterialStateProperty.all(Colors.red)), - icon: const Icon(Icons.stop), - onPressed: serverModel.toggleService, - label: Text(translate("Stop service"))) - : ElevatedButton.icon( - icon: const Icon(Icons.play_arrow), - onPressed: serverModel.toggleService, - label: Text(translate("Start Service")))), - Expanded( - child: serverModel.mediaOk - ? Row( - children: [ - Expanded( - flex: 0, - child: Padding( - padding: const EdgeInsets.only( - left: 20, right: 5), - child: Icon(Icons.circle, - color: serverModel.connectStatus > 0 - ? Colors.greenAccent - : Colors.deepOrangeAccent, - size: 10))), - Expanded( - child: Text(translate(status), - softWrap: true, - style: const TextStyle( - fontSize: 14.0, - fontWeight: FontWeight.w500, - color: MyTheme.accent80))) - ], - ) - : const SizedBox.shrink()) - ], - ), - ], - )); + child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ + PermissionRow(translate("Screen Capture"), serverModel.mediaOk, + serverModel.toggleService), + PermissionRow(translate("Input Control"), serverModel.inputOk, + serverModel.toggleInput), + PermissionRow(translate("Transfer File"), serverModel.fileOk, + serverModel.toggleFile), + hasAudioPermission + ? PermissionRow(translate("Audio Capture"), serverModel.audioOk, + serverModel.toggleAudio) + : Text( + "* ${translate("android_version_audio_tip")}", + style: const TextStyle(color: MyTheme.darkGray), + ), + const SizedBox(height: 8), + serverModel.mediaOk + ? ElevatedButton.icon( + style: ButtonStyle( + backgroundColor: + MaterialStateProperty.all(Colors.red)), + icon: const Icon(Icons.stop), + onPressed: serverModel.toggleService, + label: Text(translate("Stop service"))) + .marginOnly(bottom: 8) + : ElevatedButton.icon( + icon: const Icon(Icons.play_arrow), + onPressed: serverModel.toggleService, + label: Text(translate("Start Service"))) + .marginOnly(bottom: 8), + ServerStateMessage() + ])); } } From b3b6c543122c0c6ecf426fed08b1b56edd95d0b5 Mon Sep 17 00:00:00 2001 From: grummbeer Date: Thu, 2 Mar 2023 03:05:03 +0100 Subject: [PATCH 02/22] Mobile. Share Screen. Rearrange button und connection state --- flutter/lib/mobile/pages/server_page.dart | 122 +++++++++------------- 1 file changed, 52 insertions(+), 70 deletions(-) diff --git a/flutter/lib/mobile/pages/server_page.dart b/flutter/lib/mobile/pages/server_page.dart index 07a81f8de..36cc43ebb 100644 --- a/flutter/lib/mobile/pages/server_page.dart +++ b/flutter/lib/mobile/pages/server_page.dart @@ -170,6 +170,35 @@ class ServerInfo extends StatelessWidget { @override Widget build(BuildContext context) { final isPermanent = model.verificationMethod == kUsePermanentPassword; + final serverModel = Provider.of(context); + + // @todo Theming + Widget Notification() { + const Color colorPositive = Colors.greenAccent; + const Color colorNegative = Colors.redAccent; + const double paddingRight = 15; + + if (serverModel.connectStatus == -1) { + return Row(children: [ + const Icon(Icons.warning_amber_sharp, color: colorNegative, size: 24) + .marginOnly(right: paddingRight), + Expanded(child: Text(translate('not_ready_status'))) + ]); + } else if (serverModel.connectStatus == 0) { + return Row(children: [ + SizedBox(width: 20, height: 20, child: CircularProgressIndicator()) + .marginOnly(left: 4, right: paddingRight), + Expanded(child: Text(translate('connecting_status'))) + ]); + } else { + return Row(children: [ + const Icon(Icons.check, color: colorPositive, size: 24) + .marginOnly(right: paddingRight), + Expanded(child: Text(translate('Ready'))) + ]); + } + } + return model.isStart ? PaddingCard( child: Column( @@ -210,14 +239,14 @@ class ServerInfo extends StatelessWidget { bind.mainUpdateTemporaryPassword())), onSaved: (String? value) {}, ), + Notification().marginOnly(top: 20) ], )) : PaddingCard( child: Column( - crossAxisAlignment: CrossAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, children: [ - Center( - child: Row( + Row( children: [ const Icon(Icons.warning_amber_sharp, color: Colors.redAccent, size: 24), @@ -229,17 +258,18 @@ class ServerInfo extends StatelessWidget { fontFamily: 'WorkSans', fontWeight: FontWeight.bold, fontSize: 18, - color: MyTheme.accent, ), )) ], - )), - const SizedBox(height: 5), - Center( - child: Text( - translate("android_start_service_tip"), - style: const TextStyle(fontSize: 12, color: MyTheme.darkGray), - )) + ).marginOnly(bottom: 8), + Text(translate("android_start_service_tip"), + style: const TextStyle( + fontSize: 12, color: MyTheme.darkGray)) + .marginOnly(bottom: 8), + ElevatedButton.icon( + icon: const Icon(Icons.play_arrow), + onPressed: serverModel.toggleService, + label: Text(translate("Start Service"))) ], )); } @@ -257,51 +287,19 @@ class _PermissionCheckerState extends State { Widget build(BuildContext context) { final serverModel = Provider.of(context); final hasAudioPermission = androidVersion >= 30; - final String status; - if (serverModel.connectStatus == -1) { - status = 'not_ready_status'; - } else if (serverModel.connectStatus == 0) { - status = 'connecting_status'; - } else { - status = 'Ready'; - } - - // @todo Theming - Widget ServerStateMessage() { - if (!serverModel.mediaOk) { - return Row(children: [ - const Icon(Icons.warning_amber_outlined, - color: Colors.redAccent, size: 24) - .marginOnly(right: 10), - Expanded(child: Text(translate('Service is not running'))) - ]); - } - - if (serverModel.connectStatus == -1) { - return Row(children: [ - const Icon(Icons.warning_amber_sharp, - color: Colors.redAccent, size: 24) - .marginOnly(right: 10), - Expanded(child: Text(translate('not_ready_status'))) - ]); - } else if (serverModel.connectStatus == 0) { - return Row(children: [ - SizedBox(width: 20, height: 20, child: CircularProgressIndicator()) - .marginOnly(left: 4, right: 10), - Expanded(child: Text(translate('connecting_status'))) - ]); - } else { - return Row(children: [ - const Icon(Icons.check, color: Colors.greenAccent, size: 24) - .marginOnly(right: 10), - Expanded(child: Text(translate('Ready'))) - ]); - } - } - return PaddingCard( title: translate("Permissions"), child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ + serverModel.mediaOk + ? ElevatedButton.icon( + style: ButtonStyle( + backgroundColor: + MaterialStateProperty.all(Colors.red)), + icon: const Icon(Icons.stop), + onPressed: serverModel.toggleService, + label: Text(translate("Stop service"))) + .marginOnly(bottom: 8) + : SizedBox.shrink(), PermissionRow(translate("Screen Capture"), serverModel.mediaOk, serverModel.toggleService), PermissionRow(translate("Input Control"), serverModel.inputOk, @@ -314,23 +312,7 @@ class _PermissionCheckerState extends State { : Text( "* ${translate("android_version_audio_tip")}", style: const TextStyle(color: MyTheme.darkGray), - ), - const SizedBox(height: 8), - serverModel.mediaOk - ? ElevatedButton.icon( - style: ButtonStyle( - backgroundColor: - MaterialStateProperty.all(Colors.red)), - icon: const Icon(Icons.stop), - onPressed: serverModel.toggleService, - label: Text(translate("Stop service"))) - .marginOnly(bottom: 8) - : ElevatedButton.icon( - icon: const Icon(Icons.play_arrow), - onPressed: serverModel.toggleService, - label: Text(translate("Start Service"))) - .marginOnly(bottom: 8), - ServerStateMessage() + ) ])); } } From 40115163b41c9689b07560fb902c7bb742386339 Mon Sep 17 00:00:00 2001 From: grummbeer Date: Thu, 2 Mar 2023 03:50:04 +0100 Subject: [PATCH 03/22] Mobile. Share Screen. Unify button style --- flutter/lib/models/server_model.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flutter/lib/models/server_model.dart b/flutter/lib/models/server_model.dart index dde452814..4fab2b24c 100644 --- a/flutter/lib/models/server_model.dart +++ b/flutter/lib/models/server_model.dart @@ -289,7 +289,7 @@ class ServerModel with ChangeNotifier { content: Text(translate("android_stop_service_tip")), actions: [ TextButton(onPressed: close, child: Text(translate("Cancel"))), - ElevatedButton(onPressed: submit, child: Text(translate("OK"))), + TextButton(onPressed: submit, child: Text(translate("OK"))), ], onSubmit: submit, onCancel: close, From 21353a9b474f9d2334dde9cf76a0d2b59dbc559c Mon Sep 17 00:00:00 2001 From: grummbeer Date: Thu, 2 Mar 2023 04:25:43 +0100 Subject: [PATCH 04/22] Mobile. Share Screen. Remove hardcoded colors from serverinfo --- flutter/lib/mobile/pages/server_page.dart | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/flutter/lib/mobile/pages/server_page.dart b/flutter/lib/mobile/pages/server_page.dart index 36cc43ebb..96b5eef07 100644 --- a/flutter/lib/mobile/pages/server_page.dart +++ b/flutter/lib/mobile/pages/server_page.dart @@ -207,30 +207,26 @@ class ServerInfo extends StatelessWidget { TextFormField( readOnly: true, style: const TextStyle( - fontSize: 25.0, - fontWeight: FontWeight.bold, - color: MyTheme.accent), + fontSize: 25.0, fontWeight: FontWeight.bold), controller: model.serverId, decoration: InputDecoration( icon: const Icon(Icons.perm_identity), labelText: translate("ID"), - labelStyle: const TextStyle( - fontWeight: FontWeight.bold, color: MyTheme.accent80), + labelStyle: const TextStyle(fontWeight: FontWeight.bold), ), onSaved: (String? value) {}, ), TextFormField( readOnly: true, style: const TextStyle( - fontSize: 25.0, - fontWeight: FontWeight.bold, - color: MyTheme.accent), + fontSize: 25.0, fontWeight: FontWeight.bold), controller: isPermanent ? emptyController : model.serverPasswd, decoration: InputDecoration( icon: const Icon(Icons.lock), labelText: translate("Password"), labelStyle: const TextStyle( - fontWeight: FontWeight.bold, color: MyTheme.accent80), + fontWeight: FontWeight.bold, + ), suffix: isPermanent ? null : IconButton( From b007812bb9751985d138029f1b01c36f312c8585 Mon Sep 17 00:00:00 2001 From: grummbeer Date: Thu, 2 Mar 2023 14:56:51 +0100 Subject: [PATCH 05/22] Mobile. Share Screen. Move connection manager into viewport --- flutter/lib/mobile/pages/server_page.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flutter/lib/mobile/pages/server_page.dart b/flutter/lib/mobile/pages/server_page.dart index 96b5eef07..ace1b8329 100644 --- a/flutter/lib/mobile/pages/server_page.dart +++ b/flutter/lib/mobile/pages/server_page.dart @@ -141,8 +141,8 @@ class _ServerPageState extends State { mainAxisAlignment: MainAxisAlignment.start, children: [ ServerInfo(), - const PermissionChecker(), const ConnectionManager(), + const PermissionChecker(), SizedBox.fromSize(size: const Size(0, 15.0)), ], ), From 2d3694549dbd4a0e0379b78cb4c90416c676d6a7 Mon Sep 17 00:00:00 2001 From: grummbeer Date: Thu, 9 Mar 2023 12:31:13 +0100 Subject: [PATCH 06/22] Mobile. Share Screen. Reduce layout shift. connection/server page --- flutter/lib/mobile/pages/server_page.dart | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/flutter/lib/mobile/pages/server_page.dart b/flutter/lib/mobile/pages/server_page.dart index ace1b8329..2fe8b9d40 100644 --- a/flutter/lib/mobile/pages/server_page.dart +++ b/flutter/lib/mobile/pages/server_page.dart @@ -477,7 +477,10 @@ class PaddingCard extends StatelessWidget { return SizedBox( width: double.maxFinite, child: Card( - margin: const EdgeInsets.fromLTRB(15.0, 15.0, 15.0, 0), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(13), + ), + margin: const EdgeInsets.fromLTRB(12.0, 10.0, 12.0, 0), child: Padding( padding: const EdgeInsets.symmetric(vertical: 15.0, horizontal: 30.0), From 1f8c64030ddf7dfe92607b6c1d2417b25cdff038 Mon Sep 17 00:00:00 2001 From: grummbeer Date: Sat, 4 Mar 2023 16:47:29 +0100 Subject: [PATCH 07/22] Mobile. Share Screen. Use "disconnect" instead of "close" --- flutter/lib/mobile/pages/server_page.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flutter/lib/mobile/pages/server_page.dart b/flutter/lib/mobile/pages/server_page.dart index 2fe8b9d40..ee8600735 100644 --- a/flutter/lib/mobile/pages/server_page.dart +++ b/flutter/lib/mobile/pages/server_page.dart @@ -418,7 +418,7 @@ class ConnectionManager extends StatelessWidget { gFFI.invokeMethod( "cancel_notification", client.id); }, - label: Text(translate("Close"))) + label: Text(translate("Disconnect"))) : Row(children: [ TextButton( child: Text(translate("Dismiss")), From 9c3334baf4b827efae2b29d20dc99f72e561f8b6 Mon Sep 17 00:00:00 2001 From: grummbeer Date: Mon, 6 Mar 2023 15:27:22 +0100 Subject: [PATCH 08/22] Mobile. Share Screen. Split large ternary to smaller parts --- flutter/lib/mobile/pages/server_page.dart | 145 ++++++++++++---------- 1 file changed, 76 insertions(+), 69 deletions(-) diff --git a/flutter/lib/mobile/pages/server_page.dart b/flutter/lib/mobile/pages/server_page.dart index ee8600735..a83fec29a 100644 --- a/flutter/lib/mobile/pages/server_page.dart +++ b/flutter/lib/mobile/pages/server_page.dart @@ -140,7 +140,9 @@ class _ServerPageState extends State { child: Column( mainAxisAlignment: MainAxisAlignment.start, children: [ - ServerInfo(), + gFFI.serverModel.isStart + ? ServerInfo() + : ServiceNotRunningNotification(), const ConnectionManager(), const PermissionChecker(), SizedBox.fromSize(size: const Size(0, 15.0)), @@ -161,6 +163,45 @@ void checkService() async { } } +class ServiceNotRunningNotification extends StatelessWidget { + ServiceNotRunningNotification({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + final serverModel = Provider.of(context); + + return PaddingCard( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + const Icon(Icons.warning_amber_sharp, + color: Colors.redAccent, size: 24), + const SizedBox(width: 10), + Expanded( + child: Text( + translate("Service is not running"), + style: const TextStyle( + fontFamily: 'WorkSans', + fontWeight: FontWeight.bold, + fontSize: 18, + ), + )) + ], + ).marginOnly(bottom: 8), + Text(translate("android_start_service_tip"), + style: const TextStyle(fontSize: 12, color: MyTheme.darkGray)) + .marginOnly(bottom: 8), + ElevatedButton.icon( + icon: const Icon(Icons.play_arrow), + onPressed: serverModel.toggleService, + label: Text(translate("Start Service"))) + ], + )); + } +} + class ServerInfo extends StatelessWidget { final model = gFFI.serverModel; final emptyController = TextEditingController(text: "-"); @@ -199,75 +240,41 @@ class ServerInfo extends StatelessWidget { } } - return model.isStart - ? PaddingCard( - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - TextFormField( - readOnly: true, - style: const TextStyle( - fontSize: 25.0, fontWeight: FontWeight.bold), - controller: model.serverId, - decoration: InputDecoration( - icon: const Icon(Icons.perm_identity), - labelText: translate("ID"), - labelStyle: const TextStyle(fontWeight: FontWeight.bold), - ), - onSaved: (String? value) {}, + return PaddingCard( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + TextFormField( + readOnly: true, + style: const TextStyle(fontSize: 25.0, fontWeight: FontWeight.bold), + controller: model.serverId, + decoration: InputDecoration( + icon: const Icon(Icons.perm_identity), + labelText: translate("ID"), + labelStyle: const TextStyle(fontWeight: FontWeight.bold), + ), + onSaved: (String? value) {}, + ), + TextFormField( + readOnly: true, + style: const TextStyle(fontSize: 25.0, fontWeight: FontWeight.bold), + controller: isPermanent ? emptyController : model.serverPasswd, + decoration: InputDecoration( + icon: const Icon(Icons.lock), + labelText: translate("Password"), + labelStyle: const TextStyle( + fontWeight: FontWeight.bold, ), - TextFormField( - readOnly: true, - style: const TextStyle( - fontSize: 25.0, fontWeight: FontWeight.bold), - controller: isPermanent ? emptyController : model.serverPasswd, - decoration: InputDecoration( - icon: const Icon(Icons.lock), - labelText: translate("Password"), - labelStyle: const TextStyle( - fontWeight: FontWeight.bold, - ), - suffix: isPermanent - ? null - : IconButton( - icon: const Icon(Icons.refresh), - onPressed: () => - bind.mainUpdateTemporaryPassword())), - onSaved: (String? value) {}, - ), - Notification().marginOnly(top: 20) - ], - )) - : PaddingCard( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - children: [ - const Icon(Icons.warning_amber_sharp, - color: Colors.redAccent, size: 24), - const SizedBox(width: 10), - Expanded( - child: Text( - translate("Service is not running"), - style: const TextStyle( - fontFamily: 'WorkSans', - fontWeight: FontWeight.bold, - fontSize: 18, - ), - )) - ], - ).marginOnly(bottom: 8), - Text(translate("android_start_service_tip"), - style: const TextStyle( - fontSize: 12, color: MyTheme.darkGray)) - .marginOnly(bottom: 8), - ElevatedButton.icon( - icon: const Icon(Icons.play_arrow), - onPressed: serverModel.toggleService, - label: Text(translate("Start Service"))) - ], - )); + suffix: isPermanent + ? null + : IconButton( + icon: const Icon(Icons.refresh), + onPressed: () => bind.mainUpdateTemporaryPassword())), + onSaved: (String? value) {}, + ), + Notification().marginOnly(top: 20) + ], + )); } } From 2c231824a02457ba4098f5d09f6400570cb582f1 Mon Sep 17 00:00:00 2001 From: grummbeer Date: Tue, 7 Mar 2023 10:11:06 +0100 Subject: [PATCH 09/22] Mobile. Share Screen. Use switches for permissions --- flutter/lib/mobile/pages/server_page.dart | 39 +++++------------------ 1 file changed, 8 insertions(+), 31 deletions(-) diff --git a/flutter/lib/mobile/pages/server_page.dart b/flutter/lib/mobile/pages/server_page.dart index a83fec29a..d584d3bb4 100644 --- a/flutter/lib/mobile/pages/server_page.dart +++ b/flutter/lib/mobile/pages/server_page.dart @@ -330,37 +330,14 @@ class PermissionRow extends StatelessWidget { @override Widget build(BuildContext context) { - return Row( - children: [ - Expanded( - flex: 5, - child: FittedBox( - fit: BoxFit.scaleDown, - alignment: Alignment.centerLeft, - child: - Text(name, style: Theme.of(context).textTheme.labelLarge))), - Expanded( - flex: 2, - child: FittedBox( - fit: BoxFit.scaleDown, - child: Text(isOk ? translate("ON") : translate("OFF"), - style: TextStyle( - fontSize: 16.0, - color: isOk ? Colors.green : Colors.grey))), - ), - Expanded( - flex: 3, - child: FittedBox( - fit: BoxFit.scaleDown, - alignment: Alignment.centerRight, - child: TextButton( - onPressed: onPressed, - child: Text( - translate(isOk ? "CLOSE" : "OPEN"), - style: const TextStyle(fontWeight: FontWeight.bold), - )))), - ], - ); + return SwitchListTile( + visualDensity: VisualDensity.compact, + contentPadding: EdgeInsets.all(0), + title: Text(name), + value: isOk, + onChanged: (bool value) { + onPressed(); + }); } } From 04c0d73afc98a6cbc4e1569921e93bb830f7a69b Mon Sep 17 00:00:00 2001 From: grummbeer Date: Tue, 7 Mar 2023 10:43:55 +0100 Subject: [PATCH 10/22] Mobile. Share Screen. Add icon to "no audio" info --- flutter/lib/mobile/pages/server_page.dart | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/flutter/lib/mobile/pages/server_page.dart b/flutter/lib/mobile/pages/server_page.dart index d584d3bb4..7ed2575ef 100644 --- a/flutter/lib/mobile/pages/server_page.dart +++ b/flutter/lib/mobile/pages/server_page.dart @@ -312,10 +312,14 @@ class _PermissionCheckerState extends State { hasAudioPermission ? PermissionRow(translate("Audio Capture"), serverModel.audioOk, serverModel.toggleAudio) - : Text( - "* ${translate("android_version_audio_tip")}", - style: const TextStyle(color: MyTheme.darkGray), - ) + : Row(children: [ + Icon(Icons.info_outline).marginOnly(right: 15), + Expanded( + child: Text( + translate("android_version_audio_tip"), + style: const TextStyle(color: MyTheme.darkGray), + )) + ]) ])); } } From 1227d6687157dc729fcac8e59ff45edaa5779cd0 Mon Sep 17 00:00:00 2001 From: grummbeer Date: Tue, 7 Mar 2023 10:44:16 +0100 Subject: [PATCH 11/22] Mobile. Share Screen. Rename widget to more descriptive name --- flutter/lib/mobile/pages/server_page.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/flutter/lib/mobile/pages/server_page.dart b/flutter/lib/mobile/pages/server_page.dart index 7ed2575ef..9e2bc3f07 100644 --- a/flutter/lib/mobile/pages/server_page.dart +++ b/flutter/lib/mobile/pages/server_page.dart @@ -214,7 +214,7 @@ class ServerInfo extends StatelessWidget { final serverModel = Provider.of(context); // @todo Theming - Widget Notification() { + Widget ConnectionStateNotification() { const Color colorPositive = Colors.greenAccent; const Color colorNegative = Colors.redAccent; const double paddingRight = 15; @@ -272,7 +272,7 @@ class ServerInfo extends StatelessWidget { onPressed: () => bind.mainUpdateTemporaryPassword())), onSaved: (String? value) {}, ), - Notification().marginOnly(top: 20) + ConnectionStateNotification().marginOnly(top: 20) ], )); } From 45d19a62f9df4231769de4508cee1091b856b8c2 Mon Sep 17 00:00:00 2001 From: grummbeer Date: Tue, 7 Mar 2023 11:45:20 +0100 Subject: [PATCH 12/22] Mobile. Share Screen. Unify usage of card.title, avoid title overflow --- flutter/lib/mobile/pages/server_page.dart | 63 ++++++++++------------- 1 file changed, 26 insertions(+), 37 deletions(-) diff --git a/flutter/lib/mobile/pages/server_page.dart b/flutter/lib/mobile/pages/server_page.dart index 9e2bc3f07..775173812 100644 --- a/flutter/lib/mobile/pages/server_page.dart +++ b/flutter/lib/mobile/pages/server_page.dart @@ -171,34 +171,22 @@ class ServiceNotRunningNotification extends StatelessWidget { final serverModel = Provider.of(context); return PaddingCard( + title: translate("Service is not running"), + titleIcon: + const Icon(Icons.warning_amber_sharp, color: Colors.redAccent), child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( + crossAxisAlignment: CrossAxisAlignment.start, children: [ - const Icon(Icons.warning_amber_sharp, - color: Colors.redAccent, size: 24), - const SizedBox(width: 10), - Expanded( - child: Text( - translate("Service is not running"), - style: const TextStyle( - fontFamily: 'WorkSans', - fontWeight: FontWeight.bold, - fontSize: 18, - ), - )) + Text(translate("android_start_service_tip"), + style: + const TextStyle(fontSize: 12, color: MyTheme.darkGray)) + .marginOnly(bottom: 8), + ElevatedButton.icon( + icon: const Icon(Icons.play_arrow), + onPressed: serverModel.toggleService, + label: Text(translate("Start Service"))) ], - ).marginOnly(bottom: 8), - Text(translate("android_start_service_tip"), - style: const TextStyle(fontSize: 12, color: MyTheme.darkGray)) - .marginOnly(bottom: 8), - ElevatedButton.icon( - icon: const Icon(Icons.play_arrow), - onPressed: serverModel.toggleService, - label: Text(translate("Start Service"))) - ], - )); + )); } } @@ -358,8 +346,8 @@ class ConnectionManager extends StatelessWidget { ? "File Connection" : "Screen Connection"), titleIcon: client.isFileTransfer - ? Icons.folder_outlined - : Icons.mobile_screen_share, + ? Icon(Icons.folder_outlined) + : Icon(Icons.mobile_screen_share), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ @@ -431,7 +419,7 @@ class PaddingCard extends StatelessWidget { : super(key: key); final String? title; - final IconData? titleIcon; + final Icon? titleIcon; final Widget child; @override @@ -447,16 +435,17 @@ class PaddingCard extends StatelessWidget { titleIcon != null ? Padding( padding: const EdgeInsets.only(right: 10), - child: - Icon(titleIcon, color: MyTheme.accent, size: 30)) + child: titleIcon) : const SizedBox.shrink(), - Text( - title!, - style: const TextStyle( - fontFamily: 'WorkSans', - fontWeight: FontWeight.bold, - fontSize: 20, - color: MyTheme.accent, + Expanded( + child: Text( + title!, + style: const TextStyle( + fontFamily: 'WorkSans', + fontWeight: FontWeight.bold, + fontSize: 20, + color: MyTheme.accent, + ), ), ) ], From 583b5bf4ead9dac619d71378101e1c002b6c170e Mon Sep 17 00:00:00 2001 From: grummbeer Date: Tue, 7 Mar 2023 12:12:31 +0100 Subject: [PATCH 13/22] Mobile. Share Screen. Remove hardcoded colors from connection card --- flutter/lib/mobile/pages/server_page.dart | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/flutter/lib/mobile/pages/server_page.dart b/flutter/lib/mobile/pages/server_page.dart index 775173812..7079fc5e1 100644 --- a/flutter/lib/mobile/pages/server_page.dart +++ b/flutter/lib/mobile/pages/server_page.dart @@ -369,10 +369,7 @@ class ConnectionManager extends StatelessWidget { bar.onTap!(1); } }, - icon: const Icon( - Icons.chat, - color: MyTheme.accent, - ))) + icon: const Icon(Icons.chat))) ], ), client.authorized @@ -429,7 +426,7 @@ class PaddingCard extends StatelessWidget { children.insert( 0, Padding( - padding: const EdgeInsets.symmetric(vertical: 5.0), + padding: const EdgeInsets.fromLTRB(0, 5, 0, 8), child: Row( children: [ titleIcon != null @@ -441,11 +438,7 @@ class PaddingCard extends StatelessWidget { child: Text( title!, style: const TextStyle( - fontFamily: 'WorkSans', - fontWeight: FontWeight.bold, - fontSize: 20, - color: MyTheme.accent, - ), + fontSize: 18, fontWeight: FontWeight.bold), ), ) ], @@ -494,13 +487,9 @@ class ClientInfo extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.center, children: [ - Text(client.name, - style: const TextStyle( - color: MyTheme.idColor, fontSize: 18)), + Text(client.name, style: const TextStyle(fontSize: 18)), const SizedBox(width: 8), - Text(client.peerId, - style: const TextStyle( - color: MyTheme.idColor, fontSize: 10)) + Text(client.peerId, style: const TextStyle(fontSize: 10)) ])) ], ), From 772ce658cfcae638c2e600fad0765b572fad2e0c Mon Sep 17 00:00:00 2001 From: grummbeer Date: Tue, 7 Mar 2023 12:16:19 +0100 Subject: [PATCH 14/22] Mobile. Share Screen. Add check icon to "accept" button --- flutter/lib/mobile/pages/server_page.dart | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/flutter/lib/mobile/pages/server_page.dart b/flutter/lib/mobile/pages/server_page.dart index 7079fc5e1..dcd1fae7c 100644 --- a/flutter/lib/mobile/pages/server_page.dart +++ b/flutter/lib/mobile/pages/server_page.dart @@ -399,8 +399,9 @@ class ConnectionManager extends StatelessWidget { serverModel.sendLoginResponse(client, false); }), const SizedBox(width: 20), - ElevatedButton( - child: Text(translate("Accept")), + ElevatedButton.icon( + icon: const Icon(Icons.check), + label: Text(translate("Accept")), onPressed: () { serverModel.sendLoginResponse(client, true); }), From 90cc95b1d08713e87e2dc74590d5344126af17b3 Mon Sep 17 00:00:00 2001 From: grummbeer Date: Tue, 7 Mar 2023 13:20:14 +0100 Subject: [PATCH 15/22] Mobile. Share Screen. Connection card button align right --- flutter/lib/mobile/pages/server_page.dart | 125 ++++++++++++---------- 1 file changed, 66 insertions(+), 59 deletions(-) diff --git a/flutter/lib/mobile/pages/server_page.dart b/flutter/lib/mobile/pages/server_page.dart index dcd1fae7c..a92a13609 100644 --- a/flutter/lib/mobile/pages/server_page.dart +++ b/flutter/lib/mobile/pages/server_page.dart @@ -349,65 +349,72 @@ class ConnectionManager extends StatelessWidget { ? Icon(Icons.folder_outlined) : Icon(Icons.mobile_screen_share), child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Expanded(child: ClientInfo(client)), - Expanded( - flex: -1, - child: client.isFileTransfer || !client.authorized - ? const SizedBox.shrink() - : IconButton( - onPressed: () { - gFFI.chatModel.changeCurrentID(client.id); - final bar = - navigationBarKey.currentWidget; - if (bar != null) { - bar as BottomNavigationBar; - bar.onTap!(1); - } - }, - icon: const Icon(Icons.chat))) - ], - ), - client.authorized - ? const SizedBox.shrink() - : Text( - translate("android_new_connection_tip"), - style: Theme.of(globalKey.currentContext!) - .textTheme - .bodyMedium, - ), - client.authorized - ? ElevatedButton.icon( - style: ButtonStyle( - backgroundColor: - MaterialStatePropertyAll(Colors.red)), - icon: const Icon(Icons.close), - onPressed: () { - bind.cmCloseConnection(connId: client.id); - gFFI.invokeMethod( - "cancel_notification", client.id); - }, - label: Text(translate("Disconnect"))) - : Row(children: [ - TextButton( - child: Text(translate("Dismiss")), - onPressed: () { - serverModel.sendLoginResponse(client, false); - }), - const SizedBox(width: 20), - ElevatedButton.icon( - icon: const Icon(Icons.check), - label: Text(translate("Accept")), - onPressed: () { - serverModel.sendLoginResponse(client, true); - }), - ]), - ], - ))) + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded(child: ClientInfo(client)), + Expanded( + flex: -1, + child: client.isFileTransfer || !client.authorized + ? const SizedBox.shrink() + : IconButton( + onPressed: () { + gFFI.chatModel + .changeCurrentID(client.id); + final bar = + navigationBarKey.currentWidget; + if (bar != null) { + bar as BottomNavigationBar; + bar.onTap!(1); + } + }, + icon: const Icon(Icons.chat))) + ], + ), + client.authorized + ? const SizedBox.shrink() + : Text( + translate("android_new_connection_tip"), + style: Theme.of(context).textTheme.bodyMedium, + ).marginOnly(bottom: 5), + client.authorized + ? Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + ElevatedButton.icon( + style: ButtonStyle( + backgroundColor: + MaterialStatePropertyAll( + Colors.red)), + icon: const Icon(Icons.close), + onPressed: () { + bind.cmCloseConnection( + connId: client.id); + gFFI.invokeMethod( + "cancel_notification", client.id); + }, + label: Text(translate("Disconnect"))) + ]) + : Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + child: Text(translate("Dismiss")), + onPressed: () { + serverModel.sendLoginResponse( + client, false); + }).marginOnly(right: 15), + ElevatedButton.icon( + icon: const Icon(Icons.check), + label: Text(translate("Accept")), + onPressed: () { + serverModel.sendLoginResponse( + client, true); + }), + ]), + ]))) .toList()); } } From 03eba7faf0cfdeec749d90fe49952051926ceaf0 Mon Sep 17 00:00:00 2001 From: grummbeer Date: Tue, 7 Mar 2023 14:19:28 +0100 Subject: [PATCH 16/22] Mobile. Share Screen. More contrast for avatar on light --- flutter/lib/mobile/pages/server_page.dart | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/flutter/lib/mobile/pages/server_page.dart b/flutter/lib/mobile/pages/server_page.dart index a92a13609..4a93bbec2 100644 --- a/flutter/lib/mobile/pages/server_page.dart +++ b/flutter/lib/mobile/pages/server_page.dart @@ -487,8 +487,11 @@ class ClientInfo extends StatelessWidget { child: Padding( padding: const EdgeInsets.only(right: 12), child: CircleAvatar( - backgroundColor: - str2color(client.name).withOpacity(0.7), + backgroundColor: str2color( + client.name, + Theme.of(context).brightness == Brightness.light + ? 255 + : 150), child: Text(client.name[0])))), Expanded( child: Column( From 5daa985ec5a25f91b63baef8b548a5ea90fa0179 Mon Sep 17 00:00:00 2001 From: grummbeer Date: Tue, 7 Mar 2023 14:55:00 +0100 Subject: [PATCH 17/22] Mobile. Share Screen. Remove obsolete keys from translation files --- src/lang/ca.rs | 4 +--- src/lang/cn.rs | 4 +--- src/lang/cs.rs | 4 +--- src/lang/da.rs | 4 +--- src/lang/de.rs | 2 -- src/lang/el.rs | 4 +--- src/lang/en.rs | 2 +- src/lang/eo.rs | 2 -- src/lang/es.rs | 4 +--- src/lang/fa.rs | 4 +--- src/lang/fr.rs | 4 +--- src/lang/hu.rs | 4 +--- src/lang/id.rs | 4 +--- src/lang/it.rs | 4 +--- src/lang/ja.rs | 4 +--- src/lang/ko.rs | 4 +--- src/lang/kz.rs | 4 +--- src/lang/nl.rs | 4 +--- src/lang/pl.rs | 4 +--- src/lang/pt_PT.rs | 4 +--- src/lang/ptbr.rs | 4 +--- src/lang/ro.rs | 4 +--- src/lang/ru.rs | 4 +--- src/lang/sk.rs | 4 +--- src/lang/sl.rs | 4 +--- src/lang/sq.rs | 4 +--- src/lang/sr.rs | 4 +--- src/lang/sv.rs | 4 +--- src/lang/template.rs | 2 -- src/lang/th.rs | 4 +--- src/lang/tr.rs | 4 +--- src/lang/tw.rs | 4 +--- src/lang/ua.rs | 4 +--- src/lang/vn.rs | 4 +--- 34 files changed, 31 insertions(+), 97 deletions(-) diff --git a/src/lang/ca.rs b/src/lang/ca.rs index 0d0219126..9e8770c2b 100644 --- a/src/lang/ca.rs +++ b/src/lang/ca.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Nota"), ("Connection", "connexió"), ("Share Screen", "Compartir pantalla"), - ("CLOSE", "TANCAR"), - ("OPEN", "OBRIR"), ("Chat", "Xat"), ("Total", "Total"), ("items", "ítems"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "Habilitar la captura de pantalla iniciarà el servei automàticament, i permetrà que altres dispositius sol·licitin una connexió des d'aquest dispositiu."), ("android_stop_service_tip", "Tancar el servei tancarà totes les connexions establertes."), ("android_version_audio_tip", "La versión actual de Android no admet la captura d'àudio, actualizi a Android 10 o superior."), - ("android_start_service_tip", "Toqui el permís [Iniciar servei] o OBRIR [Captura de pantalla] per iniciar el servei d'ús compartit de pantalla."), + ("android_start_service_tip", ""), ("Account", "Compte"), ("Overwrite", "Sobreescriure"), ("This file exists, skip or overwrite this file?", "Aquest arxiu ja existeix, ometre o sobreescriure l'arxiu?"), diff --git a/src/lang/cn.rs b/src/lang/cn.rs index 8fe826232..c5cf4cd03 100644 --- a/src/lang/cn.rs +++ b/src/lang/cn.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "备注"), ("Connection", "连接"), ("Share Screen", "共享屏幕"), - ("CLOSE", "关闭"), - ("OPEN", "开启"), ("Chat", "聊天消息"), ("Total", "总计"), ("items", "个项目"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "开启录屏权限将自动开启服务,允许其他设备向此设备请求建立连接。"), ("android_stop_service_tip", "关闭服务将自动关闭所有已建立的连接。"), ("android_version_audio_tip", "当前安卓版本不支持音频录制,请升级至安卓 10 或更高。"), - ("android_start_service_tip", "点击 [启动服务] 或打开 [屏幕录制] 权限开启手机屏幕共享服务。"), + ("android_start_service_tip", ""), ("Account", "账户"), ("Overwrite", "覆盖"), ("This file exists, skip or overwrite this file?", "这个文件/文件夹已存在,跳过/覆盖?"), diff --git a/src/lang/cs.rs b/src/lang/cs.rs index 5893b3e15..620cc1373 100644 --- a/src/lang/cs.rs +++ b/src/lang/cs.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Poznámka"), ("Connection", "Připojení"), ("Share Screen", "Nasdílet obrazovku"), - ("CLOSE", "ZAVŘÍT"), - ("OPEN", "OTEVŘÍT"), ("Chat", "Chat"), ("Total", "Celkem"), ("items", "Položek"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "Zapnutí „Zachytávání obsahu obrazovky“ automaticky spustí službu, což umožní ostatním zařízením žádat o připojení k vašemu zařízení."), ("android_stop_service_tip", "Zastavení služby automaticky ukončí veškerá navázaná spojení."), ("android_version_audio_tip", "Vámi nyní používaná verze systému Android nepodporuje zachytávání zvuku – přejděte na Android 10 nebo novější."), - ("android_start_service_tip", "Službu pro sdílení obrazovky spustíte klepnutím na [Spustit službu] nebo UDĚLTE pověření pro [Zachytávání obsahu obrazovky]."), + ("android_start_service_tip", ""), ("Account", ""), ("Overwrite", "Přepsat"), ("This file exists, skip or overwrite this file?", "Tento soubor existuje – přeskočit ho nebo přepsat?"), diff --git a/src/lang/da.rs b/src/lang/da.rs index 0c2a01d63..dbb9e3060 100644 --- a/src/lang/da.rs +++ b/src/lang/da.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Note"), ("Connection", "Forbindelse"), ("Share Screen", "Del skærmen"), - ("CLOSE", "LUK"), - ("OPEN", "ÅBEN"), ("Chat", "Chat"), ("Total", "Total"), ("items", "artikel"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "Ved at tænde for skærmoptagelsen startes tjenesten automatisk, så andre enheder kan anmode om en forbindelse fra denne enhed."), ("android_stop_service_tip", "Ved at lukke tjenesten lukkes alle fremstillede forbindelser automatisk."), ("android_version_audio_tip", "Den aktuelle Android -version understøtter ikke lydoptagelse, skal du opdatere om Android 10 eller højere."), - ("android_start_service_tip", "Tryk på [Start Service] eller åbn autorisationen [skærmoptagelse] for at starte skærmudgivelsen."), + ("android_start_service_tip", ""), ("Account", "Konto"), ("Overwrite", "Overskriv"), ("This file exists, skip or overwrite this file?", "Denne fil findes, springer over denne fil eller overskriver?"), diff --git a/src/lang/de.rs b/src/lang/de.rs index b9fc7834a..2127ecaac 100644 --- a/src/lang/de.rs +++ b/src/lang/de.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Hinweis"), ("Connection", "Verbindung"), ("Share Screen", "Bildschirm freigeben"), - ("CLOSE", "DEAKTIVIEREN"), - ("OPEN", "AKTIVIEREN"), ("Chat", "Chat"), ("Total", "Gesamt"), ("items", "Einträge"), diff --git a/src/lang/el.rs b/src/lang/el.rs index 63811f209..dae1dedf4 100644 --- a/src/lang/el.rs +++ b/src/lang/el.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Σημείωση"), ("Connection", "Σύνδεση"), ("Share Screen", "Κοινή χρήση οθόνης"), - ("CLOSE", "Απενεργοποίηση"), - ("OPEN", "Ενεργοποίηση"), ("Chat", "Κουβέντα"), ("Total", "Σύνολο"), ("items", "στοιχεία"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "Η ενεργοποίηση της κοινής χρήσης οθόνης θα ξεκινήσει αυτόματα την υπηρεσία, ώστε άλλες συσκευές να μπορούν να ελέγχουν αυτήν τη συσκευή Android."), ("android_stop_service_tip", "Η απενεργοποίηση της υπηρεσίας θα αποσυνδέσει αυτόματα όλες τις εγκατεστημένες συνδέσεις."), ("android_version_audio_tip", "Η έκδοση Android που διαθέτετε δεν υποστηρίζει εγγραφή ήχου, ενημερώστε το σε Android 10 ή νεότερη έκδοση, εάν είναι δυνατόν."), - ("android_start_service_tip", "Πατήστε [Ενεργοποίηση υπηρεσίας] ή ενεργοποιήστε την άδεια [Πρόσβαση στην οθόνη] για να ξεκινήσετε την υπηρεσία κοινής χρήσης οθόνης."), + ("android_start_service_tip", ""), ("Account", "Λογαριασμός"), ("Overwrite", "Αντικατάσταση"), ("This file exists, skip or overwrite this file?", "Αυτό το αρχείο υπάρχει, παράβλεψη ή αντικατάσταση αυτού του αρχείου;"), diff --git a/src/lang/en.rs b/src/lang/en.rs index 100788f6e..7107c1865 100644 --- a/src/lang/en.rs +++ b/src/lang/en.rs @@ -23,7 +23,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "Turning on \"Screen Capture\" will automatically start the service, allowing other devices to request a connection to your device."), ("android_stop_service_tip", "Closing the service will automatically close all established connections."), ("android_version_audio_tip", "The current Android version does not support audio capture, please upgrade to Android 10 or higher."), - ("android_start_service_tip", "Tap [Start Service] or OPEN [Screen Capture] permission to start the screen sharing service."), + ("android_start_service_tip", "Tap [Start Service] or enable [Screen Capture] permission to start the screen sharing service."), ("doc_mac_permission", "https://rustdesk.com/docs/en/manual/mac/#enable-permissions"), ("doc_fix_wayland", "https://rustdesk.com/docs/en/manual/linux/#x11-required"), ("server_not_support", "Not yet supported by the server"), diff --git a/src/lang/eo.rs b/src/lang/eo.rs index 24df8827b..3ff7b608a 100644 --- a/src/lang/eo.rs +++ b/src/lang/eo.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Notu"), ("Connection", ""), ("Share Screen", ""), - ("CLOSE", ""), - ("OPEN", ""), ("Chat", ""), ("Total", ""), ("items", ""), diff --git a/src/lang/es.rs b/src/lang/es.rs index 585a10d68..ba9e8a3d2 100644 --- a/src/lang/es.rs +++ b/src/lang/es.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Nota"), ("Connection", "Conexión"), ("Share Screen", "Compartir pantalla"), - ("CLOSE", "CERRAR"), - ("OPEN", "ABRIR"), ("Chat", "Chat"), ("Total", "Total"), ("items", "items"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "Habilitar la captura de pantalla iniciará automáticamente el servicio, lo que permitirá que otros dispositivos soliciten una conexión desde este dispositivo."), ("android_stop_service_tip", "Cerrar el servicio cerrará automáticamente todas las conexiones establecidas."), ("android_version_audio_tip", "La versión actual de Android no admite la captura de audio, actualice a Android 10 o posterior."), - ("android_start_service_tip", "Toque el permiso [Iniciar servicio] o ABRIR [Captura de pantalla] para iniciar el servicio de uso compartido de pantalla."), + ("android_start_service_tip", ""), ("Account", "Cuenta"), ("Overwrite", "Sobrescribir"), ("This file exists, skip or overwrite this file?", "Este archivo existe, ¿omitir o sobrescribir este archivo?"), diff --git a/src/lang/fa.rs b/src/lang/fa.rs index 3331ab893..9194d2b27 100644 --- a/src/lang/fa.rs +++ b/src/lang/fa.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "یادداشت"), ("Connection", "ارتباط"), ("Share Screen", "اشتراک گذاری صفحه"), - ("CLOSE", "بستن"), - ("OPEN", "باز کردن"), ("Chat", "چت"), ("Total", "مجموع"), ("items", "آیتم ها"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "فعال کردن ضبط صفحه به طور خودکار سرویس را راه اندازی می کند و به دستگاه های دیگر امکان می دهد درخواست اتصال به آن دستگاه را داشته باشند."), ("android_stop_service_tip", "با بستن سرویس، تمام اتصالات برقرار شده به طور خودکار بسته می شود"), ("android_version_audio_tip", "نسخه فعلی اندروید از ضبط صدا پشتیبانی نمی‌کند، لطفاً به اندروید 10 یا بالاتر به‌روزرسانی کنید"), - ("android_start_service_tip", "برای شروع سرویس اشتراک‌گذاری صفحه، روی مجوز \"شروع مرحله‌بندی سرور\" یا OPEN \"Screen Capture\" کلیک کنید."), + ("android_start_service_tip", ""), ("Account", "حساب کاربری"), ("Overwrite", "بازنویسی"), ("This file exists, skip or overwrite this file?", "این فایل وجود دارد، از فایل رد شود یا آن را بازنویسی کند؟"), diff --git a/src/lang/fr.rs b/src/lang/fr.rs index 98083383d..2933fcd79 100644 --- a/src/lang/fr.rs +++ b/src/lang/fr.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Noter"), ("Connection", "Connexion"), ("Share Screen", "Partager l'écran"), - ("CLOSE", "FERMER"), - ("OPEN", "OUVRIR"), ("Chat", "Discuter"), ("Total", "Total"), ("items", "éléments"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "L'activation de la capture d'écran démarrera automatiquement le service, permettant à d'autres appareils de demander une connexion à partir de cet appareil."), ("android_stop_service_tip", "La fermeture du service fermera automatiquement toutes les connexions établies."), ("android_version_audio_tip", "La version actuelle d'Android ne prend pas en charge la capture audio, veuillez passer à Android 10 ou supérieur."), - ("android_start_service_tip", "Appuyez sur [Démarrer le service] ou sur l'autorisation OUVRIR [Capture d'écran] pour démarrer le service de partage d'écran."), + ("android_start_service_tip", ""), ("Account", "Compte"), ("Overwrite", "Écraser"), ("This file exists, skip or overwrite this file?", "Ce fichier existe, ignorer ou écraser ce fichier ?"), diff --git a/src/lang/hu.rs b/src/lang/hu.rs index ef97ce8cf..e05d5f928 100644 --- a/src/lang/hu.rs +++ b/src/lang/hu.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Megyjegyzés"), ("Connection", "Kapcsolat"), ("Share Screen", "Képernyőmegosztás"), - ("CLOSE", "BEZÁRÁS"), - ("OPEN", "MEGNYITÁS"), ("Chat", "Chat"), ("Total", "Összes"), ("items", "elemek"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "A \"Képernyőrögzítés\" bekapcsolásával automatikus elindul a szolgáltatás, lehetővé téve, hogy más eszközök csatlakozási kérelmet küldhessenek"), ("android_stop_service_tip", "A szolgáltatás leállítása automatikusan szétkapcsol minden létező kapcsolatot."), ("android_version_audio_tip", "A jelenlegi Android verzió nem támogatja a hangrögzítést, frissítsen legalább Android 10-re, vagy egy újabb verzióra."), - ("android_start_service_tip", "Nyomjon a [Szolgáltatás indítása] gombra, vagy adjon [Képernyőrözítési] engedélyt az applikációnak hogy elindítsa a képernyőmegosztó szolgáltatást."), + ("android_start_service_tip", ""), ("Account", "Fiók"), ("Overwrite", "Felülírás"), ("This file exists, skip or overwrite this file?", "Ez a fájl már létezik, kihagyja vagy felülírja ezt a fájlt?"), diff --git a/src/lang/id.rs b/src/lang/id.rs index a9a70d473..ca988aac3 100644 --- a/src/lang/id.rs +++ b/src/lang/id.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Catatan"), ("Connection", "Koneksi"), ("Share Screen", "Bagikan Layar"), - ("CLOSE", "TUTUP"), - ("OPEN", "BUKA"), ("Chat", "Obrolan"), ("Total", "Total"), ("items", "item"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "Mengaktifkan \"Tangkapan Layar\" akan memulai layanan secara otomatis, memungkinkan perangkat lain untuk meminta sambungan ke perangkat Anda."), ("android_stop_service_tip", "Menutup layanan akan secara otomatis menutup semua koneksi yang dibuat."), ("android_version_audio_tip", "Versi Android saat ini tidak mendukung pengambilan audio, harap tingkatkan ke Android 10 atau lebih tinggi."), - ("android_start_service_tip", "Ketuk izin [Mulai Layanan] atau BUKA [Tangkapan Layar] untuk memulai layanan berbagi layar."), + ("android_start_service_tip", ""), ("Account", "Akun"), ("Overwrite", "Timpa"), ("This file exists, skip or overwrite this file?", "File ini sudah ada, lewati atau timpa file ini?"), diff --git a/src/lang/it.rs b/src/lang/it.rs index 136a51945..c7654c480 100644 --- a/src/lang/it.rs +++ b/src/lang/it.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Nota"), ("Connection", "Connessione"), ("Share Screen", "Condividi schermo"), - ("CLOSE", "CHIUDERE"), - ("OPEN", "APRIRE"), ("Chat", "Chat"), ("Total", "Totale"), ("items", "Oggetti"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "L'attivazione di Cattura schermo avvierà automaticamente il servizio, consentendo ad altri dispositivi di richiedere una connessione da questo dispositivo."), ("android_stop_service_tip", "La chiusura del servizio chiuderà automaticamente tutte le connessioni stabilite."), ("android_version_audio_tip", "L'attuale versione di Android non supporta l'acquisizione audio, esegui l'upgrade ad Android 10 o versioni successive."), - ("android_start_service_tip", "Toccare [Avvia servizio] o APRI l'autorizzazione [Cattura schermo] per avviare il servizio di condivisione dello schermo."), + ("android_start_service_tip", ""), ("Account", "Account"), ("Overwrite", "Sovrascrivi"), ("This file exists, skip or overwrite this file?", "Questo file esiste, saltare o sovrascrivere questo file?"), diff --git a/src/lang/ja.rs b/src/lang/ja.rs index b30d1942c..26a47cd2d 100644 --- a/src/lang/ja.rs +++ b/src/lang/ja.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "ノート"), ("Connection", "接続"), ("Share Screen", "画面を共有"), - ("CLOSE", "閉じる"), - ("OPEN", "開く"), ("Chat", "チャット"), ("Total", "計"), ("items", "個のアイテム"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "「画面キャプチャ」をオンにするとサービスが自動的に開始され、他の端末がこの端末への接続をリクエストできるようになります。"), ("android_stop_service_tip", "サービスを停止すると、現在確立されている接続が全て自動的に閉じられます。"), ("android_version_audio_tip", "現在のAndroidバージョンでは音声キャプチャはサポートされていません。Android 10以降にアップグレードしてください。"), - ("android_start_service_tip", "「サービスを開始」をタップするか「画面キャプチャ」を開くと、画面共有サービスが開始されます。"), + ("android_start_service_tip", ""), ("Account", ""), ("Overwrite", "上書き"), ("This file exists, skip or overwrite this file?", "このファイルは存在しています。スキップするか上書きしますか?"), diff --git a/src/lang/ko.rs b/src/lang/ko.rs index 8572fa0c1..f79154cd7 100644 --- a/src/lang/ko.rs +++ b/src/lang/ko.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "노트"), ("Connection", "연결"), ("Share Screen", "화면 공유"), - ("CLOSE", "종료"), - ("OPEN", "열기"), ("Chat", "채팅"), ("Total", "총합"), ("items", "개체"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "\"화면 캡처\"를 켜면 서비스가 자동으로 시작되어 다른 장치에서 사용자 장치에 대한 연결을 요청할 수 있습니다."), ("android_stop_service_tip", "서비스를 종료하면 모든 연결이 자동으로 닫힙니다."), ("android_version_audio_tip", "현재 Android 버전은 오디오 캡처를 지원하지 않습니다. Android 10 이상으로 업그레이드하십시오."), - ("android_start_service_tip", "[서비스 시작] 또는 [화면 캡처] 권한을 눌러 화면 공유 서비스를 시작합니다."), + ("android_start_service_tip", ""), ("Account", ""), ("Overwrite", "덮어쓰기"), ("This file exists, skip or overwrite this file?", "해당 파일이 이미 존재합니다, 넘어가거나 덮어쓰시겠습니까?"), diff --git a/src/lang/kz.rs b/src/lang/kz.rs index 78cadf653..11d673f00 100644 --- a/src/lang/kz.rs +++ b/src/lang/kz.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Нота"), ("Connection", "Қосылым"), ("Share Screen", "Екіренді Бөлісу"), - ("CLOSE", "ЖАБУ"), - ("OPEN", "АШУ"), ("Chat", "Чат"), ("Total", "Барлығы"), ("items", "зат"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "\"Екіренді Тұсіру\" қосылған кезде сербес аутыматты іске қосылып, басқа құрылғыларға сіздің құрылғыға қосылым сұраныстауға мүмкіндің береді."), ("android_stop_service_tip", "Сербесті жабу аутыматты түрде барлық орнатылған қосылымдарды жабады."), ("android_version_audio_tip", "Ағымдағы Android нұсқасы аудионы түсіруді қолдамайды, Android 10 не жоғарғысына жаңғыртуды өтінеміз."), - ("android_start_service_tip", "[Сербесті Іске қосу]'ды түртіңіз не [Екіренді Түсіру] рұқсатын АШУ арқылы екіренді бөлісу сербесін іске қосыңыз."), + ("android_start_service_tip", ""), ("Account", "Есепкі"), ("Overwrite", "Үстінен қайта жазу"), ("This file exists, skip or overwrite this file?", "Бұл файыл бар, өткізіп жіберу әлде үстінен қайта жазу керек пе?"), diff --git a/src/lang/nl.rs b/src/lang/nl.rs index 413ad055a..b245cbc50 100644 --- a/src/lang/nl.rs +++ b/src/lang/nl.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Opmerking"), ("Connection", "Verbinding"), ("Share Screen", "Scherm Delen"), - ("CLOSE", "SLUITEN"), - ("OPEN", "OPEN"), ("Chat", "Chat"), ("Total", "Totaal"), ("items", "items"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "Als u \"Schermopname\" inschakelt, wordt de service automatisch gestart, zodat andere apparaten een verbinding met uw apparaat kunnen aanvragen."), ("android_stop_service_tip", "Het sluiten van de service zal automatisch alle gemaakte verbindingen sluiten."), ("android_version_audio_tip", "De huidige versie van Android ondersteunt geen audio-opname, upgrade naar Android 10 of hoger."), - ("android_start_service_tip", "Druk op [Start Service] of op de permissie OPEN [Screenshot] om de service voor het overnemen van het scherm te starten."), + ("android_start_service_tip", ""), ("Account", "Account"), ("Overwrite", "Overschrijven"), ("This file exists, skip or overwrite this file?", "Dit bestand bestaat reeds, overslaan of overschrijven?"), diff --git a/src/lang/pl.rs b/src/lang/pl.rs index 4bd7459d9..f4f934b97 100644 --- a/src/lang/pl.rs +++ b/src/lang/pl.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Notatka"), ("Connection", "Połączenie"), ("Share Screen", "Udostępnij ekran"), - ("CLOSE", "Zamknij"), - ("OPEN", "Otwórz"), ("Chat", "Czat"), ("Total", "Łącznie"), ("items", "elementów"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "Włączenie opcji „Przechwytywanie ekranu” spowoduje automatyczne uruchomienie usługi, umożliwiając innym urządzeniom żądanie połączenia z Twoim urządzeniem."), ("android_stop_service_tip", "Zamknięcie usługi spowoduje automatyczne zamknięcie wszystkich nawiązanych połączeń."), ("android_version_audio_tip", "Bieżąca wersja systemu Android nie obsługuje przechwytywania dźwięku, zaktualizuj system do wersji Android 10 lub nowszej."), - ("android_start_service_tip", "Kliknij [Uruchom usługę] lub Otwórz [Przechwytywanie ekranu], aby uruchomić usługę udostępniania ekranu."), + ("android_start_service_tip", ""), ("Account", "Konto"), ("Overwrite", "Nadpisz"), ("This file exists, skip or overwrite this file?", "Ten plik istnieje, pominąć czy nadpisać ten plik?"), diff --git a/src/lang/pt_PT.rs b/src/lang/pt_PT.rs index da90d34aa..77181a5dc 100644 --- a/src/lang/pt_PT.rs +++ b/src/lang/pt_PT.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Nota"), ("Connection", "Ligação"), ("Share Screen", "Partilhar ecrã"), - ("CLOSE", "FECHAR"), - ("OPEN", "ABRIR"), ("Chat", "Conversar"), ("Total", "Total"), ("items", "itens"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "Activar a Captura de Ecran irá automaticamente inicializar o serviço, permitindo que outros dispositivos solicitem uma ligação deste dispositivo."), ("android_stop_service_tip", "Fechar o serviço irá automaticamente fechar todas as ligações estabelecidas."), ("android_version_audio_tip", "A versão atual do Android não suporta captura de áudio, por favor actualize para o Android 10 ou maior."), - ("android_start_service_tip", "Toque [Iniciar Serviço] ou abra a permissão [Captura de Ecran] para iniciar o serviço de partilha de ecran."), + ("android_start_service_tip", ""), ("Account", ""), ("Overwrite", "Substituir"), ("This file exists, skip or overwrite this file?", "Este ficheiro já existe, ignorar ou substituir este ficheiro?"), diff --git a/src/lang/ptbr.rs b/src/lang/ptbr.rs index b73b5c743..8006c0700 100644 --- a/src/lang/ptbr.rs +++ b/src/lang/ptbr.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Nota"), ("Connection", "Conexão"), ("Share Screen", "Compartilhar Tela"), - ("CLOSE", "FECHAR"), - ("OPEN", "ABRIR"), ("Chat", "Chat"), ("Total", "Total"), ("items", "itens"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "Habilitar a Captura de Tela irá automaticamente inicalizar o serviço, permitindo que outros dispositivos solicitem uma conexão deste dispositivo."), ("android_stop_service_tip", "Fechar o serviço irá automaticamente fechar todas as conexões estabelecidas."), ("android_version_audio_tip", "A versão atual do Android não suporta captura de áudio, por favor atualize para o Android 10 ou superior."), - ("android_start_service_tip", "Toque [Iniciar Serviço] ou abra a permissão [Captura de Tela] para iniciar o serviço de compartilhamento de tela."), + ("android_start_service_tip", ""), ("Account", "Conta"), ("Overwrite", "Substituir"), ("This file exists, skip or overwrite this file?", "Este arquivo existe, pular ou substituir este arquivo?"), diff --git a/src/lang/ro.rs b/src/lang/ro.rs index f668e2e87..ccbb1c90b 100644 --- a/src/lang/ro.rs +++ b/src/lang/ro.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Reține"), ("Connection", "Conexiune"), ("Share Screen", "Partajează ecran"), - ("CLOSE", "ÎNCHIDE"), - ("OPEN", "DESCHIDE"), ("Chat", "Discută"), ("Total", "Total"), ("items", "elemente"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "Activarea setării Captură ecran va porni automat serviciul, permițând altor dispozitive să solicite conectarea la dispozitivul tău."), ("android_stop_service_tip", "Închiderea serviciului va închide automat toate conexiunile stabilite."), ("android_version_audio_tip", "Versiunea actuală de Android nu suportă captura audio. Fă upgrade la Android 10 sau la o versiune superioară."), - ("android_start_service_tip", "Apasă [Pornește serviciu] sau DESCHIDE [Captură ecran] pentru a porni serviciul de partajare a ecranului."), + ("android_start_service_tip", ""), ("Account", "Cont"), ("Overwrite", "Suprascrie"), ("This file exists, skip or overwrite this file?", "Fișier deja existent. Omite sau suprascrie?"), diff --git a/src/lang/ru.rs b/src/lang/ru.rs index c075d6442..a336f74ea 100644 --- a/src/lang/ru.rs +++ b/src/lang/ru.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Примечание"), ("Connection", "Соединение"), ("Share Screen", "Демонстрация экрана"), - ("CLOSE", "ЗАКРЫТЬ"), - ("OPEN", "ОТКРЫТЬ"), ("Chat", "Чат"), ("Total", "Всего"), ("items", "элементы"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "Включение захвата экрана автоматически запускает службу, позволяя другим устройствам запрашивать соединение с этим устройством."), ("android_stop_service_tip", "Закрытие службы автоматически закроет все установленные соединения."), ("android_version_audio_tip", "Текущая версия Android не поддерживает захват звука, обновите её до Android 10 или выше."), - ("android_start_service_tip", "Нажмите \"Запуск промежуточного сервера\" или ОТКРЫТЬ разрешение \"Захват экрана\", чтобы запустить службу демонстрации экрана."), + ("android_start_service_tip", ""), ("Account", "Аккаунт"), ("Overwrite", "Перезаписать"), ("This file exists, skip or overwrite this file?", "Этот файл существует, пропустить или перезаписать файл?"), diff --git a/src/lang/sk.rs b/src/lang/sk.rs index f5aaff84c..90ac16fd4 100644 --- a/src/lang/sk.rs +++ b/src/lang/sk.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Poznámka"), ("Connection", "Pripojenie"), ("Share Screen", "Zdielať obrazovku"), - ("CLOSE", "ZATVORIŤ"), - ("OPEN", "OTVORIŤ"), ("Chat", "Chat"), ("Total", "Celkom"), ("items", "položiek"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "Zapnutie \"Zachytávanie obsahu obrazovky\" automaticky spistí službu, čo iným zariadeniam umožní požiadať o pripojenie k tomuto zariadeniu."), ("android_stop_service_tip", "Zastavenie služby automaticky ukončí všetky naviazané spojenia."), ("android_version_audio_tip", "Vaša verzia Androidu neumožňuje zaznamenávanie zvuku. Prejdite na verziu Android 10 alebo vyššiu."), - ("android_start_service_tip", "Klepnite na [Spustiť službu] alebo OTVORTE oprávnenie [Zachytávanie obsahu obrazovky], aby sa aktivovala služba zdieľania obrazovky."), + ("android_start_service_tip", ""), ("Account", ""), ("Overwrite", "Prepísať"), ("This file exists, skip or overwrite this file?", "Preskočiť alebo prepísať existujúci súbor?"), diff --git a/src/lang/sl.rs b/src/lang/sl.rs index 7e6bf57e3..b91f6e374 100755 --- a/src/lang/sl.rs +++ b/src/lang/sl.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Opomba"), ("Connection", "Povezava"), ("Share Screen", "Deli zaslon"), - ("CLOSE", "ZAPRI"), - ("OPEN", "ODPRI"), ("Chat", "Pogovor"), ("Total", "Skupaj"), ("items", "elementi"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "Z vklopom zajema zaslona se bo samodejno zagnala storitev, ki omogoča da oddaljene naprave pošljejo zahtevo za povezavo na vašo napravo."), ("android_stop_service_tip", "Z zaustavitvijo storitve bodo samodejno prekinjene vse oddaljene povezave."), ("android_version_audio_tip", "Trenutna različica Androida ne omogoča zajema zvoka. Za zajem zvoka nadgradite na Android 10 ali novejši."), - ("android_start_service_tip", "Tapnite »Zaženi storitev« ali »ODPRI« pri dovoljenju za zajem zaslona da zaženete storitev deljenja zaslona."), + ("android_start_service_tip", ""), ("Account", "Račun"), ("Overwrite", "Prepiši"), ("This file exists, skip or overwrite this file?", "Datoteka obstaja, izpusti ali prepiši?"), diff --git a/src/lang/sq.rs b/src/lang/sq.rs index 4e263670c..b26ac909a 100644 --- a/src/lang/sq.rs +++ b/src/lang/sq.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Shënime"), ("Connection", "Lidhja"), ("Share Screen", "Ndaj ekranin"), - ("CLOSE", "Mbyll"), - ("OPEN", "Hap"), ("Chat", "Biseda"), ("Total", "Total"), ("items", "artikuj"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "Aktivizimi i \"Regjistrimi i ekranit\" do të nisë automatikisht shërbimin, duke lejuar pajisjet e tjera të kërkojnë një lidhje me pajisjen tuaj."), ("android_stop_service_tip", "Mbyllja e shërbimit do të mbyllë automatikisht të gjitha lidhjet e vendosura."), ("android_version_audio_tip", "Versioni aktual i Android nuk mbështet regjistrimin e audios, ju lutemi përmirësoni në Android 10 ose më të lartë."), - ("android_start_service_tip", "Shtyp [Fillo Shërbimin] ose HAP lejen e [Kapjen e Ekranit] për të nisur shërbimin e ndarjes së ekranit."), + ("android_start_service_tip", ""), ("Account", "Llogaria"), ("Overwrite", "Përshkruaj"), ("This file exists, skip or overwrite this file?", "Ky skedar ekziston , tejkalo ose përshkruaj këtë skedarë"), diff --git a/src/lang/sr.rs b/src/lang/sr.rs index 1ce22c5c3..7d6178c43 100644 --- a/src/lang/sr.rs +++ b/src/lang/sr.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Primedba"), ("Connection", "Konekcija"), ("Share Screen", "Podeli ekran"), - ("CLOSE", "ZATVORI"), - ("OPEN", "OTVORI"), ("Chat", "Dopisivanje"), ("Total", "Ukupno"), ("items", "stavki"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "Uključenje \"Screen Capture\" automatski će pokrenuti servis, dozvoljavajući drugim uređajima da zahtevaju spajanje na vaš uređaj."), ("android_stop_service_tip", "Zatvaranje servisa automatski će zatvoriti sve uspostavljene konekcije."), ("android_version_audio_tip", "Tekuća Android verzija ne podržava audio snimanje, molimo nadogradite na Android 10 ili veći."), - ("android_start_service_tip", "Kliknite [Start Service] ili OPEN [Screen Capture] dozvolu da pokrenete servis deljenja ekrana."), + ("android_start_service_tip", ""), ("Account", "Nalog"), ("Overwrite", "Prepiši preko"), ("This file exists, skip or overwrite this file?", "Ova datoteka postoji, preskoči ili prepiši preko?"), diff --git a/src/lang/sv.rs b/src/lang/sv.rs index 58fe1c318..2b926cfc7 100644 --- a/src/lang/sv.rs +++ b/src/lang/sv.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Notering"), ("Connection", "Anslutning"), ("Share Screen", "Dela skärm"), - ("CLOSE", "STÄNG"), - ("OPEN", "ÖPPNA"), ("Chat", "Chatt"), ("Total", "Totalt"), ("items", "föremål"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "Sätter du på \"skärminspelning\" kommer tjänsten automatiskt att starta. Detta tillåter andra enheter att kontrollera din enhet."), ("android_stop_service_tip", "Genom att stänga av tjänsten kommer alla enheter att kopplas ifrån."), ("android_version_audio_tip", "Din version av Android stödjer inte ljudinspelning, Android 10 eller nyare krävs"), - ("android_start_service_tip", "Tryck på [Starta tjänsten] eller tillåt [skärminspelning] för att starta skärmdelning."), + ("android_start_service_tip", ""), ("Account", "Konto"), ("Overwrite", "Skriv över"), ("This file exists, skip or overwrite this file?", "Filen finns redan, hoppa över eller skriv över filen?"), diff --git a/src/lang/template.rs b/src/lang/template.rs index 8e1e85bde..fb62a9540 100644 --- a/src/lang/template.rs +++ b/src/lang/template.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", ""), ("Connection", ""), ("Share Screen", ""), - ("CLOSE", ""), - ("OPEN", ""), ("Chat", ""), ("Total", ""), ("items", ""), diff --git a/src/lang/th.rs b/src/lang/th.rs index 770ccef1d..ba501da16 100644 --- a/src/lang/th.rs +++ b/src/lang/th.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "บันทึกข้อความ"), ("Connection", "การเชื่อมต่อ"), ("Share Screen", "แชร์หน้าจอ"), - ("CLOSE", "ปิด"), - ("OPEN", "เปิด"), ("Chat", "แชท"), ("Total", "รวม"), ("items", "รายการ"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "การเปิดการใช้งาน \"การบันทึกหน้าจอ\" จะเป็นการเริ่มต้นการทำงานของเซอร์วิสโดยอัตโนมัติ ที่จะอนุญาตให้อุปกรณ์อื่นๆ ส่งคำขอเข้าถึงมายังอุปกรณ์ของคุณได้"), ("android_stop_service_tip", "การปิดการใช้งานเซอร์วิสจะปิดการเชื่อมต่อทั้งหมดโดยอัตโนมัติ"), ("android_version_audio_tip", "เวอร์ชั่นแอนดรอยด์ปัจจุบันของคุณไม่รองรับการบันทึกข้อมูลเสียง กรุณาอัปเกรดเป็นแอนดรอยด์เวอร์ชั่น 10 หรือสูงกว่า"), - ("android_start_service_tip", "แตะ [เริ่มต้นใช้งานเซอร์วิส] หรือเปิดสิทธิ์ [การบันทึกหน้าจอ] เพื่อเริ่มเซอร์วิสการแชร์หน้าจอ"), + ("android_start_service_tip", ""), ("Account", "บัญชี"), ("Overwrite", "เขียนทับ"), ("This file exists, skip or overwrite this file?", "พบไฟล์ที่มีอยู่แล้ว ต้องการเขียนทับหรือไม่?"), diff --git a/src/lang/tr.rs b/src/lang/tr.rs index 3fd1de33c..641e9cd0b 100644 --- a/src/lang/tr.rs +++ b/src/lang/tr.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Not"), ("Connection", "Bağlantı"), ("Share Screen", "Ekranı Paylaş"), - ("CLOSE", "KAPAT"), - ("OPEN", "AÇ"), ("Chat", "Mesajlaş"), ("Total", "Toplam"), ("items", "öğeler"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "Ekran Yakalamanın etkinleştirilmesi, hizmeti otomatik olarak başlatacak ve diğer cihazların bu cihazdan bağlantı talep etmesine izin verecektir."), ("android_stop_service_tip", "Hizmetin kapatılması, kurulan tüm bağlantıları otomatik olarak kapatacaktır."), ("android_version_audio_tip", "Mevcut Android sürümü ses yakalamayı desteklemiyor, lütfen Android 10 veya sonraki bir sürüme yükseltin."), - ("android_start_service_tip", "Ekran paylaşım hizmetini başlatmak için [Hizmeti Başlat] veya AÇ [Ekran Yakalama] iznine dokunun."), + ("android_start_service_tip", ""), ("Account", "Hesap"), ("Overwrite", "üzerine yaz"), ("This file exists, skip or overwrite this file?", "Bu dosya var, bu dosya atlansın veya üzerine yazılsın mı?"), diff --git a/src/lang/tw.rs b/src/lang/tw.rs index b6abf9067..c7089620e 100644 --- a/src/lang/tw.rs +++ b/src/lang/tw.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "備註"), ("Connection", "連接"), ("Share Screen", "共享畫面"), - ("CLOSE", "關閉"), - ("OPEN", "開啟"), ("Chat", "聊天消息"), ("Total", "總計"), ("items", "個項目"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "開啟畫面錄製權限將自動開啟服務,允許其他裝置向此裝置請求建立連接。"), ("android_stop_service_tip", "關閉服務將自動關閉所有已建立的連接。"), ("android_version_audio_tip", "目前的 Android 版本不支持音訊錄製,請升級至 Android 10 或以上版本。"), - ("android_start_service_tip", "點擊 「啟動服務」 或啟用 「畫面錄製」 權限以開啟手機畫面共享服務。"), + ("android_start_service_tip", ""), ("Account", "賬戶"), ("Overwrite", "覆寫"), ("This file exists, skip or overwrite this file?", "此檔案/資料夾已存在,要跳過或是覆寫此檔案嗎?"), diff --git a/src/lang/ua.rs b/src/lang/ua.rs index d838265fa..f085a0f26 100644 --- a/src/lang/ua.rs +++ b/src/lang/ua.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Примітка"), ("Connection", "З'єднання"), ("Share Screen", "Поділитися екраном"), - ("CLOSE", "ЗАКРИТИ"), - ("OPEN", "ВІДКРИТИ"), ("Chat", "Чат"), ("Total", "Всього"), ("items", "елементи"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "Увімкнення захоплення екрана автоматично запускає службу, дозволяючи іншим пристроям запитувати з'єднання з цього пристрою."), ("android_stop_service_tip", "Закриття служби автоматично закриє всі встановлені з'єднання."), ("android_version_audio_tip", "Поточна версія Android не підтримує захоплення звуку, оновіть її до Android 10 або вище."), - ("android_start_service_tip", "Натисніть [Запуск проміжного сервера] або ВІДКРИТИ роздільну здатність [Захоплення екрана], щоб запустити службу демонстрації екрана."), + ("android_start_service_tip", ""), ("Account", "Акаунт"), ("Overwrite", "Перезаписати"), ("This file exists, skip or overwrite this file?", "Цей файл існує, пропустити або перезаписати файл?"), diff --git a/src/lang/vn.rs b/src/lang/vn.rs index 27b24878d..fe3aaa57b 100644 --- a/src/lang/vn.rs +++ b/src/lang/vn.rs @@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Note", "Ghi nhớ"), ("Connection", "Kết nối"), ("Share Screen", "Chia sẻ màn hình"), - ("CLOSE", "ĐÓNG"), - ("OPEN", "MỞ"), ("Chat", "Chat"), ("Total", "Tổng"), ("items", "items"), @@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("android_service_will_start_tip", "Bật \"Ghi màn hình\" sẽ tự động khởi động dịch vụ, cho phép các thiết bị khác yêu cầu kết nối với thiết bị của bạn."), ("android_stop_service_tip", "Đóng dịch vụ sẽ tự động đóng tất cả các kết nối đã thiết lập."), ("android_version_audio_tip", "Phiên bản Android hiện tại không hỗ trợ ghi âm, vui lòng nâng cấp lên Android 10 trở lên."), - ("android_start_service_tip", "Nhấn vào [Bắt đầu dịch vụ] hoặc MỞ quyền [Ghi màn hình] để bắt đầu dịch vụ chia sẻ màn hình."), + ("android_start_service_tip", ""), ("Account", ""), ("Overwrite", "Ghi đè"), ("This file exists, skip or overwrite this file?", "Tệp tin này đã tồn tại, bạn có muốn bỏ qua hay ghi đè lên tệp tin này?"), From 1c634aa7d724fdd804f09b25492f20766c9b573e Mon Sep 17 00:00:00 2001 From: grummbeer Date: Fri, 10 Mar 2023 10:07:24 +0100 Subject: [PATCH 18/22] Mobile. Share Screen. Add "Your Device" to translations --- src/lang/ca.rs | 1 + src/lang/cn.rs | 1 + src/lang/cs.rs | 1 + src/lang/da.rs | 1 + src/lang/de.rs | 1 + src/lang/el.rs | 1 + src/lang/eo.rs | 1 + src/lang/es.rs | 1 + src/lang/fa.rs | 1 + src/lang/fr.rs | 1 + src/lang/hu.rs | 1 + src/lang/id.rs | 1 + src/lang/it.rs | 1 + src/lang/ja.rs | 1 + src/lang/ko.rs | 1 + src/lang/kz.rs | 1 + src/lang/nl.rs | 1 + src/lang/pl.rs | 1 + src/lang/pt_PT.rs | 1 + src/lang/ptbr.rs | 1 + src/lang/ro.rs | 1 + src/lang/ru.rs | 1 + src/lang/sk.rs | 1 + src/lang/sl.rs | 1 + src/lang/sq.rs | 1 + src/lang/sr.rs | 1 + src/lang/sv.rs | 1 + src/lang/template.rs | 1 + src/lang/th.rs | 1 + src/lang/tr.rs | 1 + src/lang/tw.rs | 1 + src/lang/ua.rs | 1 + src/lang/vn.rs | 1 + 33 files changed, 33 insertions(+) diff --git a/src/lang/ca.rs b/src/lang/ca.rs index 9e8770c2b..297bfdc35 100644 --- a/src/lang/ca.rs +++ b/src/lang/ca.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/cn.rs b/src/lang/cn.rs index c5cf4cd03..b92a33eea 100644 --- a/src/lang/cn.rs +++ b/src/lang/cn.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/cs.rs b/src/lang/cs.rs index 620cc1373..49c286d9c 100644 --- a/src/lang/cs.rs +++ b/src/lang/cs.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/da.rs b/src/lang/da.rs index dbb9e3060..401601e2b 100644 --- a/src/lang/da.rs +++ b/src/lang/da.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/de.rs b/src/lang/de.rs index 2127ecaac..6c2c06e45 100644 --- a/src/lang/de.rs +++ b/src/lang/de.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", "Verkleinern"), ("Minimize", "Minimieren"), ("Maximize", "Maximieren"), + ("Your Device", "Ihr Gerät"), ].iter().cloned().collect(); } diff --git a/src/lang/el.rs b/src/lang/el.rs index dae1dedf4..c569c8a6e 100644 --- a/src/lang/el.rs +++ b/src/lang/el.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/eo.rs b/src/lang/eo.rs index 3ff7b608a..fb9ab4dd4 100644 --- a/src/lang/eo.rs +++ b/src/lang/eo.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/es.rs b/src/lang/es.rs index ba9e8a3d2..c05f32ff1 100644 --- a/src/lang/es.rs +++ b/src/lang/es.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/fa.rs b/src/lang/fa.rs index 9194d2b27..63c40c851 100644 --- a/src/lang/fa.rs +++ b/src/lang/fa.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/fr.rs b/src/lang/fr.rs index 2933fcd79..ddb8ebb57 100644 --- a/src/lang/fr.rs +++ b/src/lang/fr.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/hu.rs b/src/lang/hu.rs index e05d5f928..ba8e6e86c 100644 --- a/src/lang/hu.rs +++ b/src/lang/hu.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/id.rs b/src/lang/id.rs index ca988aac3..8accb7519 100644 --- a/src/lang/id.rs +++ b/src/lang/id.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/it.rs b/src/lang/it.rs index c7654c480..71344f313 100644 --- a/src/lang/it.rs +++ b/src/lang/it.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/ja.rs b/src/lang/ja.rs index 26a47cd2d..214f354eb 100644 --- a/src/lang/ja.rs +++ b/src/lang/ja.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/ko.rs b/src/lang/ko.rs index f79154cd7..8641abe36 100644 --- a/src/lang/ko.rs +++ b/src/lang/ko.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/kz.rs b/src/lang/kz.rs index 11d673f00..42340ba68 100644 --- a/src/lang/kz.rs +++ b/src/lang/kz.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/nl.rs b/src/lang/nl.rs index b245cbc50..a0d035be5 100644 --- a/src/lang/nl.rs +++ b/src/lang/nl.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/pl.rs b/src/lang/pl.rs index f4f934b97..baf439a2c 100644 --- a/src/lang/pl.rs +++ b/src/lang/pl.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/pt_PT.rs b/src/lang/pt_PT.rs index 77181a5dc..805f69488 100644 --- a/src/lang/pt_PT.rs +++ b/src/lang/pt_PT.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/ptbr.rs b/src/lang/ptbr.rs index 8006c0700..6ac256634 100644 --- a/src/lang/ptbr.rs +++ b/src/lang/ptbr.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/ro.rs b/src/lang/ro.rs index ccbb1c90b..f1734f0ea 100644 --- a/src/lang/ro.rs +++ b/src/lang/ro.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/ru.rs b/src/lang/ru.rs index a336f74ea..d37bb367d 100644 --- a/src/lang/ru.rs +++ b/src/lang/ru.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/sk.rs b/src/lang/sk.rs index 90ac16fd4..9328f79de 100644 --- a/src/lang/sk.rs +++ b/src/lang/sk.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/sl.rs b/src/lang/sl.rs index b91f6e374..73b3579cf 100755 --- a/src/lang/sl.rs +++ b/src/lang/sl.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/sq.rs b/src/lang/sq.rs index b26ac909a..da461da3b 100644 --- a/src/lang/sq.rs +++ b/src/lang/sq.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/sr.rs b/src/lang/sr.rs index 7d6178c43..b1aaafcf1 100644 --- a/src/lang/sr.rs +++ b/src/lang/sr.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/sv.rs b/src/lang/sv.rs index 2b926cfc7..b49b73cb6 100644 --- a/src/lang/sv.rs +++ b/src/lang/sv.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/template.rs b/src/lang/template.rs index fb62a9540..b785b0d60 100644 --- a/src/lang/template.rs +++ b/src/lang/template.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/th.rs b/src/lang/th.rs index ba501da16..47eba46de 100644 --- a/src/lang/th.rs +++ b/src/lang/th.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/tr.rs b/src/lang/tr.rs index 641e9cd0b..027d5de05 100644 --- a/src/lang/tr.rs +++ b/src/lang/tr.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/tw.rs b/src/lang/tw.rs index c7089620e..d342db858 100644 --- a/src/lang/tw.rs +++ b/src/lang/tw.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/ua.rs b/src/lang/ua.rs index f085a0f26..368d5d3d2 100644 --- a/src/lang/ua.rs +++ b/src/lang/ua.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } diff --git a/src/lang/vn.rs b/src/lang/vn.rs index fe3aaa57b..e4df09d77 100644 --- a/src/lang/vn.rs +++ b/src/lang/vn.rs @@ -467,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Restore", ""), ("Minimize", ""), ("Maximize", ""), + ("Your Device", ""), ].iter().cloned().collect(); } From 4d95ada3009a97920ad47a1d49c1afe13482ba51 Mon Sep 17 00:00:00 2001 From: grummbeer Date: Thu, 9 Mar 2023 16:40:30 +0100 Subject: [PATCH 19/22] Mobile. Share Screen. Remove readonly textinput for ID/password --- flutter/lib/mobile/pages/server_page.dart | 105 +++++++++++++++------- 1 file changed, 72 insertions(+), 33 deletions(-) diff --git a/flutter/lib/mobile/pages/server_page.dart b/flutter/lib/mobile/pages/server_page.dart index 4a93bbec2..ee47568af 100644 --- a/flutter/lib/mobile/pages/server_page.dart +++ b/flutter/lib/mobile/pages/server_page.dart @@ -1,6 +1,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:flutter_hbb/mobile/widgets/dialog.dart'; import 'package:get/get.dart'; import 'package:provider/provider.dart'; @@ -205,7 +206,7 @@ class ServerInfo extends StatelessWidget { Widget ConnectionStateNotification() { const Color colorPositive = Colors.greenAccent; const Color colorNegative = Colors.redAccent; - const double paddingRight = 15; + const double paddingRight = 12; if (serverModel.connectStatus == -1) { return Row(children: [ @@ -229,40 +230,78 @@ class ServerInfo extends StatelessWidget { } return PaddingCard( + title: translate('Your Device'), child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - TextFormField( - readOnly: true, - style: const TextStyle(fontSize: 25.0, fontWeight: FontWeight.bold), - controller: model.serverId, - decoration: InputDecoration( - icon: const Icon(Icons.perm_identity), - labelText: translate("ID"), - labelStyle: const TextStyle(fontWeight: FontWeight.bold), - ), - onSaved: (String? value) {}, - ), - TextFormField( - readOnly: true, - style: const TextStyle(fontSize: 25.0, fontWeight: FontWeight.bold), - controller: isPermanent ? emptyController : model.serverPasswd, - decoration: InputDecoration( - icon: const Icon(Icons.lock), - labelText: translate("Password"), - labelStyle: const TextStyle( - fontWeight: FontWeight.bold, + // mainAxisSize: MainAxisSize.min, + + // ID + children: [ + Row(children: [ + const Icon(Icons.perm_identity, color: Colors.grey, size: 24) + .marginOnly(right: 12), + Text( + translate('ID'), + style: const TextStyle( + fontSize: 16.0, + fontWeight: FontWeight.bold, + color: Colors.grey), + ) + ]), + Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ + Text( + model.serverId.value.text, + style: const TextStyle( + fontSize: 25.0, fontWeight: FontWeight.bold), ), - suffix: isPermanent - ? null - : IconButton( - icon: const Icon(Icons.refresh), - onPressed: () => bind.mainUpdateTemporaryPassword())), - onSaved: (String? value) {}, - ), - ConnectionStateNotification().marginOnly(top: 20) - ], - )); + IconButton( + visualDensity: VisualDensity.compact, + icon: Icon(Icons.copy_outlined), + onPressed: () { + Clipboard.setData( + ClipboardData(text: model.serverId.value.text.trim())); + showToast(translate('ID copied')); + }) + ]).marginOnly(left: 35, bottom: 10), + + // Password + Row(children: [ + const Icon(Icons.lock_outline, color: Colors.grey, size: 24) + .marginOnly(right: 12), + Text( + translate('One-time Password'), + style: const TextStyle( + fontSize: 16.0, + fontWeight: FontWeight.bold, + color: Colors.grey), + ) + ]), + Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ + Text( + isPermanent ? '-' : model.serverPasswd.value.text, + style: const TextStyle( + fontSize: 25.0, fontWeight: FontWeight.bold), + ), + isPermanent + ? SizedBox.shrink() + : Row(children: [ + IconButton( + visualDensity: VisualDensity.compact, + icon: const Icon(Icons.refresh), + onPressed: () => bind.mainUpdateTemporaryPassword()), + IconButton( + visualDensity: VisualDensity.compact, + icon: Icon(Icons.copy_outlined), + onPressed: () { + Clipboard.setData(ClipboardData( + text: model.serverPasswd.value.text.trim())); + showToast(translate('Password copied')); + }) + ]) + ]).marginOnly(left: 35, bottom: 10), + + ConnectionStateNotification() + ], + )); } } From b86f27f8bde69a6c75234c2b0bd03be2acc092bd Mon Sep 17 00:00:00 2001 From: grummbeer Date: Thu, 9 Mar 2023 12:09:45 +0100 Subject: [PATCH 20/22] Mobile. Share Screen. Server page. Make card title follow theme --- flutter/lib/mobile/pages/server_page.dart | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/flutter/lib/mobile/pages/server_page.dart b/flutter/lib/mobile/pages/server_page.dart index ee47568af..a2eb9decf 100644 --- a/flutter/lib/mobile/pages/server_page.dart +++ b/flutter/lib/mobile/pages/server_page.dart @@ -482,11 +482,12 @@ class PaddingCard extends StatelessWidget { child: titleIcon) : const SizedBox.shrink(), Expanded( - child: Text( - title!, - style: const TextStyle( - fontSize: 18, fontWeight: FontWeight.bold), - ), + child: Text(title!, + style: Theme.of(context) + .textTheme + .titleLarge + // @todo once the font weight is defined in theme, remove it here to be equal insted of individual + ?.merge(TextStyle(fontWeight: FontWeight.bold))), ) ], ))); From 2a5d379c6011dbccfe81b081495ed87117cdc89e Mon Sep 17 00:00:00 2001 From: grummbeer Date: Thu, 9 Mar 2023 17:25:29 +0100 Subject: [PATCH 21/22] Mobile. Share Screen. Remove "connection" headline for connection state --- flutter/lib/mobile/pages/server_page.dart | 71 +++++++++++------------ 1 file changed, 34 insertions(+), 37 deletions(-) diff --git a/flutter/lib/mobile/pages/server_page.dart b/flutter/lib/mobile/pages/server_page.dart index a2eb9decf..e092bf1e7 100644 --- a/flutter/lib/mobile/pages/server_page.dart +++ b/flutter/lib/mobile/pages/server_page.dart @@ -202,28 +202,38 @@ class ServerInfo extends StatelessWidget { final isPermanent = model.verificationMethod == kUsePermanentPassword; final serverModel = Provider.of(context); - // @todo Theming - Widget ConnectionStateNotification() { - const Color colorPositive = Colors.greenAccent; - const Color colorNegative = Colors.redAccent; - const double paddingRight = 12; + const Color colorPositive = Colors.green; + const Color colorNegative = Colors.red; + const double iconMarginRight = 15; + const double iconSize = 24; + const TextStyle textStyleHeading = TextStyle( + fontSize: 16.0, fontWeight: FontWeight.bold, color: Colors.grey); + const TextStyle textStyleValue = + TextStyle(fontSize: 25.0, fontWeight: FontWeight.bold); + void copyToClipboard(String value) { + Clipboard.setData(ClipboardData(text: value)); + showToast(translate('Copied')); + } + + Widget ConnectionStateNotification() { if (serverModel.connectStatus == -1) { return Row(children: [ - const Icon(Icons.warning_amber_sharp, color: colorNegative, size: 24) - .marginOnly(right: paddingRight), + const Icon(Icons.warning_amber_sharp, + color: colorNegative, size: iconSize) + .marginOnly(right: iconMarginRight), Expanded(child: Text(translate('not_ready_status'))) ]); } else if (serverModel.connectStatus == 0) { return Row(children: [ SizedBox(width: 20, height: 20, child: CircularProgressIndicator()) - .marginOnly(left: 4, right: paddingRight), + .marginOnly(left: 4, right: iconMarginRight), Expanded(child: Text(translate('connecting_status'))) ]); } else { return Row(children: [ - const Icon(Icons.check, color: colorPositive, size: 24) - .marginOnly(right: paddingRight), + const Icon(Icons.check, color: colorPositive, size: iconSize) + .marginOnly(right: iconMarginRight), Expanded(child: Text(translate('Ready'))) ]); } @@ -233,53 +243,42 @@ class ServerInfo extends StatelessWidget { title: translate('Your Device'), child: Column( // mainAxisSize: MainAxisSize.min, - // ID children: [ Row(children: [ - const Icon(Icons.perm_identity, color: Colors.grey, size: 24) - .marginOnly(right: 12), + const Icon(Icons.perm_identity, + color: Colors.grey, size: iconSize) + .marginOnly(right: iconMarginRight), Text( translate('ID'), - style: const TextStyle( - fontSize: 16.0, - fontWeight: FontWeight.bold, - color: Colors.grey), + style: textStyleHeading, ) ]), Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( model.serverId.value.text, - style: const TextStyle( - fontSize: 25.0, fontWeight: FontWeight.bold), + style: textStyleValue, ), IconButton( visualDensity: VisualDensity.compact, icon: Icon(Icons.copy_outlined), onPressed: () { - Clipboard.setData( - ClipboardData(text: model.serverId.value.text.trim())); - showToast(translate('ID copied')); + copyToClipboard(model.serverId.value.text.trim()); }) - ]).marginOnly(left: 35, bottom: 10), - + ]).marginOnly(left: 39, bottom: 10), // Password Row(children: [ - const Icon(Icons.lock_outline, color: Colors.grey, size: 24) - .marginOnly(right: 12), + const Icon(Icons.lock_outline, color: Colors.grey, size: iconSize) + .marginOnly(right: iconMarginRight), Text( translate('One-time Password'), - style: const TextStyle( - fontSize: 16.0, - fontWeight: FontWeight.bold, - color: Colors.grey), + style: textStyleHeading, ) ]), Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( isPermanent ? '-' : model.serverPasswd.value.text, - style: const TextStyle( - fontSize: 25.0, fontWeight: FontWeight.bold), + style: textStyleValue, ), isPermanent ? SizedBox.shrink() @@ -292,13 +291,11 @@ class ServerInfo extends StatelessWidget { visualDensity: VisualDensity.compact, icon: Icon(Icons.copy_outlined), onPressed: () { - Clipboard.setData(ClipboardData( - text: model.serverPasswd.value.text.trim())); - showToast(translate('Password copied')); + copyToClipboard( + model.serverPasswd.value.text.trim()); }) ]) - ]).marginOnly(left: 35, bottom: 10), - + ]).marginOnly(left: 40, bottom: 15), ConnectionStateNotification() ], )); From 7db1440191cb4dfff26ab7c58990bf9ac4c18dbc Mon Sep 17 00:00:00 2001 From: grummbeer Date: Thu, 9 Mar 2023 18:31:34 +0100 Subject: [PATCH 22/22] Mobile. Share Screen. Clean up --- flutter/lib/mobile/pages/server_page.dart | 137 ++++++++++------------ 1 file changed, 60 insertions(+), 77 deletions(-) diff --git a/flutter/lib/mobile/pages/server_page.dart b/flutter/lib/mobile/pages/server_page.dart index e092bf1e7..ae61c91a7 100644 --- a/flutter/lib/mobile/pages/server_page.dart +++ b/flutter/lib/mobile/pages/server_page.dart @@ -242,7 +242,6 @@ class ServerInfo extends StatelessWidget { return PaddingCard( title: translate('Your Device'), child: Column( - // mainAxisSize: MainAxisSize.min, // ID children: [ Row(children: [ @@ -384,73 +383,64 @@ class ConnectionManager extends StatelessWidget { titleIcon: client.isFileTransfer ? Icon(Icons.folder_outlined) : Icon(Icons.mobile_screen_share), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, + child: Column(children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Expanded(child: ClientInfo(client)), - Expanded( - flex: -1, - child: client.isFileTransfer || !client.authorized - ? const SizedBox.shrink() - : IconButton( - onPressed: () { - gFFI.chatModel - .changeCurrentID(client.id); - final bar = - navigationBarKey.currentWidget; - if (bar != null) { - bar as BottomNavigationBar; - bar.onTap!(1); - } - }, - icon: const Icon(Icons.chat))) - ], - ), - client.authorized - ? const SizedBox.shrink() - : Text( - translate("android_new_connection_tip"), - style: Theme.of(context).textTheme.bodyMedium, - ).marginOnly(bottom: 5), - client.authorized - ? Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - ElevatedButton.icon( - style: ButtonStyle( - backgroundColor: - MaterialStatePropertyAll( - Colors.red)), - icon: const Icon(Icons.close), - onPressed: () { - bind.cmCloseConnection( - connId: client.id); - gFFI.invokeMethod( - "cancel_notification", client.id); - }, - label: Text(translate("Disconnect"))) - ]) - : Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - TextButton( - child: Text(translate("Dismiss")), - onPressed: () { - serverModel.sendLoginResponse( - client, false); - }).marginOnly(right: 15), - ElevatedButton.icon( - icon: const Icon(Icons.check), - label: Text(translate("Accept")), - onPressed: () { - serverModel.sendLoginResponse( - client, true); - }), - ]), - ]))) + Expanded(child: ClientInfo(client)), + Expanded( + flex: -1, + child: client.isFileTransfer || !client.authorized + ? const SizedBox.shrink() + : IconButton( + onPressed: () { + gFFI.chatModel.changeCurrentID(client.id); + final bar = navigationBarKey.currentWidget; + if (bar != null) { + bar as BottomNavigationBar; + bar.onTap!(1); + } + }, + icon: const Icon(Icons.chat))) + ], + ), + client.authorized + ? const SizedBox.shrink() + : Text( + translate("android_new_connection_tip"), + style: Theme.of(context).textTheme.bodyMedium, + ).marginOnly(bottom: 5), + client.authorized + ? Container( + alignment: Alignment.centerRight, + child: ElevatedButton.icon( + style: ButtonStyle( + backgroundColor: + MaterialStatePropertyAll(Colors.red)), + icon: const Icon(Icons.close), + onPressed: () { + bind.cmCloseConnection(connId: client.id); + gFFI.invokeMethod( + "cancel_notification", client.id); + }, + label: Text(translate("Disconnect")))) + : Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + child: Text(translate("Dismiss")), + onPressed: () { + serverModel.sendLoginResponse( + client, false); + }).marginOnly(right: 15), + ElevatedButton.icon( + icon: const Icon(Icons.check), + label: Text(translate("Accept")), + onPressed: () { + serverModel.sendLoginResponse(client, true); + }), + ]), + ]))) .toList()); } } @@ -473,17 +463,12 @@ class PaddingCard extends StatelessWidget { padding: const EdgeInsets.fromLTRB(0, 5, 0, 8), child: Row( children: [ - titleIcon != null - ? Padding( - padding: const EdgeInsets.only(right: 10), - child: titleIcon) - : const SizedBox.shrink(), + titleIcon?.marginOnly(right: 10) ?? const SizedBox.shrink(), Expanded( child: Text(title!, style: Theme.of(context) .textTheme .titleLarge - // @todo once the font weight is defined in theme, remove it here to be equal insted of individual ?.merge(TextStyle(fontWeight: FontWeight.bold))), ) ], @@ -498,9 +483,8 @@ class PaddingCard extends StatelessWidget { margin: const EdgeInsets.fromLTRB(12.0, 10.0, 12.0, 0), child: Padding( padding: - const EdgeInsets.symmetric(vertical: 15.0, horizontal: 30.0), + const EdgeInsets.symmetric(vertical: 15.0, horizontal: 20.0), child: Column( - crossAxisAlignment: CrossAxisAlignment.start, children: children, ), ), @@ -516,7 +500,7 @@ class ClientInfo extends StatelessWidget { Widget build(BuildContext context) { return Padding( padding: const EdgeInsets.symmetric(vertical: 8), - child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ + child: Column(children: [ Row( children: [ Expanded( @@ -533,7 +517,6 @@ class ClientInfo extends StatelessWidget { Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.center, children: [ Text(client.name, style: const TextStyle(fontSize: 18)), const SizedBox(width: 8),