Android Feature Optimization and Updates
Build Android Release / Build Android (push) Failing after 7s

This commit is contained in:
2026-05-21 10:31:43 +08:00
parent 31acfd4e13
commit 1d9e0a831f
19 changed files with 2506 additions and 562 deletions
+34 -26
View File
@@ -18,6 +18,7 @@ import 'presentation/providers/upload_manager_provider.dart';
import 'presentation/providers/download_manager_provider.dart';
import 'presentation/providers/user_setting_provider.dart';
import 'presentation/providers/admin_provider.dart';
import 'presentation/providers/quick_access_provider.dart';
import 'presentation/providers/theme_provider.dart';
import 'services/upload_service.dart';
import 'services/api_service.dart';
@@ -70,7 +71,8 @@ void main() async {
// 退出当前新启动的进程
exit(0);
}
final String processName = await singleInstance.getProcessName(pid) ?? "Unknown";
final String processName =
await singleInstance.getProcessName(pid) ?? "Unknown";
final File? pidFile = await singleInstance.getPidFile(processName);
int port = FlutterSingleInstance.port;
@@ -80,17 +82,21 @@ void main() async {
final Map<String, dynamic> data = jsonDecode(content);
port = data['port'] ?? 0;
} catch (e) {
AppLogger.e("Get FlutterSingleInstance port has error: ${e.toString()}");
AppLogger.e(
"Get FlutterSingleInstance port has error: ${e.toString()}",
);
}
}
AppLogger.i("processName: $processName \npid: $pid \npidFile: ${pidFile.path.toString()} \nSingleInstance RPC address:port: ${addr.address}:$port");
AppLogger.i(
"processName: $processName \npid: $pid \npidFile: ${pidFile.path.toString()} \nSingleInstance RPC address:port: ${addr.address}:$port",
);
FlutterSingleInstance.onFocus = (metadata) async {
AppLogger.i("收到唤醒信号: $metadata");
await DesktopService.instance.showWindow();
};
await DesktopService.instance.initialize();
}
@@ -134,21 +140,25 @@ class CloudreveApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return
MultiProvider(
providers: [
ChangeNotifierProvider(create: (_) => ThemeProvider()..init()),
ChangeNotifierProvider(create: (_) => AuthProvider()..init()),
ChangeNotifierProvider(create: (_) => FileManagerProvider()),
ChangeNotifierProvider(create: (_) => NavigationProvider()),
ChangeNotifierProvider(create: (_) => UploadService()),
ChangeNotifierProvider(create: (_) => UploadManagerProvider()..initialize()),
ChangeNotifierProvider(create: (_) => DownloadManagerProvider()..initialize()),
ChangeNotifierProvider(create: (_) => UserSettingProvider()),
ChangeNotifierProvider(create: (_) => AdminProvider()),
],
child: const AppView(),
);
return MultiProvider(
providers: [
ChangeNotifierProvider(create: (_) => ThemeProvider()..init()),
ChangeNotifierProvider(create: (_) => AuthProvider()..init()),
ChangeNotifierProvider(create: (_) => FileManagerProvider()),
ChangeNotifierProvider(create: (_) => NavigationProvider()),
ChangeNotifierProvider(create: (_) => UploadService()),
ChangeNotifierProvider(
create: (_) => UploadManagerProvider()..initialize(),
),
ChangeNotifierProvider(
create: (_) => DownloadManagerProvider()..initialize(),
),
ChangeNotifierProvider(create: (_) => UserSettingProvider()),
ChangeNotifierProvider(create: (_) => AdminProvider()),
ChangeNotifierProvider(create: (_) => QuickAccessProvider()..load()),
],
child: const AppView(),
);
}
}
@@ -179,7 +189,9 @@ class AppView extends StatelessWidget {
Widget currentWidget = child;
if (Platform.isWindows || Platform.isLinux) {
currentWidget = Material(
color: themeProvider.isDark ? Colors.black.withValues(alpha: 0.92) : Colors.white.withValues(alpha: 0.92),
color: themeProvider.isDark
? Colors.black.withValues(alpha: 0.92)
: Colors.white.withValues(alpha: 0.92),
child: ValueListenableBuilder<bool>(
valueListenable: videoFullscreenNotifier,
builder: (context, isVideoFullscreen, child) {
@@ -190,13 +202,9 @@ class AppView extends StatelessWidget {
children: [
const SizedBox(
height: 32,
child: DragToMoveArea(
child: DesktopTitleBar(),
),
),
Expanded(
child: child!,
child: DragToMoveArea(child: DesktopTitleBar()),
),
Expanded(child: child!),
],
);
},