feat: Implement sentry
This commit is contained in:
parent
a16e258737
commit
705ced844b
|
@ -1 +1 @@
|
|||
14bfb9c7e87ce172994e49cbda14b122
|
||||
9cd9a74565170b55c5402198d76f5fb8
|
|
@ -87,6 +87,9 @@ PODS:
|
|||
- Flutter
|
||||
- flutter_local_notifications (0.0.1):
|
||||
- Flutter
|
||||
- flutter_olm (0.0.1):
|
||||
- Flutter
|
||||
- OLMKit
|
||||
- flutter_plugin_android_lifecycle (0.0.1):
|
||||
- Flutter
|
||||
- flutter_secure_storage (3.3.1):
|
||||
|
@ -130,6 +133,13 @@ PODS:
|
|||
- nanopb/encode (= 1.30906.0)
|
||||
- nanopb/decode (1.30906.0)
|
||||
- nanopb/encode (1.30906.0)
|
||||
- native_imaging (0.0.1):
|
||||
- Flutter
|
||||
- OLMKit (3.1.0):
|
||||
- OLMKit/olmc (= 3.1.0)
|
||||
- OLMKit/olmcpp (= 3.1.0)
|
||||
- OLMKit/olmc (3.1.0)
|
||||
- OLMKit/olmcpp (3.1.0)
|
||||
- open_file (0.0.1):
|
||||
- Flutter
|
||||
- path_provider (0.0.1):
|
||||
|
@ -175,10 +185,12 @@ DEPENDENCIES:
|
|||
- Flutter (from `Flutter`)
|
||||
- flutter_keyboard_visibility (from `.symlinks/plugins/flutter_keyboard_visibility/ios`)
|
||||
- flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
|
||||
- flutter_olm (from `.symlinks/plugins/flutter_olm/ios`)
|
||||
- flutter_plugin_android_lifecycle (from `.symlinks/plugins/flutter_plugin_android_lifecycle/ios`)
|
||||
- flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`)
|
||||
- flutter_sound (from `.symlinks/plugins/flutter_sound/ios`)
|
||||
- image_picker (from `.symlinks/plugins/image_picker/ios`)
|
||||
- native_imaging (from `.symlinks/plugins/native_imaging/ios`)
|
||||
- open_file (from `.symlinks/plugins/open_file/ios`)
|
||||
- path_provider (from `.symlinks/plugins/path_provider/ios`)
|
||||
- path_provider_linux (from `.symlinks/plugins/path_provider_linux/ios`)
|
||||
|
@ -210,6 +222,7 @@ SPEC REPOS:
|
|||
- GoogleDataTransport
|
||||
- GoogleUtilities
|
||||
- nanopb
|
||||
- OLMKit
|
||||
- PromisesObjC
|
||||
- Protobuf
|
||||
- SDWebImage
|
||||
|
@ -227,6 +240,8 @@ EXTERNAL SOURCES:
|
|||
:path: ".symlinks/plugins/flutter_keyboard_visibility/ios"
|
||||
flutter_local_notifications:
|
||||
:path: ".symlinks/plugins/flutter_local_notifications/ios"
|
||||
flutter_olm:
|
||||
:path: ".symlinks/plugins/flutter_olm/ios"
|
||||
flutter_plugin_android_lifecycle:
|
||||
:path: ".symlinks/plugins/flutter_plugin_android_lifecycle/ios"
|
||||
flutter_secure_storage:
|
||||
|
@ -235,6 +250,8 @@ EXTERNAL SOURCES:
|
|||
:path: ".symlinks/plugins/flutter_sound/ios"
|
||||
image_picker:
|
||||
:path: ".symlinks/plugins/image_picker/ios"
|
||||
native_imaging:
|
||||
:path: ".symlinks/plugins/native_imaging/ios"
|
||||
open_file:
|
||||
:path: ".symlinks/plugins/open_file/ios"
|
||||
path_provider:
|
||||
|
@ -276,6 +293,7 @@ SPEC CHECKSUMS:
|
|||
Flutter: 0e3d915762c693b495b44d77113d4970485de6ec
|
||||
flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069
|
||||
flutter_local_notifications: 9e4738ce2471c5af910d961a6b7eadcf57c50186
|
||||
flutter_olm: be36ebeb6388f7d7b3097d39feaf459a3cad2091
|
||||
flutter_plugin_android_lifecycle: dc0b544e129eebb77a6bfb1239d4d1c673a60a35
|
||||
flutter_secure_storage: 7953c38a04c3fdbb00571bcd87d8e3b5ceb9daec
|
||||
flutter_sound: 0e8163ceac1e00eb6d894e2ae4641ba726a2c479
|
||||
|
@ -285,6 +303,8 @@ SPEC CHECKSUMS:
|
|||
GoogleUtilities: 7f2f5a07f888cdb145101d6042bc4422f57e70b3
|
||||
image_picker: 9c3312491f862b28d21ecd8fdf0ee14e601b3f09
|
||||
nanopb: 59317e09cf1f1a0af72f12af412d54edf52603fc
|
||||
native_imaging: 633687fc14422729cc67ed80c3435e359ef7a92b
|
||||
OLMKit: 4ee0159d63feeb86d836fdcfefe418e163511639
|
||||
open_file: 02eb5cb6b21264bd3a696876f5afbfb7ca4f4b7d
|
||||
path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c
|
||||
path_provider_linux: 4d630dc393e1f20364f3e3b4a2ff41d9674a84e4
|
||||
|
|
|
@ -2,6 +2,7 @@ import 'package:fluffychat/l10n/l10n.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:famedlysdk/famedlysdk.dart';
|
||||
import 'package:bot_toast/bot_toast.dart';
|
||||
import 'package:matrix_link_text/link_text.dart';
|
||||
|
||||
class SimpleDialogs {
|
||||
final BuildContext context;
|
||||
|
@ -84,7 +85,7 @@ class SimpleDialogs {
|
|||
context: context,
|
||||
builder: (c) => AlertDialog(
|
||||
title: Text(titleText ?? L10n.of(context).areYouSure),
|
||||
content: contentText != null ? Text(contentText) : null,
|
||||
content: contentText != null ? LinkText(text: contentText) : null,
|
||||
actions: <Widget>[
|
||||
FlatButton(
|
||||
child: Text(
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"@@last_modified": "2020-08-16T12:43:17.825046",
|
||||
"@@last_modified": "2020-09-09T13:52:07.398547",
|
||||
"About": "About",
|
||||
"@About": {
|
||||
"type": "text",
|
||||
|
@ -1151,6 +1151,26 @@
|
|||
"type": "text",
|
||||
"placeholders": {}
|
||||
},
|
||||
"Allow sending bug reports with sentry.io": "Allow sending bug reports with sentry.io",
|
||||
"@Allow sending bug reports with sentry.io": {
|
||||
"type": "text",
|
||||
"placeholders": {}
|
||||
},
|
||||
"Informations about your privacy: https://sentry.io/security/": "Informations about your privacy: https://sentry.io/security/",
|
||||
"@Informations about your privacy: https://sentry.io/security/": {
|
||||
"type": "text",
|
||||
"placeholders": {}
|
||||
},
|
||||
"Changes have been saved": "Changes have been saved",
|
||||
"@Changes have been saved": {
|
||||
"type": "text",
|
||||
"placeholders": {}
|
||||
},
|
||||
"No": "No",
|
||||
"@No": {
|
||||
"type": "text",
|
||||
"placeholders": {}
|
||||
},
|
||||
"seenByUser": "Seen by {username}",
|
||||
"@seenByUser": {
|
||||
"type": "text",
|
||||
|
|
|
@ -712,6 +712,16 @@ class L10n extends MatrixLocalizations {
|
|||
|
||||
String get lastSeenLongTimeAgo => Intl.message('Seen a long time ago');
|
||||
|
||||
String get sendBugReports =>
|
||||
Intl.message('Allow sending bug reports with sentry.io');
|
||||
|
||||
String get sentryInfo => Intl.message(
|
||||
'Informations about your privacy: https://sentry.io/security/');
|
||||
|
||||
String get changesHaveBeenSaved => Intl.message('Changes have been saved');
|
||||
|
||||
String get no => Intl.message('No');
|
||||
|
||||
String seenByUser(String username) => Intl.message(
|
||||
"Seen by $username",
|
||||
name: "seenByUser",
|
||||
|
|
|
@ -18,6 +18,7 @@ import 'package:intl/src/intl_helpers.dart';
|
|||
import 'messages_cs.dart' as messages_cs;
|
||||
import 'messages_de.dart' as messages_de;
|
||||
import 'messages_es.dart' as messages_es;
|
||||
import 'messages_et.dart' as messages_et;
|
||||
import 'messages_fr.dart' as messages_fr;
|
||||
import 'messages_gl.dart' as messages_gl;
|
||||
import 'messages_hr.dart' as messages_hr;
|
||||
|
@ -37,6 +38,7 @@ Map<String, LibraryLoader> _deferredLibraries = {
|
|||
'cs': () => new Future.value(null),
|
||||
'de': () => new Future.value(null),
|
||||
'es': () => new Future.value(null),
|
||||
'et': () => new Future.value(null),
|
||||
'fr': () => new Future.value(null),
|
||||
'gl': () => new Future.value(null),
|
||||
'hr': () => new Future.value(null),
|
||||
|
@ -60,6 +62,8 @@ MessageLookupByLibrary _findExact(String localeName) {
|
|||
return messages_de.messages;
|
||||
case 'es':
|
||||
return messages_es.messages;
|
||||
case 'et':
|
||||
return messages_et.messages;
|
||||
case 'fr':
|
||||
return messages_fr.messages;
|
||||
case 'gl':
|
||||
|
|
477
lib/l10n/messages_et.dart
Normal file
477
lib/l10n/messages_et.dart
Normal file
|
@ -0,0 +1,477 @@
|
|||
// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart
|
||||
// This is a library that provides messages for a et locale. All the
|
||||
// messages from the main program should be duplicated here with the same
|
||||
// function name.
|
||||
|
||||
// Ignore issues from commonly used lints in this file.
|
||||
// ignore_for_file:unnecessary_brace_in_string_interps, unnecessary_new
|
||||
// ignore_for_file:prefer_single_quotes,comment_references, directives_ordering
|
||||
// ignore_for_file:annotate_overrides,prefer_generic_function_type_aliases
|
||||
// ignore_for_file:unused_import, file_names
|
||||
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:intl/message_lookup_by_library.dart';
|
||||
|
||||
final messages = new MessageLookup();
|
||||
|
||||
typedef String MessageIfAbsent(String messageStr, List<dynamic> args);
|
||||
|
||||
class MessageLookup extends MessageLookupByLibrary {
|
||||
String get localeName => 'et';
|
||||
|
||||
static m0(username) => "";
|
||||
|
||||
static m1(username) => "";
|
||||
|
||||
static m2(senderName) => "";
|
||||
|
||||
static m3(username) => "";
|
||||
|
||||
static m4(username, targetName) => "";
|
||||
|
||||
static m5(homeserver) => "";
|
||||
|
||||
static m6(username) => "";
|
||||
|
||||
static m7(username, description) => "";
|
||||
|
||||
static m8(username, chatname) => "";
|
||||
|
||||
static m9(username) => "";
|
||||
|
||||
static m10(username, displayname) => "";
|
||||
|
||||
static m11(username) => "";
|
||||
|
||||
static m12(username, rules) => "";
|
||||
|
||||
static m13(username) => "";
|
||||
|
||||
static m14(username, rules) => "";
|
||||
|
||||
static m15(username) => "";
|
||||
|
||||
static m16(username, joinRules) => "";
|
||||
|
||||
static m17(username) => "";
|
||||
|
||||
static m18(username) => "";
|
||||
|
||||
static m19(username) => "";
|
||||
|
||||
static m20(error) => "";
|
||||
|
||||
static m21(count) => "";
|
||||
|
||||
static m22(username) => "";
|
||||
|
||||
static m23(date, timeOfDay) => "";
|
||||
|
||||
static m24(year, month, day) => "";
|
||||
|
||||
static m25(month, day) => "";
|
||||
|
||||
static m26(senderName) => "";
|
||||
|
||||
static m27(displayname) => "";
|
||||
|
||||
static m28(username, targetName) => "";
|
||||
|
||||
static m29(groupName) => "";
|
||||
|
||||
static m30(username, link) => "";
|
||||
|
||||
static m31(username, targetName) => "";
|
||||
|
||||
static m32(username) => "";
|
||||
|
||||
static m33(username, targetName) => "";
|
||||
|
||||
static m34(username, targetName) => "";
|
||||
|
||||
static m35(localizedTimeShort) => "";
|
||||
|
||||
static m36(count) => "";
|
||||
|
||||
static m37(homeserver) => "";
|
||||
|
||||
static m38(number) => "";
|
||||
|
||||
static m39(fileName) => "";
|
||||
|
||||
static m40(username) => "";
|
||||
|
||||
static m41(username) => "";
|
||||
|
||||
static m42(username) => "";
|
||||
|
||||
static m43(username) => "";
|
||||
|
||||
static m44(username, count) => "";
|
||||
|
||||
static m45(username, username2) => "";
|
||||
|
||||
static m46(username) => "";
|
||||
|
||||
static m47(username) => "";
|
||||
|
||||
static m48(username) => "";
|
||||
|
||||
static m49(username) => "";
|
||||
|
||||
static m50(username) => "";
|
||||
|
||||
static m51(senderName) => "";
|
||||
|
||||
static m52(username) => "";
|
||||
|
||||
static m53(senderName) => "";
|
||||
|
||||
static m54(hours12, hours24, minutes, suffix) => "";
|
||||
|
||||
static m55(username, targetName) => "";
|
||||
|
||||
static m56(type) => "";
|
||||
|
||||
static m57(unreadCount) => "";
|
||||
|
||||
static m58(unreadEvents) => "";
|
||||
|
||||
static m59(unreadEvents, unreadChats) => "";
|
||||
|
||||
static m60(username, count) => "";
|
||||
|
||||
static m61(username, username2) => "";
|
||||
|
||||
static m62(username) => "";
|
||||
|
||||
static m63(username) => "";
|
||||
|
||||
static m64(username, type) => "";
|
||||
|
||||
final messages = _notInlinedMessages(_notInlinedMessages);
|
||||
static _notInlinedMessages(_) => <String, Function>{
|
||||
"(Optional) Group name": MessageLookupByLibrary.simpleMessage(""),
|
||||
"About": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Accept": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Account": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Account informations": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Add a group description": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Admin": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Already have an account?": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Anyone can join": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Archive": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Archived Room": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Are guest users allowed to join":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"Are you sure?": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Authentication": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Avatar has been changed": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Ban from chat": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Banned": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Block Device": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Cancel": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Change the homeserver": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Change the name of the group":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"Change the server": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Change wallpaper": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Change your style": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Changelog": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Chat": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Chat details": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Choose a strong password": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Choose a username": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Close": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Confirm": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Connect": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Connection attempt failed": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Contact has been invited to the group":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"Content viewer": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Copied to clipboard": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Copy": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Could not set avatar": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Could not set displayname": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Create": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Create account now": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Create new group": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Currently active": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Dark": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Delete": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Delete message": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Deny": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Device": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Devices": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Discard picture": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Displayname has been changed":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"Donate": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Download file": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Edit Jitsi instance": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Edit displayname": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Emote Settings": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Emote shortcode": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Empty chat": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Encryption": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Encryption algorithm": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Encryption is not enabled": MessageLookupByLibrary.simpleMessage(""),
|
||||
"End to end encryption is currently in Beta! Use at your own risk!":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"End-to-end encryption settings":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"Enter a group name": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Enter a username": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Enter your homeserver": MessageLookupByLibrary.simpleMessage(""),
|
||||
"File name": MessageLookupByLibrary.simpleMessage(""),
|
||||
"File size": MessageLookupByLibrary.simpleMessage(""),
|
||||
"FluffyChat": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Forward": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Friday": MessageLookupByLibrary.simpleMessage(""),
|
||||
"From joining": MessageLookupByLibrary.simpleMessage(""),
|
||||
"From the invitation": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Group": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Group description": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Group description has been changed":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"Group is public": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Guests are forbidden": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Guests can join": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Help": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Homeserver is not compatible":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"How are you today?": MessageLookupByLibrary.simpleMessage(""),
|
||||
"ID": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Identity": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Invite contact": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Invited": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Invited users only": MessageLookupByLibrary.simpleMessage(""),
|
||||
"It seems that you have no google services on your phone. That\'s a good decision for your privacy! To receive push notifications in FluffyChat we recommend using microG: https://microg.org/":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"Join room": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Kick from chat": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Last seen IP": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Leave": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Left the chat": MessageLookupByLibrary.simpleMessage(""),
|
||||
"License": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Light": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Load more...": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Loading... Please wait": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Login": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Logout": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Make a moderator": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Make an admin": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Make sure the identifier is valid":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"Message will be removed for all participants":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"Moderator": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Monday": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Mute chat": MessageLookupByLibrary.simpleMessage(""),
|
||||
"New message in FluffyChat": MessageLookupByLibrary.simpleMessage(""),
|
||||
"New private chat": MessageLookupByLibrary.simpleMessage(""),
|
||||
"No emotes found. 😕": MessageLookupByLibrary.simpleMessage(""),
|
||||
"No permission": MessageLookupByLibrary.simpleMessage(""),
|
||||
"No rooms found...": MessageLookupByLibrary.simpleMessage(""),
|
||||
"None": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Not supported in web": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Oops something went wrong...":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"Open app to read messages": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Open camera": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Participating user devices": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Password": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Pick image": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Pin": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Please be aware that you need Pantalaimon to use end-to-end encryption for now.":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"Please choose a username": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Please enter a matrix identifier":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"Please enter your password": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Please enter your username": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Public Rooms": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Recording": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Reject": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Rejoin": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Remove": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Remove all other devices": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Remove device": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Remove exile": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Remove message": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Render rich message content": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Reply": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Request permission": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Request to read older messages":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"Revoke all permissions": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Room has been upgraded": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Saturday": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Search for a chat": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Seen a long time ago": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Send": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Send a message": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Send file": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Send image": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Set a profile picture": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Set group description": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Set invitation link": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Set status": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Settings": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Share": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Sign up": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Skip": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Source code": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Start your first chat :-)": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Submit": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Sunday": MessageLookupByLibrary.simpleMessage(""),
|
||||
"System": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Tap to show menu": MessageLookupByLibrary.simpleMessage(""),
|
||||
"The encryption has been corrupted":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"They Don\'t Match": MessageLookupByLibrary.simpleMessage(""),
|
||||
"They Match": MessageLookupByLibrary.simpleMessage(""),
|
||||
"This room has been archived.":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"Thursday": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Try to send again": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Tuesday": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Unblock Device": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Unknown device": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Unknown encryption algorithm":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"Unmute chat": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Unpin": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Use Amoled compatible colors?":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"Username": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Verify": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Verify User": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Video call": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Visibility of the chat history":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"Visible for all participants":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"Visible for everyone": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Voice message": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Wallpaper": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Wednesday": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Welcome to the cutest instant messenger in the matrix network.":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"Who is allowed to join this group":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"Write a message...": MessageLookupByLibrary.simpleMessage(""),
|
||||
"Yes": MessageLookupByLibrary.simpleMessage(""),
|
||||
"You": MessageLookupByLibrary.simpleMessage(""),
|
||||
"You are invited to this chat":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"You are no longer participating in this chat":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"You cannot invite yourself": MessageLookupByLibrary.simpleMessage(""),
|
||||
"You have been banned from this chat":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"You won\'t be able to disable the encryption anymore. Are you sure?":
|
||||
MessageLookupByLibrary.simpleMessage(""),
|
||||
"Your own username": MessageLookupByLibrary.simpleMessage(""),
|
||||
"acceptedTheInvitation": m0,
|
||||
"activatedEndToEndEncryption": m1,
|
||||
"alias": MessageLookupByLibrary.simpleMessage(""),
|
||||
"answeredTheCall": m2,
|
||||
"askSSSSCache": MessageLookupByLibrary.simpleMessage(""),
|
||||
"askSSSSSign": MessageLookupByLibrary.simpleMessage(""),
|
||||
"askSSSSVerify": MessageLookupByLibrary.simpleMessage(""),
|
||||
"askVerificationRequest": m3,
|
||||
"bannedUser": m4,
|
||||
"byDefaultYouWillBeConnectedTo": m5,
|
||||
"cachedKeys": MessageLookupByLibrary.simpleMessage(""),
|
||||
"changedTheChatAvatar": m6,
|
||||
"changedTheChatDescriptionTo": m7,
|
||||
"changedTheChatNameTo": m8,
|
||||
"changedTheChatPermissions": m9,
|
||||
"changedTheDisplaynameTo": m10,
|
||||
"changedTheGuestAccessRules": m11,
|
||||
"changedTheGuestAccessRulesTo": m12,
|
||||
"changedTheHistoryVisibility": m13,
|
||||
"changedTheHistoryVisibilityTo": m14,
|
||||
"changedTheJoinRules": m15,
|
||||
"changedTheJoinRulesTo": m16,
|
||||
"changedTheProfileAvatar": m17,
|
||||
"changedTheRoomAliases": m18,
|
||||
"changedTheRoomInvitationLink": m19,
|
||||
"compareEmojiMatch": MessageLookupByLibrary.simpleMessage(""),
|
||||
"compareNumbersMatch": MessageLookupByLibrary.simpleMessage(""),
|
||||
"couldNotDecryptMessage": m20,
|
||||
"countParticipants": m21,
|
||||
"createdTheChat": m22,
|
||||
"crossSigningDisabled": MessageLookupByLibrary.simpleMessage(""),
|
||||
"crossSigningEnabled": MessageLookupByLibrary.simpleMessage(""),
|
||||
"dateAndTimeOfDay": m23,
|
||||
"dateWithYear": m24,
|
||||
"dateWithoutYear": m25,
|
||||
"emoteExists": MessageLookupByLibrary.simpleMessage(""),
|
||||
"emoteInvalid": MessageLookupByLibrary.simpleMessage(""),
|
||||
"emoteWarnNeedToPick": MessageLookupByLibrary.simpleMessage(""),
|
||||
"endedTheCall": m26,
|
||||
"groupWith": m27,
|
||||
"hasWithdrawnTheInvitationFor": m28,
|
||||
"incorrectPassphraseOrKey": MessageLookupByLibrary.simpleMessage(""),
|
||||
"inviteContactToGroup": m29,
|
||||
"inviteText": m30,
|
||||
"invitedUser": m31,
|
||||
"is typing...": MessageLookupByLibrary.simpleMessage(""),
|
||||
"isDeviceKeyCorrect": MessageLookupByLibrary.simpleMessage(""),
|
||||
"joinedTheChat": m32,
|
||||
"keysCached": MessageLookupByLibrary.simpleMessage(""),
|
||||
"keysMissing": MessageLookupByLibrary.simpleMessage(""),
|
||||
"kicked": m33,
|
||||
"kickedAndBanned": m34,
|
||||
"lastActiveAgo": m35,
|
||||
"loadCountMoreParticipants": m36,
|
||||
"logInTo": m37,
|
||||
"newVerificationRequest": MessageLookupByLibrary.simpleMessage(""),
|
||||
"noCrossSignBootstrap": MessageLookupByLibrary.simpleMessage(""),
|
||||
"noMegolmBootstrap": MessageLookupByLibrary.simpleMessage(""),
|
||||
"numberSelected": m38,
|
||||
"ok": MessageLookupByLibrary.simpleMessage(""),
|
||||
"onlineKeyBackupDisabled": MessageLookupByLibrary.simpleMessage(""),
|
||||
"onlineKeyBackupEnabled": MessageLookupByLibrary.simpleMessage(""),
|
||||
"passphraseOrKey": MessageLookupByLibrary.simpleMessage(""),
|
||||
"play": m39,
|
||||
"redactedAnEvent": m40,
|
||||
"rejectedTheInvitation": m41,
|
||||
"removedBy": m42,
|
||||
"seenByUser": m43,
|
||||
"seenByUserAndCountOthers": m44,
|
||||
"seenByUserAndUser": m45,
|
||||
"sentAFile": m46,
|
||||
"sentAPicture": m47,
|
||||
"sentASticker": m48,
|
||||
"sentAVideo": m49,
|
||||
"sentAnAudio": m50,
|
||||
"sentCallInformations": m51,
|
||||
"sessionVerified": MessageLookupByLibrary.simpleMessage(""),
|
||||
"sharedTheLocation": m52,
|
||||
"startedACall": m53,
|
||||
"timeOfDay": m54,
|
||||
"title": MessageLookupByLibrary.simpleMessage(""),
|
||||
"unbannedUser": m55,
|
||||
"unknownEvent": m56,
|
||||
"unknownSessionVerify": MessageLookupByLibrary.simpleMessage(""),
|
||||
"unreadChats": m57,
|
||||
"unreadMessages": m58,
|
||||
"unreadMessagesInChats": m59,
|
||||
"userAndOthersAreTyping": m60,
|
||||
"userAndUserAreTyping": m61,
|
||||
"userIsTyping": m62,
|
||||
"userLeftTheChat": m63,
|
||||
"userSentUnknownEvent": m64,
|
||||
"verifiedSession": MessageLookupByLibrary.simpleMessage(""),
|
||||
"verifyManual": MessageLookupByLibrary.simpleMessage(""),
|
||||
"verifyStart": MessageLookupByLibrary.simpleMessage(""),
|
||||
"verifySuccess": MessageLookupByLibrary.simpleMessage(""),
|
||||
"verifyTitle": MessageLookupByLibrary.simpleMessage(""),
|
||||
"waitingPartnerAcceptRequest": MessageLookupByLibrary.simpleMessage(""),
|
||||
"waitingPartnerEmoji": MessageLookupByLibrary.simpleMessage(""),
|
||||
"waitingPartnerNumbers": MessageLookupByLibrary.simpleMessage("")
|
||||
};
|
||||
}
|
|
@ -174,6 +174,9 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"Add a group description":
|
||||
MessageLookupByLibrary.simpleMessage("Add a group description"),
|
||||
"Admin": MessageLookupByLibrary.simpleMessage("Admin"),
|
||||
"Allow sending bug reports with sentry.io":
|
||||
MessageLookupByLibrary.simpleMessage(
|
||||
"Allow sending bug reports with sentry.io"),
|
||||
"Already have an account?":
|
||||
MessageLookupByLibrary.simpleMessage("Already have an account?"),
|
||||
"Anyone can join":
|
||||
|
@ -202,6 +205,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
"Change your style":
|
||||
MessageLookupByLibrary.simpleMessage("Change your style"),
|
||||
"Changelog": MessageLookupByLibrary.simpleMessage("Changelog"),
|
||||
"Changes have been saved":
|
||||
MessageLookupByLibrary.simpleMessage("Changes have been saved"),
|
||||
"Chat": MessageLookupByLibrary.simpleMessage("Chat"),
|
||||
"Chat details": MessageLookupByLibrary.simpleMessage("Chat details"),
|
||||
"Choose a strong password":
|
||||
|
@ -297,6 +302,9 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
MessageLookupByLibrary.simpleMessage("How are you today?"),
|
||||
"ID": MessageLookupByLibrary.simpleMessage("ID"),
|
||||
"Identity": MessageLookupByLibrary.simpleMessage("Identity"),
|
||||
"Informations about your privacy: https://sentry.io/security/":
|
||||
MessageLookupByLibrary.simpleMessage(
|
||||
"Informations about your privacy: https://sentry.io/security/"),
|
||||
"Invite contact":
|
||||
MessageLookupByLibrary.simpleMessage("Invite contact"),
|
||||
"Invited": MessageLookupByLibrary.simpleMessage("Invited"),
|
||||
|
@ -334,6 +342,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
MessageLookupByLibrary.simpleMessage("New message in FluffyChat"),
|
||||
"New private chat":
|
||||
MessageLookupByLibrary.simpleMessage("New private chat"),
|
||||
"No": MessageLookupByLibrary.simpleMessage("No"),
|
||||
"No emotes found. 😕":
|
||||
MessageLookupByLibrary.simpleMessage("No emotes found. 😕"),
|
||||
"No permission": MessageLookupByLibrary.simpleMessage("No permission"),
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:famedlysdk/famedlysdk.dart';
|
||||
|
@ -13,11 +14,29 @@ import 'components/theme_switcher.dart';
|
|||
import 'components/matrix.dart';
|
||||
import 'views/chat_list.dart';
|
||||
import 'package:universal_html/prefer_universal/html.dart' as html;
|
||||
import 'package:sentry/sentry.dart';
|
||||
import 'package:localstorage/localstorage.dart';
|
||||
|
||||
final sentry = SentryClient(dsn: '8591d0d863b646feb4f3dda7e5dcab38');
|
||||
|
||||
void main() {
|
||||
SystemChrome.setSystemUIOverlayStyle(
|
||||
SystemUiOverlayStyle(statusBarColor: Colors.transparent));
|
||||
runApp(App());
|
||||
runZonedGuarded(
|
||||
() => runApp(App()),
|
||||
(error, stackTrace) async {
|
||||
final storage = LocalStorage('LocalStorage');
|
||||
await storage.ready;
|
||||
debugPrint(error.toString());
|
||||
debugPrint(stackTrace.toString());
|
||||
if (storage.getItem('sentry') == true) {
|
||||
await sentry.captureException(
|
||||
exception: error,
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
class App extends StatelessWidget {
|
||||
|
|
26
lib/utils/sentry_controller.dart
Normal file
26
lib/utils/sentry_controller.dart
Normal file
|
@ -0,0 +1,26 @@
|
|||
import 'package:bot_toast/bot_toast.dart';
|
||||
import 'package:fluffychat/components/dialogs/simple_dialogs.dart';
|
||||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:localstorage/localstorage.dart';
|
||||
|
||||
abstract class SentryController {
|
||||
static LocalStorage storage = LocalStorage('LocalStorage');
|
||||
static Future<void> toggleSentryAction(BuildContext context) async {
|
||||
final enableSentry = await SimpleDialogs(context).askConfirmation(
|
||||
titleText: L10n.of(context).sendBugReports,
|
||||
contentText: L10n.of(context).sentryInfo,
|
||||
confirmText: L10n.of(context).ok,
|
||||
cancelText: L10n.of(context).no,
|
||||
);
|
||||
await storage.ready;
|
||||
await storage.setItem('sentry', enableSentry);
|
||||
BotToast.showText(text: L10n.of(context).changesHaveBeenSaved);
|
||||
return;
|
||||
}
|
||||
|
||||
static Future<bool> getSentryStatus() async {
|
||||
await storage.ready;
|
||||
return storage.getItem('sentry') as bool;
|
||||
}
|
||||
}
|
|
@ -4,6 +4,7 @@ import 'package:fluffychat/components/dialogs/simple_dialogs.dart';
|
|||
import 'package:fluffychat/components/matrix.dart';
|
||||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/utils/app_route.dart';
|
||||
import 'package:fluffychat/utils/sentry_controller.dart';
|
||||
import 'package:fluffychat/views/sign_up.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
|
@ -19,6 +20,10 @@ class HomeserverPicker extends StatelessWidget {
|
|||
}
|
||||
|
||||
void _checkHomeserverAction(String homeserver, BuildContext context) async {
|
||||
if (await SentryController.getSentryStatus() == null || true) {
|
||||
await SentryController.toggleSentryAction(context);
|
||||
}
|
||||
|
||||
if (!homeserver.startsWith('https://')) {
|
||||
homeserver = 'https://$homeserver';
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ import 'dart:io';
|
|||
|
||||
import 'package:famedlysdk/famedlysdk.dart';
|
||||
import 'package:fluffychat/components/settings_themes.dart';
|
||||
import 'package:fluffychat/utils/sentry_controller.dart';
|
||||
import 'package:fluffychat/views/settings_devices.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
@ -341,6 +342,11 @@ class _SettingsState extends State<Settings> {
|
|||
),
|
||||
),
|
||||
),
|
||||
ListTile(
|
||||
trailing: Icon(Icons.bug_report),
|
||||
title: Text(L10n.of(context).sendBugReports),
|
||||
onTap: () => SentryController.toggleSentryAction(context),
|
||||
),
|
||||
ListTile(
|
||||
trailing: Icon(Icons.exit_to_app),
|
||||
title: Text(L10n.of(context).logout),
|
||||
|
|
25
pubspec.lock
25
pubspec.lock
|
@ -248,6 +248,13 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.5.0"
|
||||
flutter_cache_manager:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: flutter_cache_manager
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.4.1"
|
||||
flutter_keyboard_visibility:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -479,7 +486,7 @@ packages:
|
|||
name: matrix_link_text
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.1.4"
|
||||
version: "0.1.5"
|
||||
memoryfilepicker:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -720,6 +727,13 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.24.1"
|
||||
sentry:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: sentry
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.0.1"
|
||||
share:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -921,6 +935,13 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.1.2"
|
||||
usage:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: usage
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.4.2"
|
||||
uuid:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -1000,4 +1021,4 @@ packages:
|
|||
version: "0.1.2"
|
||||
sdks:
|
||||
dart: ">=2.10.0-0.0.dev <2.10.0"
|
||||
flutter: ">=1.18.0-6.0.pre <2.0.0"
|
||||
flutter: ">=1.20.0 <2.0.0"
|
||||
|
|
|
@ -70,6 +70,7 @@ dependencies:
|
|||
url: https://gitlab.com/famedly/libraries/native_imaging.git
|
||||
ref: master
|
||||
flutter_blurhash: ^0.5.0
|
||||
sentry: ">=3.0.0 <4.0.0"
|
||||
|
||||
|
||||
dev_dependencies:
|
||||
|
|
Loading…
Reference in a new issue