Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
2
2021-035-CoviDefender
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
2021-035
2021-035-CoviDefender
Commits
b0cc3d9b
Commit
b0cc3d9b
authored
Jun 26, 2021
by
Piyumi Dayarathna
💬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
STracker - Added quiz functionality for public places part
parent
59725279
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
476 additions
and
6 deletions
+476
-6
lib/STracker/PublicPlaces/publicPlacesQuizPage.dart
lib/STracker/PublicPlaces/publicPlacesQuizPage.dart
+274
-0
lib/STracker/PublicPlaces/publicPlacesQuizStartPage.dart
lib/STracker/PublicPlaces/publicPlacesQuizStartPage.dart
+86
-0
lib/STracker/PublicPlaces/publicPlacesResultPage.dart
lib/STracker/PublicPlaces/publicPlacesResultPage.dart
+107
-0
lib/STracker/levelsDashboard.dart
lib/STracker/levelsDashboard.dart
+9
-6
No files found.
lib/STracker/PublicPlaces/publicPlacesQuizPage.dart
0 → 100644
View file @
b0cc3d9b
import
'dart:async'
;
import
'dart:convert'
;
import
'package:covidefender/STracker/PublicPlaces/publicPlacesResultPage.dart'
;
import
'package:flutter/material.dart'
;
import
'package:flutter/services.dart'
;
class
getjsonPublicPlaces
extends
StatelessWidget
{
@override
Widget
build
(
BuildContext
context
)
{
return
FutureBuilder
(
future:
DefaultAssetBundle
.
of
(
context
)
.
loadString
(
"lib/assets/pythonPublicPlaces.json"
),
builder:
(
context
,
snapshot
)
{
List
mydata
=
json
.
decode
(
snapshot
.
data
.
toString
());
if
(
mydata
==
null
)
{
return
Scaffold
(
body:
Center
(
child:
Text
(
"Loading"
,
),
),
);
// return quizpage();
}
else
{
return
quizpagePublicPlaces
(
mydata:
mydata
);
}
});
}
}
class
quizpagePublicPlaces
extends
StatefulWidget
{
var
mydata
;
quizpagePublicPlaces
({
Key
key
,
@required
this
.
mydata
})
:
super
(
key:
key
);
@override
_quizpagePublicPlacesState
createState
()
=>
_quizpagePublicPlacesState
(
mydata
);
}
class
_quizpagePublicPlacesState
extends
State
<
quizpagePublicPlaces
>
{
var
mydata
;
_quizpagePublicPlacesState
(
this
.
mydata
);
Color
colortoshow
=
Colors
.
indigoAccent
;
Color
right
=
Colors
.
green
;
Color
wrong
=
Colors
.
red
;
int
marks
=
0
;
int
i
=
1
;
int
x
=
0
;
int
timer
=
60
;
String
showtimer
=
"60"
;
int
hangState
=
0
;
Map
<
String
,
Color
>
btncolor
=
{
"a"
:
Colors
.
indigoAccent
,
"b"
:
Colors
.
indigoAccent
,
"c"
:
Colors
.
indigoAccent
,
"d"
:
Colors
.
indigoAccent
};
bool
canceltimer
=
false
;
@override
void
initState
()
{
starttimer
();
super
.
initState
();
}
void
starttimer
()
async
{
const
onesec
=
Duration
(
seconds:
1
);
Timer
.
periodic
(
onesec
,
(
Timer
t
)
{
setState
(()
{
if
(
timer
<
1
)
{
t
.
cancel
();
nextquestion
();
}
else
if
(
canceltimer
==
true
)
{
t
.
cancel
();
}
else
{
timer
=
timer
-
1
;
}
showtimer
=
timer
.
toString
();
});
});
}
void
nextquestion
()
{
canceltimer
=
false
;
timer
=
60
;
setState
(()
{
if
(
i
<
5
)
{
i
++;
}
else
{
Navigator
.
of
(
context
).
pushReplacement
(
MaterialPageRoute
(
builder:
(
context
)
=>
publicPlacesResultPage
(
marks:
marks
),
));
}
btncolor
[
"a"
]
=
Colors
.
indigoAccent
;
btncolor
[
"b"
]
=
Colors
.
indigoAccent
;
btncolor
[
"c"
]
=
Colors
.
indigoAccent
;
btncolor
[
"d"
]
=
Colors
.
indigoAccent
;
});
starttimer
();
}
void
checkanswer
(
String
k
)
{
if
(
mydata
[
2
][
i
.
toString
()]
==
mydata
[
1
][
i
.
toString
()][
k
])
{
marks
=
marks
+
5
;
colortoshow
=
right
;
}
else
{
colortoshow
=
wrong
;
x
=
x
+
1
;
showHangman
(
x
);
}
setState
(()
{
btncolor
[
k
]
=
colortoshow
;
canceltimer
=
true
;
});
Timer
(
Duration
(
seconds:
2
),
nextquestion
);
}
void
showHangman
(
x
)
{
if
(
x
==
1
)
{
hangState
=
1
;
}
else
if
(
x
==
2
)
{
hangState
=
2
;
}
else
if
(
x
==
3
)
{
hangState
=
3
;
}
else
if
(
x
==
4
)
{
hangState
=
4
;
}
else
{
hangState
=
5
;
}
}
Widget
choicebutton
(
String
k
)
{
return
Padding
(
padding:
EdgeInsets
.
symmetric
(
vertical:
10.0
,
horizontal:
20.0
,
),
child:
MaterialButton
(
onPressed:
()
=>
checkanswer
(
k
),
child:
Text
(
mydata
[
1
][
i
.
toString
()][
k
],
style:
TextStyle
(
color:
Colors
.
white
,
fontSize:
16.0
,
),
maxLines:
1
,
),
color:
btncolor
[
k
],
splashColor:
Colors
.
indigo
[
700
],
highlightColor:
Colors
.
indigo
[
700
],
minWidth:
200.0
,
height:
45.0
,
shape:
RoundedRectangleBorder
(
borderRadius:
BorderRadius
.
circular
(
20.0
)),
),
);
}
@override
Widget
build
(
BuildContext
context
)
{
SystemChrome
.
setPreferredOrientations
(
[
DeviceOrientation
.
portraitDown
,
DeviceOrientation
.
portraitUp
]);
return
WillPopScope
(
onWillPop:
()
{
return
showDialog
(
context:
context
,
builder:
(
context
)
=>
AlertDialog
(
title:
Text
(
"QuizStar - Warning"
,
),
content:
Text
(
"You can't go back at this stage"
),
actions:
<
Widget
>[
FlatButton
(
onPressed:
()
{
Navigator
.
of
(
context
).
pop
();
},
child:
Text
(
'OK'
,
),
)
],
));
},
child:
Scaffold
(
body:
Column
(
children:
<
Widget
>[
Expanded
(
flex:
5
,
child:
Material
(
elevation:
20.0
,
child:
Container
(
width:
200.0
,
height:
150.0
,
child:
Column
(
children:
<
Widget
>[
Material
(
child:
Container
(
width:
200.0
,
height:
200.0
,
child:
ClipRRect
(
child:
Image
(
image:
AssetImage
(
"lib/assets/images/
$hangState
.png"
),
),
),
),
),
],
)),
),
),
Expanded
(
flex:
2
,
child:
Container
(
padding:
EdgeInsets
.
all
(
15.0
),
alignment:
Alignment
.
bottomLeft
,
child:
Text
(
mydata
[
0
][
i
.
toString
()],
style:
TextStyle
(
fontSize:
16.0
,
fontWeight:
FontWeight
.
w700
,
),
),
decoration:
BoxDecoration
(
color:
Colors
.
blueAccent
,
),
),
),
Expanded
(
flex:
6
,
child:
Container
(
child:
Column
(
mainAxisAlignment:
MainAxisAlignment
.
center
,
children:
<
Widget
>[
choicebutton
(
'a'
),
choicebutton
(
'b'
),
choicebutton
(
'c'
),
choicebutton
(
'd'
),
],
),
),
),
Expanded
(
flex:
1
,
child:
Container
(
alignment:
Alignment
.
topCenter
,
child:
Center
(
child:
Text
(
showtimer
,
style:
TextStyle
(
fontSize:
35.0
,
fontWeight:
FontWeight
.
w700
,
),
),
),
decoration:
BoxDecoration
(
color:
Colors
.
red
,
),
),
),
],
),
),
);
}
}
lib/STracker/PublicPlaces/publicPlacesQuizStartPage.dart
0 → 100644
View file @
b0cc3d9b
import
'package:covidefender/STracker/PublicPlaces/publicPlacesQuizPage.dart'
;
import
'package:flutter/material.dart'
;
import
'package:flutter/services.dart'
;
class
publicPlacesQuizStartPage
extends
StatefulWidget
{
@override
_publicPlacesQuizStartPageState
createState
()
=>
_publicPlacesQuizStartPageState
();
}
class
_publicPlacesQuizStartPageState
extends
State
<
publicPlacesQuizStartPage
>
{
List
<
String
>
images
=
[
"lib/assets/images/startQuiz.png"
,
];
Widget
customcard
(
String
type
,
String
image
)
{
return
Padding
(
padding:
EdgeInsets
.
all
(
20.0
,
),
child:
InkWell
(
onTap:
()
{
Navigator
.
of
(
context
).
pushReplacement
(
MaterialPageRoute
(
builder:
(
context
)
=>
getjsonPublicPlaces
(),
));
},
child:
Material
(
color:
Colors
.
indigoAccent
,
elevation:
10.0
,
borderRadius:
BorderRadius
.
circular
(
20.0
),
child:
Container
(
child:
Column
(
children:
<
Widget
>[
Padding
(
padding:
EdgeInsets
.
symmetric
(
vertical:
10.0
,
),
child:
Material
(
elevation:
5.0
,
borderRadius:
BorderRadius
.
circular
(
100.0
),
child:
Container
(
height:
100.0
,
width:
100.0
,
child:
ClipOval
(
child:
Image
(
fit:
BoxFit
.
contain
,
image:
AssetImage
(
image
,
),
),
),
),
),
),
Center
(
child:
Text
(
type
,
style:
TextStyle
(
fontSize:
24.0
,
fontWeight:
FontWeight
.
w700
,
),
),
),
],
),
),
),
),
);
}
@override
Widget
build
(
BuildContext
context
)
{
SystemChrome
.
setPreferredOrientations
(
[
DeviceOrientation
.
portraitDown
,
DeviceOrientation
.
portraitUp
]);
return
Scaffold
(
appBar:
AppBar
(
title:
Text
(
"STracker"
),
),
body:
ListView
(
children:
<
Widget
>[
customcard
(
"Start Quiz"
,
images
[
0
]),
],
),
);
}
}
lib/STracker/PublicPlaces/publicPlacesResultPage.dart
0 → 100644
View file @
b0cc3d9b
import
'package:flutter/material.dart'
;
import
'../levelsDashboard.dart'
;
import
'../variables.dart'
;
class
publicPlacesResultPage
extends
StatefulWidget
{
int
marks
;
publicPlacesResultPage
({
Key
key
,
@required
this
.
marks
})
:
super
(
key:
key
);
@override
_publicPlacesResultPageState
createState
()
=>
_publicPlacesResultPageState
(
marks
);
}
class
_publicPlacesResultPageState
extends
State
<
publicPlacesResultPage
>
{
int
marks
;
_publicPlacesResultPageState
(
this
.
marks
);
@override
void
initState
()
{
testMethod
();
super
.
initState
();
}
void
testMethod
()
{
marks4
=
this
.
marks
;
}
Widget
build
(
BuildContext
context
)
{
return
Scaffold
(
appBar:
AppBar
(
title:
Text
(
"Result for Public Places"
,
),
),
body:
Column
(
children:
<
Widget
>[
Expanded
(
flex:
7
,
child:
Material
(
elevation:
10.0
,
child:
Container
(
width:
300.0
,
height:
300.0
,
child:
Column
(
children:
<
Widget
>[
Material
(
child:
Container
(
width:
300.0
,
height:
300.0
,
child:
ClipRRect
(
child:
Image
(
image:
AssetImage
(
"lib/assets/images/gameover.jpg"
),
),
),
),
),
Padding
(
padding:
EdgeInsets
.
symmetric
(
vertical:
5.0
,
horizontal:
15.0
,
),
child:
Center
(
child:
Text
(
"You Scored
$marks
marks"
,
style:
TextStyle
(
fontSize:
20.0
,
fontWeight:
FontWeight
.
w700
,
),
),
)),
],
)),
),
),
Expanded
(
flex:
4
,
child:
Row
(
mainAxisAlignment:
MainAxisAlignment
.
center
,
children:
<
Widget
>[
OutlineButton
(
onPressed:
()
{
Navigator
.
of
(
context
).
pushReplacement
(
MaterialPageRoute
(
builder:
(
context
)
=>
levelsDashboard
(),
));
},
child:
Text
(
"Continue"
,
style:
TextStyle
(
fontSize:
18.0
,
),
),
padding:
EdgeInsets
.
symmetric
(
vertical:
10.0
,
horizontal:
25.0
,
),
borderSide:
BorderSide
(
width:
3.0
,
color:
Colors
.
indigo
),
splashColor:
Colors
.
indigoAccent
,
)
],
),
)
],
),
);
}
}
lib/STracker/levelsDashboard.dart
View file @
b0cc3d9b
import
'package:covidefender/STracker/MaskWearing/maskWearingQuizStartPage.dart'
;
import
'package:covidefender/STracker/MaskWearing/maskWearingQuizStartPage.dart'
;
import
'package:covidefender/STracker/PublicPlaces/publicPlacesQuizStartPage.dart'
;
import
'package:covidefender/STracker/SocialDistance/socialDistanceQuizStartPage.dart'
;
import
'package:covidefender/STracker/SocialDistance/socialDistanceQuizStartPage.dart'
;
import
'package:flutter/material.dart'
;
import
'package:flutter/material.dart'
;
...
@@ -142,12 +143,14 @@ class _levelsDashboardState extends State<levelsDashboard> {
...
@@ -142,12 +143,14 @@ class _levelsDashboardState extends State<levelsDashboard> {
mainAxisAlignment:
MainAxisAlignment
.
center
,
mainAxisAlignment:
MainAxisAlignment
.
center
,
children:
<
Widget
>[
children:
<
Widget
>[
FlatButton
(
FlatButton
(
// onPressed: () {
onPressed:
()
{
// Navigator.push(
Navigator
.
push
(
// context,
context
,
// MaterialPageRoute(builder: (context) => EAnalyzerDash()),
MaterialPageRoute
(
// );
builder:
(
context
)
=>
// },
publicPlacesQuizStartPage
()),
);
},
child:
Image
.
asset
(
child:
Image
.
asset
(
'lib/assets/images/publicPlaces.png'
),
'lib/assets/images/publicPlaces.png'
),
),
),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment