- 登录: QQ/163/126/189/搜狐/Gmail/Outlook/Yahoo/iCloud/企业邮/自定义, 自动识别+测试连接 - 收信: IMAP 多文件夹同步/未读/星标/搜索(本地+服务器) - 读信: HTML渲染/CID内嵌图/原文查看/附件下载 - 写信: 收件人/抄送/密送/附件/富文本/草稿/回复转发 - 存储: SQLite + 系统安全存储(DPAPI/Keychain/Keystore) - 测试: 单元测试 + Mock IMAP/SMTP 服务器集成测试(23项全过) - 可迁移: Windows/Android/iOS/macOS/Linux 一套代码
35 lines
940 B
Dart
35 lines
940 B
Dart
import 'package:flutter/material.dart';
|
|
|
|
import 'ui/app_state.dart';
|
|
import 'ui/pages/home_page.dart';
|
|
import 'ui/theme.dart';
|
|
|
|
Future<void> main() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
await AppState.instance.init();
|
|
final dark = await AppState.instance.getDarkMode();
|
|
AppState.instance.darkMode.value = dark;
|
|
runApp(const MailHubApp());
|
|
}
|
|
|
|
class MailHubApp extends StatelessWidget {
|
|
const MailHubApp({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return ValueListenableBuilder<bool>(
|
|
valueListenable: AppState.instance.darkMode,
|
|
builder: (context, dark, _) {
|
|
return MaterialApp(
|
|
title: 'MailHub 邮箱客户端',
|
|
debugShowCheckedModeBanner: false,
|
|
theme: AppTheme.light(),
|
|
darkTheme: AppTheme.dark(),
|
|
themeMode: dark ? ThemeMode.dark : ThemeMode.light,
|
|
home: const HomePage(),
|
|
);
|
|
},
|
|
);
|
|
}
|
|
}
|