d551f41b41
- Switch from bundled iperf3 binary (Process.start) to JNI compilation - iperf3 3.21 source API was incompatible (start_time, iperf_strerror, etc.) - iperf3 3.19 source is proven to work (used by CellularLab) - CMakeLists.txt updated: config.h generated into cpp/iperf/ for correct include paths - iperf_jni.c fixed for 3.19 API (no start_time on iperf_test) - getTestProgress() returns g_test->duration as fallback (no real-time elapsed tracking yet) - NDK CMake pinned to 3.22.1 - UI layer updated: removed Iperf3BinaryPathProvider references - Tests updated: TestRunViewModelTest matches new service interface - pubspec.yaml: removed iperf3 assets bundle, added http dependency - AndroidManifest: INTERNET permission (needed for hostname resolution)
29 lines
783 B
Dart
29 lines
783 B
Dart
import 'package:flutter/material.dart';
|
|
import 'package:iperf3gui/data/services/iperf3_service.dart';
|
|
import 'package:iperf3gui/ui/features/test_run/test_run_screen.dart';
|
|
|
|
/// Application entry point.
|
|
///
|
|
/// iperf3 is now compiled as a native shared library (libiperf3jni.so)
|
|
/// and accessed via JNI — no binary extraction or chmod needed.
|
|
Future<void> main() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
runApp(const Iperf3GuiApp());
|
|
}
|
|
|
|
class Iperf3GuiApp extends StatelessWidget {
|
|
const Iperf3GuiApp({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return MaterialApp(
|
|
title: 'iperf3-gui',
|
|
theme: ThemeData(
|
|
colorSchemeSeed: Colors.blue,
|
|
useMaterial3: true,
|
|
),
|
|
home: const TestRunScreen(),
|
|
);
|
|
}
|
|
}
|