Merge branch 'trunk' of git.openprivacy.ca:flutter/flutter_app into trunk
continuous-integration/drone/push Build is failing Details

This commit is contained in:
Dan Ballard 2021-06-24 22:34:24 -07:00
commit 69c748dcc4
14 changed files with 42 additions and 27 deletions

View File

@ -1,6 +1,9 @@
{ {
"@@locale": "de", "@@locale": "de",
"@@last_modified": "2021-06-24T18:24:27+02:00", "@@last_modified": "2021-06-24T23:32:06+02:00",
"tooltipHidePassword": "Hide Password",
"tooltipShowPassword": "Show Password",
"serverNotSynced": "Syncing New Messages (This can take some time)...",
"groupInviteSettingsWarning": "You have been invited to join a group! Please enable the Group Chat Experiment in Settings to view this Invitation.", "groupInviteSettingsWarning": "You have been invited to join a group! Please enable the Group Chat Experiment in Settings to view this Invitation.",
"shutdownCwtchAction": "Shutdown Cwtch", "shutdownCwtchAction": "Shutdown Cwtch",
"shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.", "shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.",
@ -155,7 +158,6 @@
"inviteToGroupLabel": "In die Gruppe einladen", "inviteToGroupLabel": "In die Gruppe einladen",
"groupNameLabel": "Gruppenname", "groupNameLabel": "Gruppenname",
"viewServerInfo": "Server Info", "viewServerInfo": "Server Info",
"serverNotSynced": "Out of Sync",
"serverSynced": "Synced", "serverSynced": "Synced",
"serverConnectivityDisconnected": "Server getrennt", "serverConnectivityDisconnected": "Server getrennt",
"serverConnectivityConnected": "Server verbunden", "serverConnectivityConnected": "Server verbunden",

View File

@ -1,6 +1,9 @@
{ {
"@@locale": "en", "@@locale": "en",
"@@last_modified": "2021-06-24T18:24:27+02:00", "@@last_modified": "2021-06-24T23:32:06+02:00",
"tooltipHidePassword": "Hide Password",
"tooltipShowPassword": "Show Password",
"serverNotSynced": "Syncing New Messages (This can take some time)...",
"groupInviteSettingsWarning": "You have been invited to join a group! Please enable the Group Chat Experiment in Settings to view this Invitation.", "groupInviteSettingsWarning": "You have been invited to join a group! Please enable the Group Chat Experiment in Settings to view this Invitation.",
"shutdownCwtchAction": "Shutdown Cwtch", "shutdownCwtchAction": "Shutdown Cwtch",
"shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.", "shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.",
@ -155,7 +158,6 @@
"inviteToGroupLabel": "Invite to group", "inviteToGroupLabel": "Invite to group",
"groupNameLabel": "Group Name", "groupNameLabel": "Group Name",
"viewServerInfo": "Server Info", "viewServerInfo": "Server Info",
"serverNotSynced": "Out of Sync",
"serverSynced": "Synced", "serverSynced": "Synced",
"serverConnectivityDisconnected": "Server Disconnected", "serverConnectivityDisconnected": "Server Disconnected",
"serverConnectivityConnected": "Server Connected", "serverConnectivityConnected": "Server Connected",

View File

@ -1,6 +1,9 @@
{ {
"@@locale": "es", "@@locale": "es",
"@@last_modified": "2021-06-24T18:24:27+02:00", "@@last_modified": "2021-06-24T23:32:06+02:00",
"tooltipHidePassword": "Hide Password",
"tooltipShowPassword": "Show Password",
"serverNotSynced": "Fuera de sincronización con el servidor",
"groupInviteSettingsWarning": "You have been invited to join a group! Please enable the Group Chat Experiment in Settings to view this Invitation.", "groupInviteSettingsWarning": "You have been invited to join a group! Please enable the Group Chat Experiment in Settings to view this Invitation.",
"shutdownCwtchAction": "Shutdown Cwtch", "shutdownCwtchAction": "Shutdown Cwtch",
"shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.", "shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.",
@ -155,7 +158,6 @@
"inviteToGroupLabel": "Invitar al grupo", "inviteToGroupLabel": "Invitar al grupo",
"groupNameLabel": "Nombre del grupo", "groupNameLabel": "Nombre del grupo",
"viewServerInfo": "Información del servidor", "viewServerInfo": "Información del servidor",
"serverNotSynced": "Fuera de sincronización con el servidor",
"serverSynced": "Sincronizado", "serverSynced": "Sincronizado",
"serverConnectivityDisconnected": "Servidor desconectado", "serverConnectivityDisconnected": "Servidor desconectado",
"serverConnectivityConnected": "Servidor conectado", "serverConnectivityConnected": "Servidor conectado",

View File

@ -1,6 +1,9 @@
{ {
"@@locale": "fr", "@@locale": "fr",
"@@last_modified": "2021-06-24T18:24:27+02:00", "@@last_modified": "2021-06-24T23:32:06+02:00",
"tooltipHidePassword": "Hide Password",
"tooltipShowPassword": "Show Password",
"serverNotSynced": "Syncing New Messages (This can take some time)...",
"groupInviteSettingsWarning": "You have been invited to join a group! Please enable the Group Chat Experiment in Settings to view this Invitation.", "groupInviteSettingsWarning": "You have been invited to join a group! Please enable the Group Chat Experiment in Settings to view this Invitation.",
"shutdownCwtchAction": "Shutdown Cwtch", "shutdownCwtchAction": "Shutdown Cwtch",
"shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.", "shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.",
@ -155,7 +158,6 @@
"inviteToGroupLabel": "Inviter quelqu'un", "inviteToGroupLabel": "Inviter quelqu'un",
"groupNameLabel": "Nom du groupe", "groupNameLabel": "Nom du groupe",
"viewServerInfo": "Server Info", "viewServerInfo": "Server Info",
"serverNotSynced": "Out of Sync",
"serverSynced": "Synced", "serverSynced": "Synced",
"serverConnectivityDisconnected": "Server Disconnected", "serverConnectivityDisconnected": "Server Disconnected",
"serverConnectivityConnected": "Server Connected", "serverConnectivityConnected": "Server Connected",

View File

@ -1,6 +1,9 @@
{ {
"@@locale": "it", "@@locale": "it",
"@@last_modified": "2021-06-24T18:24:27+02:00", "@@last_modified": "2021-06-24T23:32:06+02:00",
"tooltipHidePassword": "Hide Password",
"tooltipShowPassword": "Show Password",
"serverNotSynced": "Non sincronizzato",
"groupInviteSettingsWarning": "You have been invited to join a group! Please enable the Group Chat Experiment in Settings to view this Invitation.", "groupInviteSettingsWarning": "You have been invited to join a group! Please enable the Group Chat Experiment in Settings to view this Invitation.",
"shutdownCwtchAction": "Shutdown Cwtch", "shutdownCwtchAction": "Shutdown Cwtch",
"shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.", "shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.",
@ -155,7 +158,6 @@
"inviteToGroupLabel": "Invitare nel gruppo", "inviteToGroupLabel": "Invitare nel gruppo",
"groupNameLabel": "Nome del gruppo", "groupNameLabel": "Nome del gruppo",
"viewServerInfo": "Informazioni sul server", "viewServerInfo": "Informazioni sul server",
"serverNotSynced": "Non sincronizzato",
"serverSynced": "Sincronizzato", "serverSynced": "Sincronizzato",
"serverConnectivityDisconnected": "Server disconnesso", "serverConnectivityDisconnected": "Server disconnesso",
"serverConnectivityConnected": "Server connesso", "serverConnectivityConnected": "Server connesso",

View File

@ -1,6 +1,9 @@
{ {
"@@locale": "pt", "@@locale": "pt",
"@@last_modified": "2021-06-24T18:24:27+02:00", "@@last_modified": "2021-06-24T23:32:06+02:00",
"tooltipHidePassword": "Hide Password",
"tooltipShowPassword": "Show Password",
"serverNotSynced": "Syncing New Messages (This can take some time)...",
"groupInviteSettingsWarning": "You have been invited to join a group! Please enable the Group Chat Experiment in Settings to view this Invitation.", "groupInviteSettingsWarning": "You have been invited to join a group! Please enable the Group Chat Experiment in Settings to view this Invitation.",
"shutdownCwtchAction": "Shutdown Cwtch", "shutdownCwtchAction": "Shutdown Cwtch",
"shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.", "shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.",
@ -155,7 +158,6 @@
"inviteToGroupLabel": "Convidar ao grupo", "inviteToGroupLabel": "Convidar ao grupo",
"groupNameLabel": "Nome do Grupo", "groupNameLabel": "Nome do Grupo",
"viewServerInfo": "Server Info", "viewServerInfo": "Server Info",
"serverNotSynced": "Out of Sync",
"serverSynced": "Synced", "serverSynced": "Synced",
"serverConnectivityDisconnected": "Server Disconnected", "serverConnectivityDisconnected": "Server Disconnected",
"serverConnectivityConnected": "Server Connected", "serverConnectivityConnected": "Server Connected",

View File

@ -114,4 +114,7 @@ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.'''); OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.''');
yield LicenseEntryWithLineBreaks(["flaticons"], "Icons made by Freepik (https://www.freepik.com) from Flaticon (www.flaticon.com)");
} }

View File

@ -437,7 +437,8 @@ class ContactInfoState extends ChangeNotifier {
bool isOnline() { bool isOnline() {
if (this.isGroup == true) { if (this.isGroup == true) {
return this.status == "Synced"; // We now have an out of sync warning so we will mark these as online...
return this.status == "Authenticated" || this.status == "Synced";
} else { } else {
return this.status == "Authenticated"; return this.status == "Authenticated";
} }

View File

@ -64,7 +64,7 @@ class _GlobalSettingsViewState extends State<GlobalSettingsView> {
}).toList())), }).toList())),
SwitchListTile( SwitchListTile(
title: Text(AppLocalizations.of(context)!.settingTheme, style: TextStyle(color: settings.current().mainTextColor())), title: Text(AppLocalizations.of(context)!.settingTheme, style: TextStyle(color: settings.current().mainTextColor())),
value: settings.current() == "light", value: settings.current().identifier() == "light",
onChanged: (bool value) { onChanged: (bool value) {
if (value) { if (value) {
settings.setLight(); settings.setLight();
@ -169,13 +169,7 @@ class _GlobalSettingsViewState extends State<GlobalSettingsView> {
)), )),
AboutListTile( AboutListTile(
icon: Icon(Icons.info, color: settings.current().mainTextColor()), icon: Icon(Icons.info, color: settings.current().mainTextColor()),
applicationIcon: Padding( applicationIcon: Padding(padding:EdgeInsets.all(5), child: Icon(CwtchIcons.cwtch_knott)),
padding: EdgeInsets.all(20),
child: Image(
image: AssetImage("assets/knott.png"),
width: 128,
height: 128,
)),
applicationName: "Cwtch (Flutter UI)", applicationName: "Cwtch (Flutter UI)",
applicationVersion: AppLocalizations.of(context)!.versionBuilddate.replaceAll("%1", EnvironmentConfig.BUILD_VER).replaceAll("%2", EnvironmentConfig.BUILD_DATE), applicationVersion: AppLocalizations.of(context)!.versionBuilddate.replaceAll("%1", EnvironmentConfig.BUILD_VER).replaceAll("%2", EnvironmentConfig.BUILD_DATE),
applicationLegalese: '\u{a9} 2021 Open Privacy Research Society', applicationLegalese: '\u{a9} 2021 Open Privacy Research Society',

View File

@ -77,7 +77,6 @@ class _PeerSettingsViewState extends State<PeerSettingsView> {
}; };
final setPeerAttributeJson = jsonEncode(setPeerAttribute); final setPeerAttributeJson = jsonEncode(setPeerAttribute);
Provider.of<FlwtchState>(context, listen: false).cwtch.SendProfileEvent(profileOnion, setPeerAttributeJson); Provider.of<FlwtchState>(context, listen: false).cwtch.SendProfileEvent(profileOnion, setPeerAttributeJson);
// todo translations
final snackBar = SnackBar(content: Text(AppLocalizations.of(context)!.nickChangeSuccess)); final snackBar = SnackBar(content: Text(AppLocalizations.of(context)!.nickChangeSuccess));
ScaffoldMessenger.of(context).showSnackBar(snackBar); ScaffoldMessenger.of(context).showSnackBar(snackBar);
}, },

View File

@ -13,7 +13,7 @@ class SplashView extends StatelessWidget {
body: Center( body: Center(
child: Column(mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ child: Column(mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [
Image( Image(
image: AssetImage("assets/knott.png"), image: AssetImage("assets/core/knott-white.png"),
filterQuality: FilterQuality.medium, filterQuality: FilterQuality.medium,
isAntiAlias: true, isAntiAlias: true,
width: 200, width: 200,

View File

@ -14,7 +14,6 @@ import 'messagebubbledecorations.dart';
// Like MessageBubble but for displaying chat overlay 100/101 invitations // Like MessageBubble but for displaying chat overlay 100/101 invitations
// Offers the user an accept/reject button if they don't have a matching contact already // Offers the user an accept/reject button if they don't have a matching contact already
// todo: Reject buttons currently aren't tracked and will reset when the message is reloaded
class InvitationBubble extends StatefulWidget { class InvitationBubble extends StatefulWidget {
@override @override
InvitationBubbleState createState() => InvitationBubbleState(); InvitationBubbleState createState() => InvitationBubbleState();

View File

@ -19,6 +19,8 @@ class _MessageListState extends State<MessageList> {
bool showEphemeralWarning = (Provider.of<ContactInfoState>(context).isGroup == false && Provider.of<ContactInfoState>(context).savePeerHistory != "SaveHistory"); bool showEphemeralWarning = (Provider.of<ContactInfoState>(context).isGroup == false && Provider.of<ContactInfoState>(context).savePeerHistory != "SaveHistory");
bool showOfflineWarning = Provider.of<ContactInfoState>(context).isOnline() == false; bool showOfflineWarning = Provider.of<ContactInfoState>(context).isOnline() == false;
bool showMessageWarning = showEphemeralWarning || showOfflineWarning; bool showMessageWarning = showEphemeralWarning || showOfflineWarning;
bool showSyncing = Provider.of<ContactInfoState>(context).isGroup == true && Provider.of<ContactInfoState>(context).status != "Synced";
return RepaintBoundary( return RepaintBoundary(
child: Container( child: Container(
child: Column(children: [ child: Column(children: [
@ -27,7 +29,10 @@ class _MessageListState extends State<MessageList> {
child: Container( child: Container(
padding: EdgeInsets.all(5.0), padding: EdgeInsets.all(5.0),
color: Provider.of<Settings>(context).theme.defaultButtonActiveColor(), color: Provider.of<Settings>(context).theme.defaultButtonActiveColor(),
child: showOfflineWarning child: showSyncing ?
Text(AppLocalizations.of(context)!.serverNotSynced,
textAlign: TextAlign.center)
: showOfflineWarning
? Text(Provider.of<ContactInfoState>(context).isGroup ? AppLocalizations.of(context)!.serverConnectivityDisconnected : AppLocalizations.of(context)!.peerOfflineMessage, ? Text(Provider.of<ContactInfoState>(context).isGroup ? AppLocalizations.of(context)!.serverConnectivityDisconnected : AppLocalizations.of(context)!.peerOfflineMessage,
textAlign: TextAlign.center) textAlign: TextAlign.center)
// Only show the ephemeral status for peer conversations, not for groups... // Only show the ephemeral status for peer conversations, not for groups...
@ -50,6 +55,7 @@ class _MessageListState extends State<MessageList> {
alignment: Alignment.center, alignment: Alignment.center,
image: AssetImage("assets/core/negative_heart_512px.png"), image: AssetImage("assets/core/negative_heart_512px.png"),
colorFilter: ColorFilter.mode(Provider.of<Settings>(context).theme.hilightElementTextColor(), BlendMode.srcIn))), colorFilter: ColorFilter.mode(Provider.of<Settings>(context).theme.hilightElementTextColor(), BlendMode.srcIn))),
// Don't load messages for syncing server...
child: ListView.builder( child: ListView.builder(
controller: ctrlr1, controller: ctrlr1,
itemCount: Provider.of<ContactInfoState>(outerContext).totalMessages, itemCount: Provider.of<ContactInfoState>(outerContext).totalMessages,

View File

@ -2,6 +2,7 @@ import 'package:cwtch/cwtch_icons_icons.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../settings.dart'; import '../settings.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
// Provides a styled Password Input Field for use in Form Widgets. // Provides a styled Password Input Field for use in Form Widgets.
// Callers must provide a text controller, label helper text and a validator. // Callers must provide a text controller, label helper text and a validator.
@ -22,9 +23,9 @@ class _CwtchTextFieldState extends State<CwtchPasswordField> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
// todo: translations // todo: translations
var label = "View Password"; var label = AppLocalizations.of(context)!.tooltipShowPassword;
if (!obscureText) { if (!obscureText) {
label = "Hide Password"; label = AppLocalizations.of(context)!.tooltipHidePassword;
} }
return Consumer<Settings>(builder: (context, theme, child) { return Consumer<Settings>(builder: (context, theme, child) {