diff --git a/android/app/src/main/res/mipmap-hdpi/accudrivericon.png b/android/app/src/main/res/mipmap-hdpi/accudrivericon.png new file mode 100644 index 0000000..bd766b9 Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/accudrivericon.png differ diff --git a/android/app/src/main/res/mipmap-mdpi/accudrivericon.png b/android/app/src/main/res/mipmap-mdpi/accudrivericon.png new file mode 100644 index 0000000..fc67bf8 Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/accudrivericon.png differ diff --git a/android/app/src/main/res/mipmap-xhdpi/accudrivericon.png b/android/app/src/main/res/mipmap-xhdpi/accudrivericon.png new file mode 100644 index 0000000..cdb84a5 Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/accudrivericon.png differ diff --git a/android/app/src/main/res/mipmap-xxhdpi/accudrivericon.png b/android/app/src/main/res/mipmap-xxhdpi/accudrivericon.png new file mode 100644 index 0000000..a2ee296 Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/accudrivericon.png differ diff --git a/android/app/src/main/res/mipmap-xxxhdpi/accudrivericon.png b/android/app/src/main/res/mipmap-xxxhdpi/accudrivericon.png new file mode 100644 index 0000000..0596429 Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/accudrivericon.png differ diff --git a/android/settings_aar.gradle b/android/settings_aar.gradle new file mode 100644 index 0000000..e7b4def --- /dev/null +++ b/android/settings_aar.gradle @@ -0,0 +1 @@ +include ':app' diff --git a/assets/images/Tjunction.png b/assets/images/Tjunction.png new file mode 100644 index 0000000..f7d8c93 Binary files /dev/null and b/assets/images/Tjunction.png differ diff --git a/assets/images/agricultural.png b/assets/images/agricultural.png new file mode 100644 index 0000000..cdc76ac Binary files /dev/null and b/assets/images/agricultural.png differ diff --git a/assets/images/buses prohibited.png b/assets/images/buses prohibited.png new file mode 100644 index 0000000..25a8710 Binary files /dev/null and b/assets/images/buses prohibited.png differ diff --git a/assets/images/clearwaynostopping.png b/assets/images/clearwaynostopping.png new file mode 100644 index 0000000..66054af Binary files /dev/null and b/assets/images/clearwaynostopping.png differ diff --git a/assets/images/crossroads.png b/assets/images/crossroads.png new file mode 100644 index 0000000..6047fd4 Binary files /dev/null and b/assets/images/crossroads.png differ diff --git a/assets/images/electrifiedoverheadcable.png b/assets/images/electrifiedoverheadcable.png new file mode 100644 index 0000000..476f39e Binary files /dev/null and b/assets/images/electrifiedoverheadcable.png differ diff --git a/assets/images/excessivenoiseprohibited.png b/assets/images/excessivenoiseprohibited.png new file mode 100644 index 0000000..34cf75b Binary files /dev/null and b/assets/images/excessivenoiseprohibited.png differ diff --git a/assets/images/fallingrock.png b/assets/images/fallingrock.png new file mode 100644 index 0000000..d090bc5 Binary files /dev/null and b/assets/images/fallingrock.png differ diff --git a/assets/images/giveway.png b/assets/images/giveway.png new file mode 100644 index 0000000..662e66b Binary files /dev/null and b/assets/images/giveway.png differ diff --git a/assets/images/humpbridge.png b/assets/images/humpbridge.png new file mode 100644 index 0000000..03fc2a3 Binary files /dev/null and b/assets/images/humpbridge.png differ diff --git a/assets/images/lowaircraft.png b/assets/images/lowaircraft.png new file mode 100644 index 0000000..08b36d6 Binary files /dev/null and b/assets/images/lowaircraft.png differ diff --git a/assets/images/motorcyclesprohibited.png b/assets/images/motorcyclesprohibited.png new file mode 100644 index 0000000..c12c9b1 Binary files /dev/null and b/assets/images/motorcyclesprohibited.png differ diff --git a/assets/images/nationalspeedlimitapplies.png b/assets/images/nationalspeedlimitapplies.png new file mode 100644 index 0000000..a5e0e94 Binary files /dev/null and b/assets/images/nationalspeedlimitapplies.png differ diff --git a/assets/images/noleftturn.png b/assets/images/noleftturn.png new file mode 100644 index 0000000..309db57 Binary files /dev/null and b/assets/images/noleftturn.png differ diff --git a/assets/images/onewaytraffic.png b/assets/images/onewaytraffic.png new file mode 100644 index 0000000..3bb5d8d Binary files /dev/null and b/assets/images/onewaytraffic.png differ diff --git a/assets/images/onlymotorvehicles.png b/assets/images/onlymotorvehicles.png new file mode 100644 index 0000000..d6a612d Binary files /dev/null and b/assets/images/onlymotorvehicles.png differ diff --git a/assets/images/parkingspace.png b/assets/images/parkingspace.png new file mode 100644 index 0000000..c9e36f6 Binary files /dev/null and b/assets/images/parkingspace.png differ diff --git a/assets/images/railwaylevelcrossing.png b/assets/images/railwaylevelcrossing.png new file mode 100644 index 0000000..48e8036 Binary files /dev/null and b/assets/images/railwaylevelcrossing.png differ diff --git a/assets/images/reservedforbuses.png b/assets/images/reservedforbuses.png new file mode 100644 index 0000000..082a1de Binary files /dev/null and b/assets/images/reservedforbuses.png differ diff --git a/assets/images/roadnarrowsfrombothsides.png b/assets/images/roadnarrowsfrombothsides.png new file mode 100644 index 0000000..7f5e912 Binary files /dev/null and b/assets/images/roadnarrowsfrombothsides.png differ diff --git a/assets/images/seriesofbends.png b/assets/images/seriesofbends.png new file mode 100644 index 0000000..1dc0d95 Binary files /dev/null and b/assets/images/seriesofbends.png differ diff --git a/assets/images/sharpdeviation.png b/assets/images/sharpdeviation.png new file mode 100644 index 0000000..0f6fee4 Binary files /dev/null and b/assets/images/sharpdeviation.png differ diff --git a/assets/images/sideroad.png b/assets/images/sideroad.png new file mode 100644 index 0000000..adb73ba Binary files /dev/null and b/assets/images/sideroad.png differ diff --git a/assets/images/sidewinds.png b/assets/images/sidewinds.png new file mode 100644 index 0000000..28e0ea6 Binary files /dev/null and b/assets/images/sidewinds.png differ diff --git a/assets/images/singlecarriageway.png b/assets/images/singlecarriageway.png new file mode 100644 index 0000000..b685f12 Binary files /dev/null and b/assets/images/singlecarriageway.png differ diff --git a/assets/images/slipperyroad.png b/assets/images/slipperyroad.png new file mode 100644 index 0000000..35f61a6 Binary files /dev/null and b/assets/images/slipperyroad.png differ diff --git a/assets/images/tunnels.png b/assets/images/tunnels.png new file mode 100644 index 0000000..2c75454 Binary files /dev/null and b/assets/images/tunnels.png differ diff --git a/assets/images/twowaytraffic.png b/assets/images/twowaytraffic.png new file mode 100644 index 0000000..bc8071c Binary files /dev/null and b/assets/images/twowaytraffic.png differ diff --git a/assets/images/unevenroad.png b/assets/images/unevenroad.png new file mode 100644 index 0000000..eb0f69e Binary files /dev/null and b/assets/images/unevenroad.png differ diff --git a/assets/images/vehicleexceedinglengthprohibited.png b/assets/images/vehicleexceedinglengthprohibited.png new file mode 100644 index 0000000..46402ea Binary files /dev/null and b/assets/images/vehicleexceedinglengthprohibited.png differ diff --git a/assets/images/weight limit.png b/assets/images/weight limit.png new file mode 100644 index 0000000..a16e38c Binary files /dev/null and b/assets/images/weight limit.png differ diff --git a/assets/images/windingroad.png b/assets/images/windingroad.png new file mode 100644 index 0000000..c770501 Binary files /dev/null and b/assets/images/windingroad.png differ diff --git a/assets/images/wrongway.png b/assets/images/wrongway.png new file mode 100644 index 0000000..65046d7 Binary files /dev/null and b/assets/images/wrongway.png differ diff --git a/assets/images/zebracrossing.png b/assets/images/zebracrossing.png new file mode 100644 index 0000000..85728da Binary files /dev/null and b/assets/images/zebracrossing.png differ diff --git a/assets/videos/carcontrols.mp4 b/assets/videos/carcontrols.mp4 new file mode 100644 index 0000000..4afdd4b Binary files /dev/null and b/assets/videos/carcontrols.mp4 differ diff --git a/assets/videos/cockpitdrills.mp4 b/assets/videos/cockpitdrills.mp4 new file mode 100644 index 0000000..4326e63 Binary files /dev/null and b/assets/videos/cockpitdrills.mp4 differ diff --git a/assets/videos/manualcar.mp4 b/assets/videos/manualcar.mp4 new file mode 100644 index 0000000..f47b68c Binary files /dev/null and b/assets/videos/manualcar.mp4 differ diff --git a/lib/assets/Constants.dart b/lib/assets/Constants.dart index 1220e0e..41eb0ef 100644 --- a/lib/assets/Constants.dart +++ b/lib/assets/Constants.dart @@ -4,12 +4,16 @@ class Constants{ const Constants(); + // ignore: non_constant_identifier_names static final HexColor INITIAL_BORDER_COLOR = HexColor('#E1E1E1'); + // ignore: non_constant_identifier_names static final HexColor INITIAL_TEXT_COLOR = HexColor('#535353'); + // ignore: non_constant_identifier_names static final HexColor IS_CORRECT_COLOR = HexColor('#8ECF94'); + // ignore: non_constant_identifier_names static final HexColor IS_WRONG_COLOR = HexColor('#D86B6B'); } \ No newline at end of file diff --git a/lib/custom_widget/alertdialog.dart b/lib/custom_widget/alertdialog.dart new file mode 100644 index 0000000..8c919b6 --- /dev/null +++ b/lib/custom_widget/alertdialog.dart @@ -0,0 +1,160 @@ +class RoadSignDetails { + final String signImage, signDetails; + + RoadSignDetails({required this.signImage, required this.signDetails}); +} + + +List signImage = [ + 'assets/images/roundabout.jpg', + 'assets/images/noentry.jpg', + 'assets/images/speedlimit.jpg', + 'assets/images/menatwork.jpg', + 'assets/images/lefthandcurve.jpg', + 'assets/images/narrowroad.jpg', + 'assets/images/narrowroad2.jpg', + 'assets/images/pedestriancrossing.jpg', + 'assets/images/donotenter.jpg', + 'assets/images/nocarsallowed.jpg', + 'assets/images/norightturn.jpg', + 'assets/images/stop.jpg', + 'assets/images/nouturn.png', + 'assets/images/trafficsignal.png', + 'assets/images/agricultural.png', + 'assets/images/buses prohibited.png', + 'assets/images/clearwaynostopping.png', + 'assets/images/crossroads.png', + 'assets/images/fallingrock.png', + 'assets/images/giveway.png', + 'assets/images/lowaircraft.png', + 'assets/images/noleftturn.png', + 'assets/images/onewaytraffic.png', + 'assets/images/onlymotorvehicles.png', + 'assets/images/parkingspace.png', + 'assets/images/railwaylevelcrossing.png', + 'assets/images/sharpdeviation.png', + 'assets/images/sideroad.png', + 'assets/images/slipperyroad.png', + 'assets/images/tunnels.png', + 'assets/images/twowaytraffic.png', + 'assets/images/unevenroad.png', + 'assets/images/weight limit.png', + 'assets/images/windingroad.png', + 'assets/images/wrongway.png', + 'assets/images/zebracrossing.png', + 'assets/images/electrifiedoverheadcable.png', + 'assets/images/excessivenoiseprohibited.png', + 'assets/images/humpbridge.png', + 'assets/images/motorcyclesprohibited.png', + 'assets/images/nationalspeedlimitapplies.png', + 'assets/images/reservedforbuses.png', + 'assets/images/seriesofbends.png', + 'assets/images/Tjunction.png', + 'assets/images/vehicleexceedinglengthprohibited.png', + 'assets/images/singlecarriageway.png', + 'assets/images/roadnarrowsfrombothsides.png', + 'assets/images/sidewinds.png', +]; + +List signDetails = [ + 'Indicates the presence of a roundabout ahead', + 'Entry into an area is prohibited' + 'Speed Limit of 50km/h', + 'Indicates men at work', + 'Warning of a curve on your left', + 'Approaching a narrow road on your right' + 'Approaching narrow roads from both sides', + 'Pedestrian crossing ahead', + 'Entry into an area is prohibited', + 'No power driven vehicles allowed', + 'Prohibited from turning on your right', + 'Mandatory to stop', + 'Prohibited from making a U-turn', + 'Approaching a traffic signal', + 'Warning of agricultural vehicles up ahead', + 'Buses not allowed into a particular area', + 'Prohibited from stopping at a particular area', + 'Approaching a crossroad', + 'Danger of falling rocks', + 'Give way to oncoming vehicles', + 'Anticipate noise from low flying aircrafts', + 'Prohibited from turning to your left', + 'Traffic in only one direction', + 'No motor vehicles allowed', + 'Availability of parking space', + 'Railway crossing up ahead', + 'Sharp deviation up ahead', + 'Side road joins to the main road from the right', + 'Indicates Slippery road up ahead', + 'Indicates a tunnel up ahead', + 'Traffic occuring from both directions', + 'Road up ahead is not smooth', + 'Goods vehicles exceeding said weight are prohibited', + 'Winding road up ahead', + 'Way not passable', + 'Zebra crossing up ahead', + 'Danger of electified cable', + 'Loud noises not allowed', + 'Hump bridge ahead', + 'Motorcycles not allowed', + 'National Speed Limit Applies', + 'Parking area is reserved for buses', + 'Indicates series of bends up ahead', + 'Indicates T shaped junction up ahead', + 'Vehicles exceeding specified length not allowed', + 'Single carriageway up ahead', + 'Approaching road which narrows from both sides', + 'Indicates strong winds in the area', +]; + + +List signs = [ + RoadSignDetails(signImage: signImage[0], signDetails: signDetails[0]), + RoadSignDetails(signImage: signImage[1], signDetails: signDetails[1]), + RoadSignDetails(signImage: signImage[2], signDetails: signDetails[2]), + RoadSignDetails(signImage: signImage[3], signDetails: signDetails[3]), + RoadSignDetails(signImage: signImage[4], signDetails: signDetails[4]), + RoadSignDetails(signImage: signImage[5], signDetails: signDetails[5]), + RoadSignDetails(signImage: signImage[6], signDetails: signDetails[6]), + RoadSignDetails(signImage: signImage[7], signDetails: signDetails[7]), + RoadSignDetails(signImage: signImage[8], signDetails: signDetails[8]), + RoadSignDetails(signImage: signImage[9], signDetails: signDetails[9]), + RoadSignDetails(signImage: signImage[10], signDetails: signDetails[10]), + RoadSignDetails(signImage: signImage[11], signDetails: signDetails[11]), + RoadSignDetails(signImage: signImage[12], signDetails: signDetails[12]), + RoadSignDetails(signImage: signImage[13], signDetails: signDetails[13]), + RoadSignDetails(signImage: signImage[14], signDetails: signDetails[14]), + RoadSignDetails(signImage: signImage[15], signDetails: signDetails[15]), + RoadSignDetails(signImage: signImage[16], signDetails: signDetails[16]), + RoadSignDetails(signImage: signImage[17], signDetails: signDetails[17]), + RoadSignDetails(signImage: signImage[18], signDetails: signDetails[18]), + RoadSignDetails(signImage: signImage[19], signDetails: signDetails[19]), + RoadSignDetails(signImage: signImage[20], signDetails: signDetails[20]), + RoadSignDetails(signImage: signImage[21], signDetails: signDetails[21]), + RoadSignDetails(signImage: signImage[22], signDetails: signDetails[22]), + RoadSignDetails(signImage: signImage[23], signDetails: signDetails[23]), + RoadSignDetails(signImage: signImage[24], signDetails: signDetails[24]), + RoadSignDetails(signImage: signImage[25], signDetails: signDetails[25]), + RoadSignDetails(signImage: signImage[26], signDetails: signDetails[26]), + RoadSignDetails(signImage: signImage[27], signDetails: signDetails[27]), + RoadSignDetails(signImage: signImage[28], signDetails: signDetails[28]), + RoadSignDetails(signImage: signImage[29], signDetails: signDetails[29]), + RoadSignDetails(signImage: signImage[30], signDetails: signDetails[30]), + RoadSignDetails(signImage: signImage[31], signDetails: signDetails[31]), + RoadSignDetails(signImage: signImage[32], signDetails: signDetails[32]), + RoadSignDetails(signImage: signImage[33], signDetails: signDetails[33]), + RoadSignDetails(signImage: signImage[34], signDetails: signDetails[34]), + RoadSignDetails(signImage: signImage[35], signDetails: signDetails[35]), + RoadSignDetails(signImage: signImage[36], signDetails: signDetails[36]), + RoadSignDetails(signImage: signImage[37], signDetails: signDetails[37]), + RoadSignDetails(signImage: signImage[38], signDetails: signDetails[38]), + RoadSignDetails(signImage: signImage[39], signDetails: signDetails[39]), + RoadSignDetails(signImage: signImage[40], signDetails: signDetails[40]), + RoadSignDetails(signImage: signImage[41], signDetails: signDetails[41]), + RoadSignDetails(signImage: signImage[42], signDetails: signDetails[42]), + RoadSignDetails(signImage: signImage[43], signDetails: signDetails[43]), + RoadSignDetails(signImage: signImage[44], signDetails: signDetails[44]), + RoadSignDetails(signImage: signImage[45], signDetails: signDetails[45]), + RoadSignDetails(signImage: signImage[46], signDetails: signDetails[46]), + RoadSignDetails(signImage: signImage[47], signDetails: signDetails[47]), +]; diff --git a/lib/custom_widget/answeroption.dart b/lib/custom_widget/answeroption.dart index ccf1421..39439b8 100644 --- a/lib/custom_widget/answeroption.dart +++ b/lib/custom_widget/answeroption.dart @@ -1,3 +1,4 @@ +// ignore: unused_import import 'package:accudriver/assets/Strings.dart'; import 'package:accudriver/dialog/scoredialog.dart'; import 'package:accudriver/model/state/answeroptionstates.dart'; diff --git a/lib/custom_widget/questiondisplay.dart b/lib/custom_widget/questiondisplay.dart index 97a4f72..2200c38 100644 --- a/lib/custom_widget/questiondisplay.dart +++ b/lib/custom_widget/questiondisplay.dart @@ -1,4 +1,4 @@ -import 'dart:convert'; + import 'dart:typed_data'; import 'package:accudriver/model/answeroptionmodel.dart'; import 'package:flutter/material.dart'; @@ -9,6 +9,7 @@ import 'package:accudriver/custom_widget/currentquestionIndicator.dart'; import 'package:flutter_hex_color/flutter_hex_color.dart'; import 'package:provider/provider.dart'; +// ignore: must_be_immutable class QuestionDisplay extends StatefulWidget { double _expansionTileSize = 0.0; diff --git a/lib/custom_widget/scoreboard.dart b/lib/custom_widget/scoreboard.dart index bb4de7c..f141400 100644 --- a/lib/custom_widget/scoreboard.dart +++ b/lib/custom_widget/scoreboard.dart @@ -1,6 +1,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter_hex_color/flutter_hex_color.dart'; +// ignore: must_be_immutable class ScoreBoard extends StatefulWidget { final double questionViewWidth; final double timerSize; @@ -35,6 +36,7 @@ class _ScoreBoardState extends State { @override Widget build(BuildContext context) { final double barPaddings = 26; + // ignore: unused_local_variable final double maxWidthOfBar = (widget.questionViewWidth / 2) - (widget.timerSize / 2) - barPaddings; diff --git a/lib/custom_widget/signScreenBody.dart b/lib/custom_widget/signScreenBody.dart index 99369ad..1186248 100644 --- a/lib/custom_widget/signScreenBody.dart +++ b/lib/custom_widget/signScreenBody.dart @@ -1,7 +1,9 @@ import 'package:accudriver/custom_widget/signcard.dart'; import 'package:accudriver/roadsign.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/cupertino.dart'; +// ignore: camel_case_types class signScreenBody extends StatelessWidget { const signScreenBody({ Key? key, @@ -14,10 +16,12 @@ class signScreenBody extends StatelessWidget { title: Text('Common Road Signs'), ), // backgroundColor: Colors.transparent, - body: Column(children: [ + body: Column( + + children: [ Expanded( child: Padding( - padding: const EdgeInsets.all(8.0), + padding: const EdgeInsets.all(8), child: GridView.builder( itemCount: signs.length, gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( @@ -33,3 +37,4 @@ class signScreenBody extends StatelessWidget { ); } } + diff --git a/lib/custom_widget/signcard.dart b/lib/custom_widget/signcard.dart index bc1f9e7..03ee813 100644 --- a/lib/custom_widget/signcard.dart +++ b/lib/custom_widget/signcard.dart @@ -1,19 +1,36 @@ + import 'package:accudriver/roadsign.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/cupertino.dart'; class Signcard extends StatelessWidget { final RoadSign roadsign; Signcard({required this.roadsign}); + @override Widget build(BuildContext context) { return Column( children: [ Expanded( child: Container( + child: GestureDetector( + onTap: () { + showDialog( + context: context, + builder: (context) { + return _showCupertinoDialog( + + ); + }, + barrierDismissible: true, + ); + }, + ), + margin: EdgeInsets.all(16.0), decoration: BoxDecoration( color: Colors.transparent, - borderRadius: BorderRadius.circular(16), + borderRadius: BorderRadius.circular(10), image: DecorationImage( image: AssetImage(roadsign.signImage), fit: BoxFit.contain, @@ -23,9 +40,23 @@ class Signcard extends StatelessWidget { ), Text( roadsign.signName, - style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20), + textAlign: TextAlign.center, + style: TextStyle( + fontWeight: FontWeight.normal, + fontSize: 15, + ), ) ], ); } + + Widget _showCupertinoDialog() { + return CupertinoAlertDialog( + title: Text('Details', + style: TextStyle( + fontWeight: FontWeight.normal, + fontSize: 15),), + content: Text('indicates warning of falling rocks'), + ); + } } diff --git a/lib/custom_widget/timer.dart b/lib/custom_widget/timer.dart index 5985198..feae1c0 100644 --- a/lib/custom_widget/timer.dart +++ b/lib/custom_widget/timer.dart @@ -3,6 +3,7 @@ import 'package:accudriver/model/timermodel.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +// ignore: must_be_immutable class Timer extends StatefulWidget { final double? parentHeight; final double? parentWidth; diff --git a/lib/main.dart b/lib/main.dart index 0c410c5..72a4c33 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,6 +1,6 @@ import 'dart:async'; - +import 'package:flutter/cupertino.dart'; import 'package:accudriver/screens/home.dart'; import 'package:flutter/material.dart'; import 'package:flutter_hex_color/flutter_hex_color.dart'; diff --git a/lib/model/question.dart b/lib/model/question.dart index ea2d23b..211409a 100644 --- a/lib/model/question.dart +++ b/lib/model/question.dart @@ -1,6 +1,5 @@ import 'dart:typed_data'; -import 'package:flutter/material.dart'; class Question { int questionId; diff --git a/lib/roadsign.dart b/lib/roadsign.dart index 6f6502a..2356514 100644 --- a/lib/roadsign.dart +++ b/lib/roadsign.dart @@ -5,37 +5,105 @@ class RoadSign { } List signName = [ - 'Roundabout Ahead', - 'No Entry', - 'Speed Limit 50km/h', - 'Men At Work', - 'Left Hand Curve', - 'Narrow Road From Right', - 'Narrow Road from Both Sides', - 'Pedestrian Crossing', - 'Do Not Enter', - 'No Cars Allowed', - 'No Right Turn', - 'Stop', - 'No U-turn', - 'Traffic Signal', + 'Roundabout Ahead', + 'No Entry', + 'Speed Limit 50km/h', + 'Men At Work', + 'Left Hand Curve', + 'Narrow Road From Right', + 'Narrow Road from Both Sides', + 'Pedestrian Crossing', + 'Do Not Enter', + 'No Cars Allowed', + 'No Right Turn', + 'Stop', + 'No U-turn', + 'Traffic Signal', + 'Agricultural Vehicles', + 'Buses Prohibited', + 'Clearway No Stopping', + 'Crossroads', + 'Falling Rocks', + 'Give Way', + 'Low Flying Aircraft', + 'No Left Turn', + 'One Way Traffic', + 'Motor Vehicles Prohibited', + 'Parking Space', + 'Railway Level Crossing', + 'Sharp Deviation', + 'Side Road from Right', + 'Slippery Road', + 'Tunnel Ahead', + 'Two Way Traffic', + 'Uneven Road', + 'Goods Vehicle Exceeding 7.5t Weight', + 'Winding Road', + 'Wrong Way', + 'Zebra Crossing', + 'Electrified Overhead Cable Ahead', + 'Excessive Noise Prohibited', + 'Hump Bridge Ahead', + 'Solo Motorcycles Prohibited', + 'National Speed Limit Applies', + 'Parking Reserved for Buses', + 'Series of Bends', + 'T-Junction', + 'Vehicle Exceeding Length Prohibited', + 'Single Carriageway Ahead', + 'Road Narrows from Both Sides', + 'Side Winds', ]; List signImage = [ - 'assets/images/roundabout.jpg', - 'assets/images/noentry.jpg', - 'assets/images/speedlimit.jpg', - 'assets/images/menatwork.jpg', - 'assets/images/lefthandcurve.jpg', - 'assets/images/narrowroad.jpg', - 'assets/images/narrowroad2.jpg', - 'assets/images/pedestriancrossing.jpg', - 'assets/images/donotenter.jpg', - 'assets/images/nocarsallowed.jpg', - 'assets/images/norightturn.jpg', - 'assets/images/stop.jpg', - 'assets/images/nouturn.png', - 'assets/images/trafficsignal.png', + 'assets/images/roundabout.jpg', + 'assets/images/noentry.jpg', + 'assets/images/speedlimit.jpg', + 'assets/images/menatwork.jpg', + 'assets/images/lefthandcurve.jpg', + 'assets/images/narrowroad.jpg', + 'assets/images/narrowroad2.jpg', + 'assets/images/pedestriancrossing.jpg', + 'assets/images/donotenter.jpg', + 'assets/images/nocarsallowed.jpg', + 'assets/images/norightturn.jpg', + 'assets/images/stop.jpg', + 'assets/images/nouturn.png', + 'assets/images/trafficsignal.png', + 'assets/images/agricultural.png', + 'assets/images/buses prohibited.png', + 'assets/images/clearwaynostopping.png', + 'assets/images/crossroads.png', + 'assets/images/fallingrock.png', + 'assets/images/giveway.png', + 'assets/images/lowaircraft.png', + 'assets/images/noleftturn.png', + 'assets/images/onewaytraffic.png', + 'assets/images/onlymotorvehicles.png', + 'assets/images/parkingspace.png', + 'assets/images/railwaylevelcrossing.png', + 'assets/images/sharpdeviation.png', + 'assets/images/sideroad.png', + 'assets/images/slipperyroad.png', + 'assets/images/tunnels.png', + 'assets/images/twowaytraffic.png', + 'assets/images/unevenroad.png', + 'assets/images/weight limit.png', + 'assets/images/windingroad.png', + 'assets/images/wrongway.png', + 'assets/images/zebracrossing.png', + 'assets/images/electrifiedoverheadcable.png', + 'assets/images/excessivenoiseprohibited.png', + 'assets/images/humpbridge.png', + 'assets/images/motorcyclesprohibited.png', + 'assets/images/nationalspeedlimitapplies.png', + 'assets/images/reservedforbuses.png', + 'assets/images/seriesofbends.png', + 'assets/images/Tjunction.png', + 'assets/images/vehicleexceedinglengthprohibited.png', + 'assets/images/singlecarriageway.png', + 'assets/images/roadnarrowsfrombothsides.png', + 'assets/images/sidewinds.png', ]; List signs = [ @@ -53,4 +121,38 @@ List signs = [ RoadSign(signImage: signImage[11], signName: signName[11]), RoadSign(signImage: signImage[12], signName: signName[12]), RoadSign(signImage: signImage[13], signName: signName[13]), + RoadSign(signImage: signImage[14], signName: signName[14]), + RoadSign(signImage: signImage[15], signName: signName[15]), + RoadSign(signImage: signImage[16], signName: signName[16]), + RoadSign(signImage: signImage[17], signName: signName[17]), + RoadSign(signImage: signImage[18], signName: signName[18]), + RoadSign(signImage: signImage[19], signName: signName[19]), + RoadSign(signImage: signImage[20], signName: signName[20]), + RoadSign(signImage: signImage[21], signName: signName[21]), + RoadSign(signImage: signImage[22], signName: signName[22]), + RoadSign(signImage: signImage[23], signName: signName[23]), + RoadSign(signImage: signImage[24], signName: signName[24]), + RoadSign(signImage: signImage[25], signName: signName[25]), + RoadSign(signImage: signImage[26], signName: signName[26]), + RoadSign(signImage: signImage[27], signName: signName[27]), + RoadSign(signImage: signImage[28], signName: signName[28]), + RoadSign(signImage: signImage[29], signName: signName[29]), + RoadSign(signImage: signImage[30], signName: signName[30]), + RoadSign(signImage: signImage[31], signName: signName[31]), + RoadSign(signImage: signImage[32], signName: signName[32]), + RoadSign(signImage: signImage[33], signName: signName[33]), + RoadSign(signImage: signImage[34], signName: signName[34]), + RoadSign(signImage: signImage[35], signName: signName[35]), + RoadSign(signImage: signImage[36], signName: signName[36]), + RoadSign(signImage: signImage[37], signName: signName[37]), + RoadSign(signImage: signImage[38], signName: signName[38]), + RoadSign(signImage: signImage[39], signName: signName[39]), + RoadSign(signImage: signImage[40], signName: signName[40]), + RoadSign(signImage: signImage[41], signName: signName[41]), + RoadSign(signImage: signImage[42], signName: signName[42]), + RoadSign(signImage: signImage[43], signName: signName[43]), + RoadSign(signImage: signImage[44], signName: signName[44]), + RoadSign(signImage: signImage[45], signName: signName[45]), + RoadSign(signImage: signImage[46], signName: signName[46]), + RoadSign(signImage: signImage[47], signName: signName[47]), ]; diff --git a/lib/screens/home.dart b/lib/screens/home.dart index 0d69e8f..9a0b858 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -1,8 +1,10 @@ // ignore: import_of_legacy_library_into_null_safe +// ignore: unused_import import 'package:accudriver/custom_widget/signScreenBody.dart'; import 'package:accudriver/screens/questionsscreen.dart'; import 'package:accudriver/screens/videoscreen.dart'; +import 'package:accudriver/signscreenmod.dart'; import 'package:flutter/material.dart'; import 'package:flutter_hex_color/flutter_hex_color.dart'; import 'package:accudriver/assets/Strings.dart'; @@ -49,15 +51,24 @@ class _HomeState extends State { height: 190.0, width: double.infinity, decoration: BoxDecoration( - gradient: LinearGradient(colors: [ - HexColor('#71C0F5'), - HexColor('#45A5E5'), - HexColor('#0A80CF'), - ]), - borderRadius: BorderRadius.all(Radius.circular(31)), - ), + gradient: LinearGradient(colors: [ + HexColor('#71C0F5'), + HexColor('#45A5E5'), + HexColor('#0A80CF'), + ]), + borderRadius: BorderRadius.all(Radius.circular(31)), + ), child: MaterialButton( - onPressed: () {}, + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) { + return QuestionsScreen(); + }, + ), + ); + }, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(31)), child: Align( @@ -109,7 +120,16 @@ class _HomeState extends State { animationDuration: Duration(milliseconds: 200), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(31)), - onPressed: () {}, + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) { + return videoscreen(); + }, + ), + ); + }, color: HexColor('#00C177'), height: double.infinity, minWidth: double.infinity, @@ -153,7 +173,7 @@ class _HomeState extends State { context, MaterialPageRoute( builder: (context) { - return signScreenBody(); + return signscreenmod(); }, ), ); @@ -190,6 +210,7 @@ class _HomeState extends State { ); } + // ignore: unused_element void _navigateToTestCategories() { Navigator.push( context, MaterialPageRoute(builder: (context) => QuestionsScreen())); diff --git a/lib/screens/questionsscreen.dart b/lib/screens/questionsscreen.dart index d1045a9..760ea82 100644 --- a/lib/screens/questionsscreen.dart +++ b/lib/screens/questionsscreen.dart @@ -42,6 +42,7 @@ class _QuestionsScreenState extends State { } } +// ignore: must_be_immutable class _QuestionPage extends StatefulWidget { double _expansionTileSize = 0.0; @@ -95,6 +96,7 @@ class __QuestionPageState extends State<_QuestionPage> { final double questionImageSize = questionViewWidth / 1.5; + // ignore: unused_local_variable final double timerWidth = (screenWidth - 48) / 3; final double barPaddings = 26.0; @@ -331,6 +333,7 @@ class __QuestionPageState extends State<_QuestionPage> { @override void dispose() { + // ignore: todo // TODO: implement dispose super.dispose(); QuestionDb().closeDb(); diff --git a/lib/screens/videoscreen.dart b/lib/screens/videoscreen.dart index fcb29d0..de5fbf1 100644 --- a/lib/screens/videoscreen.dart +++ b/lib/screens/videoscreen.dart @@ -6,11 +6,13 @@ import 'package:video_player/video_player.dart'; void main() => runApp(videoscreen()); +// ignore: camel_case_types class videoscreen extends StatefulWidget { @override _videoscreenState createState() => _videoscreenState(); } +// ignore: camel_case_types class _videoscreenState extends State { late VideoPlayerController _controller; @@ -41,6 +43,7 @@ class _videoscreenState extends State { ..initialize().then((_) { // Ensure the first frame is shown after the video is initialized, even before the play button has been pressed. setState(() { + // ignore: unnecessary_statements _; }); }); @@ -254,5 +257,6 @@ class _ButterFlyAssetVideoState extends State<_ButterFlyAssetVideo> { ); } + // ignore: non_constant_identifier_names _ControlsOverlay({required VideoPlayerController controller}) {} } diff --git a/lib/signscreenmod.dart b/lib/signscreenmod.dart new file mode 100644 index 0000000..a49f902 --- /dev/null +++ b/lib/signscreenmod.dart @@ -0,0 +1,73 @@ +import 'package:accudriver/roadsign.dart'; +import 'package:flutter/material.dart'; + +import 'custom_widget/signcard.dart'; + +// ignore: camel_case_types +class signscreenmod extends StatelessWidget { + const signscreenmod({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + final _kTabPages = [ + Column( + children: [ + Expanded( + child: Padding( + padding: const EdgeInsets.all(8.0), + child: GridView.builder( + itemBuilder: (context, index) => + Signcard(roadsign: signs[index]), + itemCount: signs.length, + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 3, + childAspectRatio: 0.75, + mainAxisSpacing: 5, + crossAxisSpacing: 1), + ), + ), + ), + ], + ), + Column( + children: [ + GridView.builder( + itemCount: 6, + gridDelegate: + SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2), + itemBuilder: (context, index) { + return Card(); + }, + ), + ], + ), + Center( + child: Icon( + Icons.cloud, + size: 64.0, + color: Colors.teal, + ), + ), + ]; + final _kTabs = [ + Tab(icon: Icon(Icons.cloud), text: 'Prohibitory Signs'), + Tab(icon: Icon(Icons.cloud), text: 'Mandatory'), + Tab(icon: Icon(Icons.cloud), text: 'Warning'), + ]; + return DefaultTabController( + length: _kTabs.length, + child: Scaffold( + appBar: AppBar( + title: Text('Road Signs'), + backgroundColor: Colors.cyan, + bottom: TabBar( + tabs: _kTabs, + ), + ), + body: TabBarView( + children: _kTabPages, + ), + ), + ); + } +} diff --git a/pubspec.lock b/pubspec.lock index e788eee..63ac490 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -7,7 +7,7 @@ packages: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.6.1" + version: "2.8.1" boolean_selector: dependency: transitive description: @@ -28,7 +28,7 @@ packages: name: charcode url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.3.1" clock: dependency: transitive description: @@ -99,7 +99,7 @@ packages: name: meta url: "https://pub.dartlang.org" source: hosted - version: "1.3.0" + version: "1.7.0" nested: dependency: transitive description: @@ -188,7 +188,7 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.3.0" + version: "0.4.2" typed_data: dependency: transitive description: @@ -209,21 +209,21 @@ packages: name: video_player url: "https://pub.dartlang.org" source: hosted - version: "2.1.12" + version: "2.2.3" video_player_platform_interface: dependency: transitive description: name: video_player_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "4.1.0" + version: "4.2.0" video_player_web: dependency: transitive description: name: video_player_web url: "https://pub.dartlang.org" source: hosted - version: "2.0.1" + version: "2.0.4" sdks: dart: ">=2.12.0 <3.0.0" flutter: ">=2.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index ba5f2c7..b6a4f85 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -27,10 +27,10 @@ dependencies: # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.2 - video_player: ^2.1.12 provider: ^5.0.0 sqflite: ^2.0.0+3 flutter_hex_color: ^2.0.0 + video_player: ^2.2.3 dev_dependencies: flutter_test: