Enable libolm

This commit is contained in:
Christian Pauly 2020-02-15 09:20:08 +01:00
parent 2c2f5408ee
commit d388d8267c
5 changed files with 108 additions and 4 deletions

View file

@ -657,6 +657,9 @@ class I18n {
String get visibilityOfTheChatHistory => String get visibilityOfTheChatHistory =>
Intl.message("Visibility of the chat history"); Intl.message("Visibility of the chat history");
String get warningEncryptionInBeta => Intl.message(
"End to end encryption is currently in Beta! Use at your own risk!");
String get wednesday => Intl.message("Wednesday"); String get wednesday => Intl.message("Wednesday");
String get whoIsAllowedToJoinThisGroup => String get whoIsAllowedToJoinThisGroup =>

View file

@ -162,9 +162,10 @@ extension LocalizedBody on Event {
break; break;
case EventTypes.Encryption: case EventTypes.Encryption:
localizedBody = localizedBody =
I18n.of(context).activatedEndToEndEncryption(senderName) + I18n.of(context).activatedEndToEndEncryption(senderName);
". " + if (!room.client.encryptionEnabled) {
I18n.of(context).needPantalaimonWarning; localizedBody += ". " + I18n.of(context).needPantalaimonWarning;
}
break; break;
case EventTypes.Encrypted: case EventTypes.Encrypted:
localizedBody = I18n.of(context).couldNotDecryptMessage; localizedBody = I18n.of(context).couldNotDecryptMessage;

80
lib/views/app_info.dart Normal file
View file

@ -0,0 +1,80 @@
import 'package:famedlysdk/famedlysdk.dart';
import 'package:fluffychat/components/adaptive_page_layout.dart';
import 'package:fluffychat/components/matrix.dart';
import 'package:fluffychat/i18n/i18n.dart';
import 'package:fluffychat/views/chat_list.dart';
import 'package:flutter/material.dart';
import 'package:olm/olm.dart' as olm;
import 'package:fluffychat/utils/beautify_string_extension.dart';
class AppInfoView extends StatelessWidget {
@override
Widget build(BuildContext context) {
return AdaptivePageLayout(
primaryPage: FocusPage.SECOND,
firstScaffold: ChatList(),
secondScaffold: AppInfo(),
);
}
}
class AppInfo extends StatelessWidget {
@override
Widget build(BuildContext context) {
Client client = Matrix.of(context).client;
return Scaffold(
appBar: AppBar(
title: Text("About FluffyChat"),
),
body: ListView(
children: <Widget>[
ListTile(
title: Text(I18n.of(context).yourOwnUsername + ":"),
subtitle: Text(client.userID),
),
ListTile(
title: Text("Homeserver:"),
subtitle: Text(client.homeserver),
),
ListTile(
title: Text("Supported versions:"),
subtitle: Text(client.matrixVersions.toString()),
),
ListTile(
title: Text("Lazy Loading members enabled:"),
subtitle: Text(client.lazyLoadMembers.toString()),
),
ListTile(
title: Text("Device name:"),
subtitle: Text(client.deviceName),
),
ListTile(
title: Text("Device ID:"),
subtitle: Text(client.deviceID),
),
ListTile(
title: Text("Encryption enabled:"),
subtitle: Text(client.encryptionEnabled.toString()),
),
if (client.encryptionEnabled)
Column(
children: <Widget>[
ListTile(
title: Text("Your public fingerprint key:"),
subtitle: Text(client.fingerprintKey.beautified),
),
ListTile(
title: Text("Your public identity key:"),
subtitle: Text(client.identityKey.beautified),
),
ListTile(
title: Text("LibOlm version:"),
subtitle: Text(olm.get_library_version().join(".")),
),
],
),
],
),
);
}
}

View file

@ -84,9 +84,18 @@ class _ChatEncryptionSettingsState extends State<ChatEncryptionSettings> {
ListTile( ListTile(
trailing: Icon(Icons.info), trailing: Icon(Icons.info),
subtitle: Text( subtitle: Text(
I18n.of(context).needPantalaimonWarning, Matrix.of(context).encryptionEnabled
? I18n.of(context).warningEncryptionInBeta
: I18n.of(context).needPantalaimonWarning,
), ),
), ),
if (room.encrypted)
ListTile(
title: Text("Outbound MegOlm session ID:"),
subtitle: Text(
room.outboundGroupSession?.session_id()?.beautified ??
"None"),
),
Divider(height: 1), Divider(height: 1),
if (room.encrypted) if (room.encrypted)
ListTile( ListTile(

View file

@ -6,6 +6,7 @@ import 'package:fluffychat/components/content_banner.dart';
import 'package:fluffychat/components/matrix.dart'; import 'package:fluffychat/components/matrix.dart';
import 'package:fluffychat/i18n/i18n.dart'; import 'package:fluffychat/i18n/i18n.dart';
import 'package:fluffychat/utils/app_route.dart'; import 'package:fluffychat/utils/app_route.dart';
import 'package:fluffychat/views/app_info.dart';
import 'package:fluffychat/views/chat_list.dart'; import 'package:fluffychat/views/chat_list.dart';
import 'package:fluffychat/views/sign_up.dart'; import 'package:fluffychat/views/sign_up.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
@ -132,6 +133,16 @@ class _SettingsState extends State<Settings> {
), ),
), ),
), ),
ListTile(
leading: Icon(Icons.info),
title: Text(I18n.of(context).fluffychat),
onTap: () => Navigator.of(context).push(
AppRoute.defaultRoute(
context,
AppInfoView(),
),
),
),
ListTile( ListTile(
leading: Icon(Icons.sentiment_very_satisfied), leading: Icon(Icons.sentiment_very_satisfied),
title: Text(I18n.of(context).donate), title: Text(I18n.of(context).donate),