got the json parts needed
This commit is contained in:
		
							parent
							
								
									55d4c2cbed
								
							
						
					
					
						commit
						45c605f464
					
				
					 1 changed files with 76 additions and 143 deletions
				
			
		| 
						 | 
				
			
			@ -1,5 +1,3 @@
 | 
			
		|||
// import 'dart:ffi';
 | 
			
		||||
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:http/http.dart' as http;
 | 
			
		||||
import 'dart:convert';
 | 
			
		||||
| 
						 | 
				
			
			@ -148,39 +146,11 @@ class _EmailPageState extends State<EmailPage> {
 | 
			
		|||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Future<void> getEmailJson(String threadId) async {
 | 
			
		||||
  //   // List< jsonTypeShit = "";
 | 
			
		||||
  //   try {
 | 
			
		||||
  //     var url = Uri.http(
 | 
			
		||||
  //         '127.0.0.1:3001', 'get_thread_messages', {'id': threadId.toString()});
 | 
			
		||||
  //     // print(url);
 | 
			
		||||
  //     var response = await http.get(url);
 | 
			
		||||
  //     // print(response.body);
 | 
			
		||||
  //     if (response.statusCode == 200) {
 | 
			
		||||
  //       List<dynamic> messagesJson = jsonDecode(response.body);
 | 
			
		||||
  //       print(messagesJson);
 | 
			
		||||
  //       print("1");
 | 
			
		||||
  //       List<SerializableMessage> messages =
 | 
			
		||||
  //           messagesJson.map((mj) => SerializableMessage.fromJson(mj)).toList();
 | 
			
		||||
  //       // allEmails.addAll(messages);
 | 
			
		||||
 | 
			
		||||
  //       print(messages);
 | 
			
		||||
  //       // jsonTypeShit =  messages;
 | 
			
		||||
  //     } else {
 | 
			
		||||
  //       throw Exception(
 | 
			
		||||
  //           'Failed to fetch thread messages for thread ID: $threadId');
 | 
			
		||||
  //     }
 | 
			
		||||
  //   } catch (e) {
 | 
			
		||||
  //     print('Error fetching thread messages: $e');
 | 
			
		||||
  //   }
 | 
			
		||||
  //   // return(messages)
 | 
			
		||||
  // }
 | 
			
		||||
 | 
			
		||||
  Future<String> _getEmailContent(String id) async {
 | 
			
		||||
    String content = r"""
 | 
			
		||||
 | 
			
		||||
    """;
 | 
			
		||||
    String restcontent = "";
 | 
			
		||||
    // String restcontent = "";
 | 
			
		||||
    try {
 | 
			
		||||
      var url = Uri.http('127.0.0.1:3001', 'email', {'id': id});
 | 
			
		||||
      // print(url);
 | 
			
		||||
| 
						 | 
				
			
			@ -189,28 +159,50 @@ class _EmailPageState extends State<EmailPage> {
 | 
			
		|||
      if (response.statusCode == 200) {
 | 
			
		||||
        print('ok');
 | 
			
		||||
        content = response.body;
 | 
			
		||||
        try {
 | 
			
		||||
          var restUrl =
 | 
			
		||||
              Uri.http('127.0.0.1:3001', 'get_thread_messages', {'id': id});
 | 
			
		||||
          print(restUrl);
 | 
			
		||||
          var restresponse = await http.get(restUrl);
 | 
			
		||||
          print(restresponse.statusCode);
 | 
			
		||||
          if (restresponse.statusCode == 200) {
 | 
			
		||||
            print("ok squared");
 | 
			
		||||
            restcontent = restresponse.body;
 | 
			
		||||
          }
 | 
			
		||||
        } catch (i) {
 | 
			
		||||
          print('jsoncontent caught error: $i');
 | 
			
		||||
        }
 | 
			
		||||
        // try {
 | 
			
		||||
        //   var restUrl =
 | 
			
		||||
        //       Uri.http('127.0.0.1:3001', 'get_thread_messages', {'id': id});
 | 
			
		||||
        //   // print(restUrl);
 | 
			
		||||
        //   var restresponse = await http.get(restUrl);
 | 
			
		||||
        //   // print(restresponse.statusCode);
 | 
			
		||||
        //   if (restresponse.statusCode == 200) {
 | 
			
		||||
        //     print("ok squared");
 | 
			
		||||
        //     // restcontent = restresponse.body;
 | 
			
		||||
        //   }
 | 
			
		||||
        // } catch (i) {
 | 
			
		||||
        //   print('jsoncontent caught error: $i');
 | 
			
		||||
        // }
 | 
			
		||||
      }
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      print('_getEmailContent caught error: $e');
 | 
			
		||||
    }
 | 
			
		||||
    // print(content);
 | 
			
		||||
    print(restcontent);
 | 
			
		||||
    // print(restcontent);
 | 
			
		||||
    return content;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<String> _getThreadMessagesJson(String threadId) async {
 | 
			
		||||
    String jsonResponse = "";
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
      var url =
 | 
			
		||||
          Uri.http('127.0.0.1:3001', 'get_thread_messages', {'id': threadId});
 | 
			
		||||
      // print(url);
 | 
			
		||||
      var response = await http.get(url);
 | 
			
		||||
      // print(response.statusCode);
 | 
			
		||||
      // print(response.body);
 | 
			
		||||
      if (response.statusCode == 200) {
 | 
			
		||||
        jsonResponse = response.body; // Here you get the JSON response
 | 
			
		||||
      } else {
 | 
			
		||||
        throw Exception('Failed to load thread messages');
 | 
			
		||||
      }
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      print('_getThreadMessagesJson caught error: $e');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return jsonResponse; // Returns the JSON string
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<List<Widget>> _getDrawerItems() async {
 | 
			
		||||
    List<String> drawerItems = [];
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -270,7 +262,10 @@ class _EmailPageState extends State<EmailPage> {
 | 
			
		|||
          },
 | 
			
		||||
        ),
 | 
			
		||||
      ),
 | 
			
		||||
      body: EmailListScreen(emails: emails, getEmailContent: _getEmailContent),
 | 
			
		||||
      body: EmailListScreen(
 | 
			
		||||
          emails: emails,
 | 
			
		||||
          getEmailContent: _getEmailContent,
 | 
			
		||||
          getJsonEmail: _getThreadMessagesJson),
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -278,8 +273,12 @@ class _EmailPageState extends State<EmailPage> {
 | 
			
		|||
class EmailListScreen extends StatelessWidget {
 | 
			
		||||
  final List emails;
 | 
			
		||||
  final Future<String> Function(String) getEmailContent;
 | 
			
		||||
  final Future<String> Function(String) getJsonEmail;
 | 
			
		||||
 | 
			
		||||
  EmailListScreen({required this.emails, required this.getEmailContent});
 | 
			
		||||
  EmailListScreen(
 | 
			
		||||
      {required this.emails,
 | 
			
		||||
      required this.getEmailContent,
 | 
			
		||||
      required this.getJsonEmail});
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
| 
						 | 
				
			
			@ -303,11 +302,28 @@ class EmailListScreen extends StatelessWidget {
 | 
			
		|||
              trailing: Text(emails[index].date.toString()),
 | 
			
		||||
              onTap: () async {
 | 
			
		||||
                String emailContent = await getEmailContent(emails[index].id);
 | 
			
		||||
                String jsonContent =
 | 
			
		||||
                    await getJsonEmail(emails[index].uid.toString());
 | 
			
		||||
                // print(emails[index]);
 | 
			
		||||
                String from = emails[index].from;
 | 
			
		||||
                String name = emails[index].name;
 | 
			
		||||
                String to = emails[index].to;
 | 
			
		||||
                String cc = emails[index].cc;
 | 
			
		||||
                String hash = emails[index].hash;
 | 
			
		||||
                String subject = emails[index].subject;
 | 
			
		||||
                String date = emails[index].date;
 | 
			
		||||
                String uid = emails[index].uid;
 | 
			
		||||
                String list = emails[index].list;
 | 
			
		||||
                String id = emails[index].id;
 | 
			
		||||
                String in_reply_to = emails[index].in_reply_to;
 | 
			
		||||
                // String jsonbuilt = 
 | 
			
		||||
                Navigator.push(
 | 
			
		||||
                  context,
 | 
			
		||||
                  MaterialPageRoute(
 | 
			
		||||
                      builder: (context) =>
 | 
			
		||||
                          EmailView(emailContent: emailContent)),
 | 
			
		||||
                      builder: (context) => EmailView(
 | 
			
		||||
                            emailContent: emailContent,
 | 
			
		||||
                            jsonEmail: jsonContent,
 | 
			
		||||
                          )),
 | 
			
		||||
                );
 | 
			
		||||
              });
 | 
			
		||||
        },
 | 
			
		||||
| 
						 | 
				
			
			@ -321,106 +337,21 @@ class EmailListScreen extends StatelessWidget {
 | 
			
		|||
 | 
			
		||||
class EmailView extends StatefulWidget {
 | 
			
		||||
  final String emailContent;
 | 
			
		||||
  final String jsonEmail;
 | 
			
		||||
 | 
			
		||||
  const EmailView({Key? key, required this.emailContent}) : super(key: key);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  const EmailView(
 | 
			
		||||
      {Key? key, required this.emailContent, required this.jsonEmail})
 | 
			
		||||
      : super(key: key);
 | 
			
		||||
  @override
 | 
			
		||||
  _EmailViewState createState() => _EmailViewState();
 | 
			
		||||
 | 
			
		||||
  // @override
 | 
			
		||||
  // void initState(){
 | 
			
		||||
  //   ui.platformViewRegistry.registerViewFactory(
 | 
			
		||||
  //         'html-view33',
 | 
			
		||||
  //         (int viewId) => html.IFrameElement()
 | 
			
		||||
  //       ..width = '100%'
 | 
			
		||||
  //       ..height = '100%'
 | 
			
		||||
  //       ..srcdoc = emailContent
 | 
			
		||||
  //       ..style.border = 'none');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//   @override
 | 
			
		||||
//   Widget build(BuildContext context) {
 | 
			
		||||
//     return Scaffold(
 | 
			
		||||
//       appBar: AppBar(
 | 
			
		||||
//         title: Text('Email Content'),
 | 
			
		||||
//       ),
 | 
			
		||||
//       // body: SingleChildScrollView(
 | 
			
		||||
//       //   child: Padding(
 | 
			
		||||
//       //     padding: const EdgeInsets.all(16.0),
 | 
			
		||||
//       //     child: HtmlWidget(
 | 
			
		||||
//       //       emailContent,
 | 
			
		||||
//       //       onErrorBuilder: (context, element, error) =>
 | 
			
		||||
//       //           Text('$element error: $error'),
 | 
			
		||||
//       //       onLoadingBuilder: (context, element, loadingProgress) =>
 | 
			
		||||
//       //           CircularProgressIndicator(),
 | 
			
		||||
//       //       renderMode: RenderMode.column,
 | 
			
		||||
//       //       // webView: true,
 | 
			
		||||
//       //     ),
 | 
			
		||||
//       //   ),
 | 
			
		||||
//       // ),
 | 
			
		||||
//       // body: Center(
 | 
			
		||||
//       //   child: Html(
 | 
			
		||||
//       //     data: emailContent
 | 
			
		||||
//       //     )
 | 
			
		||||
//       //   ,
 | 
			
		||||
//       // ),
 | 
			
		||||
//       body: Center(
 | 
			
		||||
//         child: HtmlElementView(viewType: 'html-view33',),
 | 
			
		||||
//       ),
 | 
			
		||||
 | 
			
		||||
//     );
 | 
			
		||||
//   }
 | 
			
		||||
// }
 | 
			
		||||
 | 
			
		||||
// class HtmlContentWidget
 | 
			
		||||
 | 
			
		||||
// class HtmlIFrameView extends StatelessWidget {
 | 
			
		||||
//   final String emailContent;
 | 
			
		||||
 | 
			
		||||
//   const HtmlIFrameView({required this.emailContent});
 | 
			
		||||
 | 
			
		||||
//   @override
 | 
			
		||||
//   Widget build(BuildContext context) {
 | 
			
		||||
//     return HtmlElementView(viewType: 'html-view');
 | 
			
		||||
//   }
 | 
			
		||||
// }
 | 
			
		||||
 | 
			
		||||
// class HtmlElementView extends StatelessWidget {
 | 
			
		||||
//   final String emailContent;
 | 
			
		||||
 | 
			
		||||
//   const HtmlElementView({required this.emailContent});
 | 
			
		||||
 | 
			
		||||
//   @override
 | 
			
		||||
//   Widget build(BuildContext context) {
 | 
			
		||||
//     return IFrameElementWidget(emailContent: emailContent);
 | 
			
		||||
//   }
 | 
			
		||||
// }
 | 
			
		||||
 | 
			
		||||
// class IFrameElementWidget extends StatelessWidget {
 | 
			
		||||
//   final String emailContent;
 | 
			
		||||
 | 
			
		||||
//   const IFrameElementWidget({required this.emailContent});
 | 
			
		||||
 | 
			
		||||
//   @override
 | 
			
		||||
//   Widget build(BuildContext context) {
 | 
			
		||||
//     ui.platformViewRegistry.registerViewFactory(
 | 
			
		||||
//       'html-view',
 | 
			
		||||
//       (int viewId) => html.IFrameElement()
 | 
			
		||||
//         ..width = '100%'
 | 
			
		||||
//         ..height = '100%'
 | 
			
		||||
//         ..srcdoc = emailContent
 | 
			
		||||
//         ..style.border = 'none',
 | 
			
		||||
//     );
 | 
			
		||||
//     return HtmlElementView(
 | 
			
		||||
//       viewType: 'html-view',
 | 
			
		||||
//     );
 | 
			
		||||
//   }
 | 
			
		||||
// }
 | 
			
		||||
 | 
			
		||||
class _EmailViewState extends State<EmailView> {
 | 
			
		||||
  @override
 | 
			
		||||
  void initState() {
 | 
			
		||||
    super.initState();
 | 
			
		||||
 | 
			
		||||
    ui.platformViewRegistry.registerViewFactory(
 | 
			
		||||
      'html-view33',
 | 
			
		||||
      (int viewId) => html.IFrameElement()
 | 
			
		||||
| 
						 | 
				
			
			@ -435,11 +366,13 @@ class _EmailViewState extends State<EmailView> {
 | 
			
		|||
  Widget build(BuildContext context) {
 | 
			
		||||
    return Scaffold(
 | 
			
		||||
      appBar: AppBar(
 | 
			
		||||
        title: Text('email content'),
 | 
			
		||||
        title: Text(widget.name),
 | 
			
		||||
      ),
 | 
			
		||||
      body: HtmlElementView(
 | 
			
		||||
      body: Container(
 | 
			
		||||
        child: HtmlElementView(
 | 
			
		||||
          viewType: 'html-view33',
 | 
			
		||||
        ),
 | 
			
		||||
      ),
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue