Phase 3 completed: Flutter MVP with live streaming and auto-refresh

This commit is contained in:
2026-03-18 11:07:21 +08:00
parent 1ca24b61a8
commit 8b0cdd4744
55 changed files with 3015 additions and 98 deletions

View File

@@ -0,0 +1,48 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../providers/settings_provider.dart';
class SettingsPage extends StatefulWidget {
@override
_SettingsPageState createState() => _SettingsPageState();
}
class _SettingsPageState extends State<SettingsPage> {
final _urlController = TextEditingController();
@override
void initState() {
super.initState();
_urlController.text = context.read<SettingsProvider>().baseUrl;
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Server Settings")),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
children: [
TextField(
controller: _urlController,
decoration: InputDecoration(
labelText: "Backend URL (e.g., http://127.0.0.1:8080)",
),
),
SizedBox(height: 20),
ElevatedButton(
onPressed: () {
context.read<SettingsProvider>().setBaseUrl(_urlController.text);
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text("Server URL Updated")),
);
},
child: Text("Save Settings"),
),
],
),
),
);
}
}