feature: HTPC mode startup argument (#358)

Co-authored-by: PartyDonut <PartyDonut@users.noreply.github.com>
This commit is contained in:
PartyDonut 2025-06-01 15:30:34 +02:00 committed by GitHub
parent a8795cf0c9
commit 69a5e3db7a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
24 changed files with 416 additions and 151 deletions

View file

@ -19,7 +19,9 @@ import 'package:universal_html/html.dart' as html;
import 'package:window_manager/window_manager.dart';
import 'package:fladder/models/account_model.dart';
import 'package:fladder/models/settings/arguments_model.dart';
import 'package:fladder/models/syncing/i_synced_item.dart';
import 'package:fladder/providers/arguments_provider.dart';
import 'package:fladder/providers/crash_log_provider.dart';
import 'package:fladder/providers/settings/client_settings_provider.dart';
import 'package:fladder/providers/shared_provider.dart';
@ -51,7 +53,7 @@ Future<Map<String, dynamic>> loadConfig() async {
return jsonDecode(configString);
}
void main() async {
void main(List<String> args) async {
WidgetsFlutterBinding.ensureInitialized();
final crashProvider = CrashLogNotifier();
@ -95,6 +97,7 @@ void main() async {
sharedPreferencesProvider.overrideWith((ref) => sharedPreferences),
applicationInfoProvider.overrideWith((ref) => applicationInfo),
crashLogProvider.overrideWith((ref) => crashProvider),
argumentsStateProvider.overrideWith((ref) => ArgumentsModel.fromArguments(args)),
syncProvider.overrideWith((ref) => SyncNotifier(
ref,
!kIsWeb
@ -234,6 +237,10 @@ class _MainState extends ConsumerState<Main> with WindowListener, WidgetsBinding
windowManager.waitUntilReadyToShow(windowOptions, () async {
await windowManager.show();
await windowManager.focus();
final startupArguments = ref.read(argumentsStateProvider);
if (startupArguments.htpcMode && !(await windowManager.isFullScreen())) {
await windowManager.setFullScreen(true);
}
});
} else {
SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge, overlays: []);