mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-05-25 11:52:12 +00:00
improve response viewer
Some checks are pending
Flutter analyze & test / flutter_analyze_and_test (push) Waiting to run
Some checks are pending
Flutter analyze & test / flutter_analyze_and_test (push) Waiting to run
This commit is contained in:
parent
cd5409d021
commit
1ad304ec2e
5 changed files with 54 additions and 16 deletions
|
|
@ -3457,6 +3457,18 @@ abstract class AppLocalizations {
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Maximum anti-phishing defense. Recommended for *journalists & public figures*.'**
|
/// **'Maximum anti-phishing defense. Recommended for *journalists & public figures*.'**
|
||||||
String get onboardingProfileSelectionStrictDesc;
|
String get onboardingProfileSelectionStrictDesc;
|
||||||
|
|
||||||
|
/// No description provided for @replyFlameRestored.
|
||||||
|
///
|
||||||
|
/// In en, this message translates to:
|
||||||
|
/// **'Flames restored'**
|
||||||
|
String get replyFlameRestored;
|
||||||
|
|
||||||
|
/// No description provided for @replyAskAFriend.
|
||||||
|
///
|
||||||
|
/// In en, this message translates to:
|
||||||
|
/// **'Ask a friend'**
|
||||||
|
String get replyAskAFriend;
|
||||||
}
|
}
|
||||||
|
|
||||||
class _AppLocalizationsDelegate
|
class _AppLocalizationsDelegate
|
||||||
|
|
|
||||||
|
|
@ -1967,4 +1967,10 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
@override
|
@override
|
||||||
String get onboardingProfileSelectionStrictDesc =>
|
String get onboardingProfileSelectionStrictDesc =>
|
||||||
'Maximaler Schutz vor Phishing. Empfohlen für *Journalisten & Personen des öffentlichen Lebens*.';
|
'Maximaler Schutz vor Phishing. Empfohlen für *Journalisten & Personen des öffentlichen Lebens*.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get replyFlameRestored => 'Flammen wiederhergestellt';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get replyAskAFriend => 'Einen Freund fragen';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1952,4 +1952,10 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
@override
|
@override
|
||||||
String get onboardingProfileSelectionStrictDesc =>
|
String get onboardingProfileSelectionStrictDesc =>
|
||||||
'Maximum anti-phishing defense. Recommended for *journalists & public figures*.';
|
'Maximum anti-phishing defense. Recommended for *journalists & public figures*.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get replyFlameRestored => 'Flames restored';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get replyAskAFriend => 'Ask a friend';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit 18aa5e1afc76a20ded04e9d2c4321fec1c91183d
|
Subproject commit 5f60fcc10450b40f75b3c170d27caa4398d84e4a
|
||||||
|
|
@ -4,6 +4,7 @@ import 'package:twonly/src/database/daos/contacts.dao.dart';
|
||||||
import 'package:twonly/src/database/tables/mediafiles.table.dart';
|
import 'package:twonly/src/database/tables/mediafiles.table.dart';
|
||||||
import 'package:twonly/src/database/tables/messages.table.dart';
|
import 'package:twonly/src/database/tables/messages.table.dart';
|
||||||
import 'package:twonly/src/database/twonly.db.dart';
|
import 'package:twonly/src/database/twonly.db.dart';
|
||||||
|
import 'package:twonly/src/model/protobuf/client/generated/data.pb.dart';
|
||||||
import 'package:twonly/src/services/mediafiles/mediafile.service.dart';
|
import 'package:twonly/src/services/mediafiles/mediafile.service.dart';
|
||||||
import 'package:twonly/src/utils/misc.dart';
|
import 'package:twonly/src/utils/misc.dart';
|
||||||
import 'package:twonly/src/visual/views/chats/chat_messages.view.dart';
|
import 'package:twonly/src/visual/views/chats/chat_messages.view.dart';
|
||||||
|
|
@ -39,10 +40,8 @@ class _ResponseContainerState extends State<ResponseContainer> {
|
||||||
void didChangeDependencies() {
|
void didChangeDependencies() {
|
||||||
super.didChangeDependencies();
|
super.didChangeDependencies();
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
final messageBox =
|
final messageBox = _message.currentContext?.findRenderObject() as RenderBox?;
|
||||||
_message.currentContext?.findRenderObject() as RenderBox?;
|
final previewBox = _preview.currentContext?.findRenderObject() as RenderBox?;
|
||||||
final previewBox =
|
|
||||||
_preview.currentContext?.findRenderObject() as RenderBox?;
|
|
||||||
if (messageBox == null || previewBox == null) {
|
if (messageBox == null || previewBox == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -65,9 +64,7 @@ class _ResponseContainerState extends State<ResponseContainer> {
|
||||||
return widget.child!;
|
return widget.child!;
|
||||||
}
|
}
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: widget.scrollToMessage == null
|
onTap: widget.scrollToMessage == null ? null : () => widget.scrollToMessage!(widget.msg.quotesMessageId!),
|
||||||
? null
|
|
||||||
: () => widget.scrollToMessage!(widget.msg.quotesMessageId!),
|
|
||||||
child: Container(
|
child: Container(
|
||||||
constraints: BoxConstraints(
|
constraints: BoxConstraints(
|
||||||
maxWidth: MediaQuery.of(context).size.width * 0.8,
|
maxWidth: MediaQuery.of(context).size.width * 0.8,
|
||||||
|
|
@ -143,16 +140,12 @@ class _ResponsePreviewState extends State<ResponsePreview> {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> initAsync() async {
|
Future<void> initAsync() async {
|
||||||
_message ??= await twonlyDB.messagesDao
|
_message ??= await twonlyDB.messagesDao.getMessageById(widget.messageId!).getSingleOrNull();
|
||||||
.getMessageById(widget.messageId!)
|
|
||||||
.getSingleOrNull();
|
|
||||||
if (_message?.mediaId != null) {
|
if (_message?.mediaId != null) {
|
||||||
_mediaService = await MediaFileService.fromMediaId(_message!.mediaId!);
|
_mediaService = await MediaFileService.fromMediaId(_message!.mediaId!);
|
||||||
}
|
}
|
||||||
if (_message?.senderId != null) {
|
if (_message?.senderId != null) {
|
||||||
final contact = await twonlyDB.contactsDao
|
final contact = await twonlyDB.contactsDao.getContactByUserId(_message!.senderId!).getSingleOrNull();
|
||||||
.getContactByUserId(_message!.senderId!)
|
|
||||||
.getSingleOrNull();
|
|
||||||
if (contact != null) {
|
if (contact != null) {
|
||||||
_username = getContactDisplayName(contact);
|
_username = getContactDisplayName(contact);
|
||||||
}
|
}
|
||||||
|
|
@ -186,6 +179,28 @@ class _ResponsePreviewState extends State<ResponsePreview> {
|
||||||
subtitle = 'Audio';
|
subtitle = 'Audio';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (_message!.type == MessageType.contacts.name) {
|
||||||
|
subtitle = context.lang.contacts;
|
||||||
|
}
|
||||||
|
if (_message!.type == MessageType.restoreFlameCounter.name) {
|
||||||
|
if (_message!.additionalMessageData != null) {
|
||||||
|
try {
|
||||||
|
final data = AdditionalMessageData.fromBuffer(
|
||||||
|
_message!.additionalMessageData!,
|
||||||
|
);
|
||||||
|
subtitle = context.lang.chatEntryFlameRestored(
|
||||||
|
data.restoredFlameCounter.toInt(),
|
||||||
|
);
|
||||||
|
} catch (e) {
|
||||||
|
subtitle = context.lang.replyFlameRestored;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
subtitle = context.lang.replyFlameRestored;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (_message!.type == MessageType.askAboutUser.name) {
|
||||||
|
subtitle = context.lang.replyAskAFriend;
|
||||||
|
}
|
||||||
|
|
||||||
if (_message!.senderId == null) {
|
if (_message!.senderId == null) {
|
||||||
_username = context.lang.you;
|
_username = context.lang.you;
|
||||||
|
|
@ -248,8 +263,7 @@ class _ResponsePreviewState extends State<ResponsePreview> {
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
if (_mediaService != null &&
|
if (_mediaService != null && _mediaService!.mediaFile.type != MediaType.audio)
|
||||||
_mediaService!.mediaFile.type != MediaType.audio)
|
|
||||||
SizedBox(
|
SizedBox(
|
||||||
height: widget.showBorder ? 100 : 210,
|
height: widget.showBorder ? 100 : 210,
|
||||||
child: Image.file(
|
child: Image.file(
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue