LCOV - code coverage report
Current view: top level - lib/models/messages - quotedmessage.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 0 24 0.0 %
Date: 2026-07-15 19:28:30 Functions: 0 0 -

          Line data    Source code
       1             : import 'dart:convert';
       2             : 
       3             : import 'package:cwtch/models/message.dart';
       4             : import 'package:cwtch/models/messages/malformedmessage.dart';
       5             : import 'package:cwtch/widgets/malformedbubble.dart';
       6             : import 'package:cwtch/widgets/messageBubbleWidgetHelpers.dart';
       7             : import 'package:cwtch/widgets/messagerow.dart';
       8             : import 'package:cwtch/widgets/quotedmessage.dart';
       9             : import 'package:flutter/widgets.dart';
      10             : import 'package:provider/provider.dart';
      11             : 
      12             : import '../../settings.dart';
      13             : 
      14             : class QuotedMessageStructure {
      15             :   final String quotedHash;
      16             :   final String body;
      17           0 :   QuotedMessageStructure(this.quotedHash, this.body);
      18             : 
      19           0 :   Map<String, dynamic> toJson() => {'quotedHash': quotedHash, 'body': body};
      20             : }
      21             : 
      22             : class QuotedMessage extends Message {
      23             :   final MessageMetadata metadata;
      24             :   final String content;
      25           0 :   QuotedMessage(this.metadata, this.content);
      26             : 
      27           0 :   @override
      28             :   Widget getPreviewWidget(BuildContext context, {BoxConstraints? constraints}) {
      29           0 :     return ChangeNotifierProvider.value(
      30           0 :       value: this.metadata,
      31           0 :       builder: (bcontext, child) {
      32             :         try {
      33           0 :           dynamic message = jsonDecode(this.content);
      34           0 :           var content = message["body"];
      35           0 :           var formatMessages = Provider.of<Settings>(bcontext).isExperimentEnabled(FormattingExperiment);
      36           0 :           return compileMessageContentWidget(context, constraints ?? BoxConstraints.loose(MediaQuery.sizeOf(context)), false, content, FocusNode(), formatMessages, false);
      37             :         } catch (e) {
      38           0 :           return MalformedBubble();
      39             :         }
      40             :       },
      41             :     );
      42             :   }
      43             : 
      44           0 :   @override
      45             :   MessageMetadata getMetadata() {
      46           0 :     return this.metadata;
      47             :   }
      48             : 
      49           0 :   @override
      50             :   Widget getWidget(BuildContext context, Key key, int index) {
      51             :     try {
      52           0 :       dynamic message = jsonDecode(this.content);
      53             : 
      54           0 :       if (message["body"] == null || message["quotedHash"] == null) {
      55           0 :         return MalformedMessage(this.metadata).getWidget(context, key, index);
      56             :       }
      57             : 
      58           0 :       return ChangeNotifierProvider.value(
      59           0 :         value: this.metadata,
      60           0 :         builder: (bcontext, child) {
      61           0 :           return MessageRow(
      62           0 :             QuotedMessageBubble(message["body"], messageHandler(bcontext, metadata.profileOnion, metadata.conversationIdentifier, ByContentHash(message["quotedHash"]))),
      63             :             index,
      64             :             key: key,
      65             :           );
      66             :         },
      67             :       );
      68             :     } catch (e) {
      69           0 :       return MalformedMessage(this.metadata).getWidget(context, key, index);
      70             :     }
      71             :   }
      72             : }

Generated by: LCOV version 1.14