got the json parts needed
This commit is contained in:
parent
55d4c2cbed
commit
45c605f464
@ -1,5 +1,3 @@
|
|||||||
// import 'dart:ffi';
|
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:http/http.dart' as http;
|
import 'package:http/http.dart' as http;
|
||||||
import 'dart:convert';
|
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 {
|
Future<String> _getEmailContent(String id) async {
|
||||||
String content = r"""
|
String content = r"""
|
||||||
|
|
||||||
""";
|
""";
|
||||||
String restcontent = "";
|
// String restcontent = "";
|
||||||
try {
|
try {
|
||||||
var url = Uri.http('127.0.0.1:3001', 'email', {'id': id});
|
var url = Uri.http('127.0.0.1:3001', 'email', {'id': id});
|
||||||
// print(url);
|
// print(url);
|
||||||
@ -189,28 +159,50 @@ class _EmailPageState extends State<EmailPage> {
|
|||||||
if (response.statusCode == 200) {
|
if (response.statusCode == 200) {
|
||||||
print('ok');
|
print('ok');
|
||||||
content = response.body;
|
content = response.body;
|
||||||
try {
|
// try {
|
||||||
var restUrl =
|
// var restUrl =
|
||||||
Uri.http('127.0.0.1:3001', 'get_thread_messages', {'id': id});
|
// Uri.http('127.0.0.1:3001', 'get_thread_messages', {'id': id});
|
||||||
print(restUrl);
|
// // print(restUrl);
|
||||||
var restresponse = await http.get(restUrl);
|
// var restresponse = await http.get(restUrl);
|
||||||
print(restresponse.statusCode);
|
// // print(restresponse.statusCode);
|
||||||
if (restresponse.statusCode == 200) {
|
// if (restresponse.statusCode == 200) {
|
||||||
print("ok squared");
|
// print("ok squared");
|
||||||
restcontent = restresponse.body;
|
// // restcontent = restresponse.body;
|
||||||
}
|
// }
|
||||||
} catch (i) {
|
// } catch (i) {
|
||||||
print('jsoncontent caught error: $i');
|
// print('jsoncontent caught error: $i');
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
print('_getEmailContent caught error: $e');
|
print('_getEmailContent caught error: $e');
|
||||||
}
|
}
|
||||||
// print(content);
|
// print(content);
|
||||||
print(restcontent);
|
// print(restcontent);
|
||||||
return content;
|
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 {
|
Future<List<Widget>> _getDrawerItems() async {
|
||||||
List<String> drawerItems = [];
|
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 {
|
class EmailListScreen extends StatelessWidget {
|
||||||
final List emails;
|
final List emails;
|
||||||
final Future<String> Function(String) getEmailContent;
|
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
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
@ -303,11 +302,28 @@ class EmailListScreen extends StatelessWidget {
|
|||||||
trailing: Text(emails[index].date.toString()),
|
trailing: Text(emails[index].date.toString()),
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
String emailContent = await getEmailContent(emails[index].id);
|
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(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
builder: (context) =>
|
builder: (context) => EmailView(
|
||||||
EmailView(emailContent: emailContent)),
|
emailContent: emailContent,
|
||||||
|
jsonEmail: jsonContent,
|
||||||
|
)),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -321,106 +337,21 @@ class EmailListScreen extends StatelessWidget {
|
|||||||
|
|
||||||
class EmailView extends StatefulWidget {
|
class EmailView extends StatefulWidget {
|
||||||
final String emailContent;
|
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
|
@override
|
||||||
_EmailViewState createState() => _EmailViewState();
|
_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> {
|
class _EmailViewState extends State<EmailView> {
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
|
|
||||||
ui.platformViewRegistry.registerViewFactory(
|
ui.platformViewRegistry.registerViewFactory(
|
||||||
'html-view33',
|
'html-view33',
|
||||||
(int viewId) => html.IFrameElement()
|
(int viewId) => html.IFrameElement()
|
||||||
@ -435,10 +366,12 @@ class _EmailViewState extends State<EmailView> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
title: Text('email content'),
|
title: Text(widget.name),
|
||||||
),
|
),
|
||||||
body: HtmlElementView(
|
body: Container(
|
||||||
viewType: 'html-view33',
|
child: HtmlElementView(
|
||||||
|
viewType: 'html-view33',
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user