Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions lib/constants.dart
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,16 @@ enum ColorType {
sliderBackground,
sliderButton,

roomSearchBg,
roomSearchText,

// temporary room search label cards, will maybe change
roomSearchBathroom,
roomSearchInfoDesk,
roomSearchDining, // do we have dining?
roomSearchPrinting, // do we have printing data?
roomSearchStairs,

// info card colors (in route selector, favorites sheet, etc.)
infoCardColor,
infoCardHighlighted,
Expand Down Expand Up @@ -149,6 +159,15 @@ const Map<ColorType, Color> lightColors = {
ColorType.sliderButton: Colors.white,
ColorType.sliderBackground: Color.fromARGB(255, 200, 228, 255),

ColorType.roomSearchBg: Color.fromARGB(255, 223, 237, 252),
ColorType.roomSearchText: Color.fromARGB(255, 107, 137, 163),

ColorType.roomSearchBathroom: Color.fromARGB(255, 151, 132, 193),
ColorType.roomSearchInfoDesk: Color.fromARGB(255, 121, 176, 235),
ColorType.roomSearchDining: Color.fromARGB(255, 235, 162, 121),
ColorType.roomSearchPrinting: Color.fromARGB(255, 238, 141, 210),
ColorType.roomSearchStairs: Color.fromARGB(255, 134, 195, 166),

ColorType.infoCardColor: Color.fromARGB(255, 255, 255, 255),
ColorType.infoCardHighlighted: Color.fromARGB(255, 200, 228, 255),

Expand Down Expand Up @@ -193,6 +212,15 @@ const Map<ColorType, Color> darkColors = {

ColorType.sliderButton: Color.fromARGB(255, 32, 33, 34),
ColorType.sliderBackground: Color.fromARGB(255, 33, 71, 105),

// dark mode colors may vary in the future!
ColorType.roomSearchBg: Color.fromARGB(255, 223, 237, 252),
ColorType.roomSearchText: Color.fromARGB(255, 107, 137, 163),
ColorType.roomSearchBathroom: Color.fromARGB(255, 151, 132, 193),
ColorType.roomSearchInfoDesk: Color.fromARGB(255, 121, 176, 235),
ColorType.roomSearchDining: Color.fromARGB(255, 235, 162, 121),
ColorType.roomSearchPrinting: Color.fromARGB(255, 238, 141, 210),
ColorType.roomSearchStairs: Color.fromARGB(255, 134, 195, 166),

ColorType.infoCardColor: Color.fromARGB(255, 47, 54, 60),
ColorType.infoCardHighlighted: Color.fromARGB(255, 33, 71, 105),
Expand Down
16 changes: 16 additions & 0 deletions lib/screens/map_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import 'package:bluebus/widgets/journey_results_widget.dart';
import 'package:bluebus/widgets/loading_screen.dart';
import 'package:bluebus/widgets/navigation_overlay_widget.dart';
import 'package:bluebus/widgets/reminder_widgets.dart';
import 'package:bluebus/widgets/search_rooms.dart';
import 'package:bluebus/widgets/search_sheet_main.dart';
import 'package:bluebus/widgets/stop_sheet.dart';
import 'package:flutter/foundation.dart';
Expand Down Expand Up @@ -1093,6 +1094,19 @@ class _MaizeBusCoreState extends State<MaizeBusCore> {
);
}

void _showSearchRoomsSheet() {
showModalBottomSheet(
context: context,
isScrollControlled: true,
backgroundColor: Colors.transparent,
builder: (BuildContext context) {
return SearchRoomsSheet(
floors: floorplansLayer.floors,
);
},
);
}

void _showBuildingSheet(Location place) {
// Show red pin at the location
_showSearchLocationMarker(place.latlng!.latitude, place.latlng!.longitude);
Expand Down Expand Up @@ -2429,6 +2443,7 @@ class _MaizeBusCoreState extends State<MaizeBusCore> {
_floorplanOverlayEnabled = true;
});
},
onRoomSearch: _showSearchRoomsSheet,
),
),
),
Expand Down Expand Up @@ -2457,6 +2472,7 @@ class _MaizeBusCoreState extends State<MaizeBusCore> {
_floorplanOverlayEnabled = false;
});
},
onRoomSearch: _showSearchRoomsSheet,
),
),
),
Expand Down
65 changes: 27 additions & 38 deletions lib/widgets/floorplan_overlay_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,9 @@ const FLOOR_SELECTED_HIGHLIGHT_MARGIN = 5.0;
/// full [FloorplanOverlay] floor picker.
class FloorplanEntryBar extends StatelessWidget {
final VoidCallback onOpenFloorplan;
final VoidCallback onRoomSearch;

const FloorplanEntryBar({super.key, required this.onOpenFloorplan});
const FloorplanEntryBar({super.key, required this.onOpenFloorplan, required this.onRoomSearch});

@override
Widget build(BuildContext context) {
Expand Down Expand Up @@ -86,7 +87,7 @@ class FloorplanEntryBar extends StatelessWidget {
borderRadius: BorderRadius.circular(25),
),
child: ElevatedButton.icon(
onPressed: onOpenFloorplan,
onPressed: onRoomSearch,
style: ElevatedButton.styleFrom(
alignment: Alignment.centerLeft,
backgroundColor:
Expand Down Expand Up @@ -451,15 +452,17 @@ class FloorOutlineClipper extends CustomClipper<Path> {

class FloorplanOverlay extends StatefulWidget {
// const FloorplanOverlauy
Function? onClosed;
final VoidCallback onClosed;
final VoidCallback onRoomSearch;

/// The map layer this overlay drives. Picking a floor here is what swaps the
/// geometry drawn on the map underneath.
final FloorplansLayer floorplansLayer;

FloorplanOverlay({
required this.onClosed,
required this.floorplansLayer
required this.floorplansLayer,
required this.onRoomSearch
});

@override
Expand Down Expand Up @@ -847,8 +850,6 @@ class _FloorplanOverlayState extends State<FloorplanOverlay> with TickerProvider
// mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.end,
children: [


// Nothing to pick between until the floorplan has loaded.
if (floors.isNotEmpty)
FloorSelector(
Expand All @@ -869,47 +870,35 @@ class _FloorplanOverlayState extends State<FloorplanOverlay> with TickerProvider
// ),
SizedBox(width: 8,),
Expanded(
child: Container(
decoration: BoxDecoration(
color: Colors.white, // TODO: Make dynamic for light/dark mode
borderRadius: BorderRadius.all(Radius.circular(30))
child: FilledButton.icon(
onPressed: widget.onRoomSearch,
style: FilledButton.styleFrom(
alignment: Alignment.centerLeft,
backgroundColor:
Colors.white, // TODO: Make dynamic for light/dark mode
padding: const EdgeInsets.symmetric(
horizontal: 13,
vertical: 8,
),
),
child: Padding(
padding: EdgeInsetsGeometry.only(left: 20, right: 20, top: 10, bottom: 10),
child: Row(
children: [
Icon(
Icons.search,
color: Colors.black,
size: 30,
),
SizedBox(width: 5),
Text(
"Room #",
style: TextStyle(
color: Colors.black,
fontSize: 18
),

),
],
)


)
)

icon: const Icon(
Icons.search_sharp,
color: Colors.black,
size: 28,
),
label: const Text(
"Room #",
style: TextStyle(color: Colors.black, fontSize: 18),
),
),
)

],
)
)
]
),
)

],
);
}

}
Loading
Loading