summaryrefslogtreecommitdiffstats
path: root/lib/page_home.dart
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2022-11-21 02:30:35 -0500
committerScott Murray <scott.murray@konsulko.com>2022-11-21 02:44:25 -0500
commite21709c9601209e26d09dea0a45e37f0636bb605 (patch)
tree6f7e9d1bda9126cc0dfe6ba401b40739715867e2 /lib/page_home.dart
parent1f5b482843291c17e3cbb265f59101f8d1874182 (diff)
Rework for use in Flutter demo platform image
Changes: - Converted to portrait orientation. - Application enumeration and launching+activation enabled via use of applaunchd gRPC API and agl-shell protocol platform channel plugin in the embedder. - Previous dashboard, hvac, media, etc. pages disabled. Some of the code has been kept for potential reuse. - Clock widget tweaked to fit in portrait mode navigation bar, and take text color argument. - Bluetooth, wifi, and phone signal icons mocked up in navigation bar. Known issues: - The bottom panel area is static at present, support for popping up a volume control slider like the Qt demo is planned as an addition. - The path to implementing connection and signal strength indications is currently a bit hazy, it is possible that flutter-dbus might be the simplest stopgap. - State management has been kept basic, as there are a couple of places where using provider or riverpod seems like perhaps an overcomplication. This will be reviewed when KUKSA.val support is integrated for the volume slider. - Some of the layout sizing is a bit ad hoc, and it is not clear if the previous layout helper class is actually worth keeping or not. This should be reviewed when time permits. Bug-AGL: SPEC-4611 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Ib486b1fd92047f6c1ff1cd9569f49e3ccaf3269d
Diffstat (limited to 'lib/page_home.dart')
-rw-r--r--lib/page_home.dart108
1 files changed, 0 insertions, 108 deletions
diff --git a/lib/page_home.dart b/lib/page_home.dart
deleted file mode 100644
index 0c93c4e..0000000
--- a/lib/page_home.dart
+++ /dev/null
@@ -1,108 +0,0 @@
-import 'package:flutter/material.dart';
-import 'package:flutter_homescreen/homescreen.dart';
-import 'package:flutter_homescreen/layout_size_helper.dart';
-
-// The Home page.
-class HomePage extends StatelessWidget {
- final Function(int index) onSetNavigationIndex;
-
- const HomePage({Key? key, required this.onSetNavigationIndex})
- : super(key: key);
-
- @override
- Widget build(BuildContext context) {
- var sizeHelper = LayoutSizeHelper(context);
- return Container(
- decoration: BoxDecoration(
- gradient: LinearGradient(
- begin: Alignment.topRight,
- end: Alignment.bottomLeft,
- colors: [Colors.blueGrey.shade800, Colors.grey.shade900])),
- constraints: BoxConstraints.expand(),
- alignment: Alignment.center,
- child: Wrap(
- spacing: sizeHelper.largePadding,
- runSpacing: sizeHelper.largePadding,
- children: <Widget>[
- _HomePageEntry(
- label: "DASHBOARD",
- icon: Icons.drive_eta,
- onPressed: () {
- onSetNavigationIndex(PageIndex.dashboard.index);
- },
- ),
- _HomePageEntry(
- label: "HVAC",
- icon: Icons.thermostat,
- onPressed: () {
- onSetNavigationIndex(PageIndex.hvac.index);
- },
- ),
- _HomePageEntry(
- label: "MEDIA",
- icon: Icons.music_note,
- onPressed: () {
- onSetNavigationIndex(PageIndex.media.index);
- },
- ),
- _HomePageEntry(
- label: "DEMO 3D",
- icon: Icons.view_in_ar,
- onPressed: () {
- onSetNavigationIndex(PageIndex.demo3d.index);
- },
- ),
- ],
- ));
- }
-}
-
-// Each one of the items on the Home page.
-class _HomePageEntry extends StatelessWidget {
- final String label;
- final IconData icon;
- final Null Function() onPressed;
-
- const _HomePageEntry(
- {Key? key,
- required this.label,
- required this.icon,
- required this.onPressed})
- : super(key: key);
-
- @override
- Widget build(BuildContext context) {
- var sizeHelper = LayoutSizeHelper(context);
- return Padding(
- padding: const EdgeInsets.symmetric(vertical: 8.0),
- child: Column(
- children: [
- OutlinedButton(
- style: ElevatedButton.styleFrom(
- shape: CircleBorder(),
- padding: EdgeInsets.all(sizeHelper.largePadding),
- side: BorderSide(
- width: sizeHelper.defaultBorder,
- color: Colors.lightBlue.shade100),
- ),
- onPressed: onPressed,
- child: Icon(
- icon,
- color: Colors.lightBlue.shade50,
- size: sizeHelper.largeIconSize,
- ),
- ),
- Padding(
- padding: EdgeInsets.all(sizeHelper.defaultPadding),
- child: Text(
- label,
- style: DefaultTextStyle.of(context).style.copyWith(
- fontSize: sizeHelper.baseFontSize,
- color: Colors.lightBlue.shade100,
- ),
- ),
- ),
- ],
- ));
- }
-}