mirror of
https://github.com/amigan/calls.git
synced 2024-11-22 04:49:49 -05:00
Daniel Ponte
66716c0510
Squashed commit of the following: commitb15263546e
Author: Daniel Ponte <amigan@gmail.com> Date: Wed Aug 14 09:29:49 2024 -0400 save bytes source class commit3a6ac88685
Author: Daniel Ponte <amigan@gmail.com> Date: Wed Aug 14 09:26:28 2024 -0400 safearea commitc411a007e6
Author: Daniel Ponte <amigan@gmail.com> Date: Wed Aug 14 08:33:11 2024 -0400 try to play commit5a8e7c7690
Author: Daniel Ponte <amigan@gmail.com> Date: Wed Aug 14 08:29:53 2024 -0400 protoc commitc776d37765
Author: Daniel Ponte <amigan@gmail.com> Date: Wed Aug 14 08:28:26 2024 -0400 wip commit0d150d73d8
Author: Daniel Ponte <amigan@gmail.com> Date: Tue Aug 13 23:07:35 2024 -0400 big huge wip commitdb99eeb43a
Author: Daniel Ponte <amigan@gmail.com> Date: Tue Aug 13 21:03:42 2024 -0400 big wip commit5af1b90ccc
Author: Daniel Ponte <amigan@gmail.com> Date: Tue Aug 13 20:04:37 2024 -0400 WIP commit08183de44f
Author: Daniel Ponte <amigan@gmail.com> Date: Tue Aug 13 10:41:06 2024 -0400 notifier commit5f92cf977b
Author: Daniel Ponte <amigan@gmail.com> Date: Mon Aug 12 09:13:43 2024 -0400 wip commitd6d590684d
Author: Daniel Ponte <amigan@gmail.com> Date: Mon Aug 12 07:47:08 2024 -0400 fix commit9d58f4fa7f
Author: Daniel Ponte <amigan@gmail.com> Date: Sun Aug 11 23:59:01 2024 -0400 wip commitd61ce79c29
Author: Daniel Ponte <amigan@gmail.com> Date: Sun Aug 11 19:23:16 2024 -0400 wip commitf4ea5916b8
Author: Daniel Ponte <amigan@gmail.com> Date: Sat Aug 10 17:07:52 2024 -0400 macos stuff commitfe8bdc13a5
Author: Daniel Ponte <amigan@gmail.com> Date: Sat Aug 10 17:07:04 2024 -0400 add default case commit9bc788035b
Author: Daniel Ponte <amigan@gmail.com> Date: Sat Aug 10 16:38:46 2024 -0400 wip commit8e99afeb31
Author: Daniel Ponte <amigan@gmail.com> Date: Sat Aug 10 14:36:08 2024 -0400 Controller commite64948bef5
Author: Daniel Ponte <amigan@gmail.com> Date: Sat Aug 10 14:24:28 2024 -0400 ws
78 lines
1.9 KiB
Dart
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');
|
|
}
|
|
}
|