calls/lib/main.dart
Daniel Ponte 66716c0510 Something mostly working.
Squashed commit of the following:

commit b15263546e
Author: Daniel Ponte <amigan@gmail.com>
Date:   Wed Aug 14 09:29:49 2024 -0400

    save bytes source class

commit 3a6ac88685
Author: Daniel Ponte <amigan@gmail.com>
Date:   Wed Aug 14 09:26:28 2024 -0400

    safearea

commit c411a007e6
Author: Daniel Ponte <amigan@gmail.com>
Date:   Wed Aug 14 08:33:11 2024 -0400

    try to play

commit 5a8e7c7690
Author: Daniel Ponte <amigan@gmail.com>
Date:   Wed Aug 14 08:29:53 2024 -0400

    protoc

commit c776d37765
Author: Daniel Ponte <amigan@gmail.com>
Date:   Wed Aug 14 08:28:26 2024 -0400

    wip

commit 0d150d73d8
Author: Daniel Ponte <amigan@gmail.com>
Date:   Tue Aug 13 23:07:35 2024 -0400

    big huge wip

commit db99eeb43a
Author: Daniel Ponte <amigan@gmail.com>
Date:   Tue Aug 13 21:03:42 2024 -0400

    big wip

commit 5af1b90ccc
Author: Daniel Ponte <amigan@gmail.com>
Date:   Tue Aug 13 20:04:37 2024 -0400

    WIP

commit 08183de44f
Author: Daniel Ponte <amigan@gmail.com>
Date:   Tue Aug 13 10:41:06 2024 -0400

    notifier

commit 5f92cf977b
Author: Daniel Ponte <amigan@gmail.com>
Date:   Mon Aug 12 09:13:43 2024 -0400

    wip

commit d6d590684d
Author: Daniel Ponte <amigan@gmail.com>
Date:   Mon Aug 12 07:47:08 2024 -0400

    fix

commit 9d58f4fa7f
Author: Daniel Ponte <amigan@gmail.com>
Date:   Sun Aug 11 23:59:01 2024 -0400

    wip

commit d61ce79c29
Author: Daniel Ponte <amigan@gmail.com>
Date:   Sun Aug 11 19:23:16 2024 -0400

    wip

commit f4ea5916b8
Author: Daniel Ponte <amigan@gmail.com>
Date:   Sat Aug 10 17:07:52 2024 -0400

    macos stuff

commit fe8bdc13a5
Author: Daniel Ponte <amigan@gmail.com>
Date:   Sat Aug 10 17:07:04 2024 -0400

    add default case

commit 9bc788035b
Author: Daniel Ponte <amigan@gmail.com>
Date:   Sat Aug 10 16:38:46 2024 -0400

    wip

commit 8e99afeb31
Author: Daniel Ponte <amigan@gmail.com>
Date:   Sat Aug 10 14:36:08 2024 -0400

    Controller

commit e64948bef5
Author: Daniel Ponte <amigan@gmail.com>
Date:   Sat Aug 10 14:24:28 2024 -0400

    ws
2024-08-14 09:30:27 -04:00

78 lines
1.9 KiB
Dart

import 'package:flutter/material.dart';
import 'views/radio.dart';
import 'package:provider/provider.dart';
import 'views/login.dart';
import 'controller/stillbox.dart';
void main() {
runApp(ChangeNotifierProvider(
create: (context) => Stillbox(),
child: const CallsApp(),
));
}
class CallsApp extends StatelessWidget {
const CallsApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Stillbox Calls',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
darkTheme: ThemeData(
brightness: Brightness.dark,
),
themeMode: ThemeMode.dark,
home: const CallsHome(),
);
}
}
class CallsHome extends StatefulWidget {
const CallsHome({super.key});
@override
State<StatefulWidget> createState() => CallsHomeState();
}
class CallsHomeState extends State<CallsHome> {
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) {
loadData();
});
}
Future<void> loadData() async {
// Ensure the navigation happens in the context of this widget's subtree
try {
final sb = Provider.of<Stillbox>(context, listen: false);
await sb.getBearer();
await sb.connect();
} catch (e) {
if (mounted) {
Navigator.pushReplacement(
context,
PageRouteBuilder(
pageBuilder: (context, animation, secondaryAnimation) =>
const Login(),
transitionsBuilder:
(context, animation, secondaryAnimation, child) {
return child;
},
transitionDuration: const Duration(milliseconds: 0),
),
);
}
}
}
@override
Widget build(BuildContext context) {
return const MainRadio(title: 'Stillbox');
}
}