Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
2
2020-045
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
0
Merge Requests
0
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
2020-045
2020-045
Commits
41371711
Commit
41371711
authored
Aug 14, 2020
by
Boteju W.J.M.
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
8/14
parent
a8dc7955
Pipeline
#1268
failed with stages
Changes
10
Pipelines
1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
510 additions
and
467 deletions
+510
-467
fitnessapp/lib/Screens/WalkingPatternRecognition/annual_details_screen.dart
...eens/WalkingPatternRecognition/annual_details_screen.dart
+62
-42
fitnessapp/lib/Screens/WalkingPatternRecognition/daily_details_screen.dart
...reens/WalkingPatternRecognition/daily_details_screen.dart
+62
-36
fitnessapp/lib/Screens/WalkingPatternRecognition/monthly_details_screen.dart
...ens/WalkingPatternRecognition/monthly_details_screen.dart
+64
-44
fitnessapp/lib/Screens/WalkingPatternRecognition/service.dart
...essapp/lib/Screens/WalkingPatternRecognition/service.dart
+126
-160
fitnessapp/lib/Screens/WalkingPatternRecognition/weekly_details_screen.dart
...eens/WalkingPatternRecognition/weekly_details_screen.dart
+86
-61
fitnessapp/lib/Screens/WalkingPatternRecognition/widgets/monthly_chart.dart
...eens/WalkingPatternRecognition/widgets/monthly_chart.dart
+38
-42
fitnessapp/lib/Screens/WalkingPatternRecognition/widgets/weekly_chart.dart
...reens/WalkingPatternRecognition/widgets/weekly_chart.dart
+38
-38
fitnessapp/lib/main.dart
fitnessapp/lib/main.dart
+0
-3
fitnessapp/pubspec.lock
fitnessapp/pubspec.lock
+33
-40
fitnessapp/pubspec.yaml
fitnessapp/pubspec.yaml
+1
-1
No files found.
fitnessapp/lib/Screens/WalkingPatternRecognition/annual_details_screen.dart
View file @
41371711
...
...
@@ -11,42 +11,51 @@ class AnnualDetailsScreen extends StatefulWidget {
}
class
_AnnualDetailsScreenState
extends
State
<
AnnualDetailsScreen
>
{
String
year
;
static
dynamic
value
,
highlights
,
activity
=
[]
;
int
hrs
,
mins
;
static
dynamic
value
,
highlights
,
activity
=
[]
;
int
hrs
,
mins
;
getActivityNameById
()
async
{
getActivityNameById
()
async
{
SearchService
.
getActivityNameById
().
then
((
responseBody
)
{
dynamic
data
=
jsonDecode
(
responseBody
);
setState
((){
activity
=
data
[
0
][
'activity'
];
setState
(()
{
activity
=
data
[
0
][
'activity'
];
});
});
}
getCurrentYear
(){
print
(
"mehee"
);
var
months
=
[
"January"
,
"February"
,
"March"
,
"April"
,
"May"
,
"June"
,
"July"
,
"August"
,
"September"
,
"October"
,
"November"
,
"December"
];
getCurrentYear
()
{
var
months
=
[
"January"
,
"February"
,
"March"
,
"April"
,
"May"
,
"June"
,
"July"
,
"August"
,
"September"
,
"October"
,
"November"
,
"December"
];
var
date
=
new
DateTime
.
now
().
toString
();
var
dateParse
=
DateTime
.
parse
(
date
);
var
month
=
months
[
dateParse
.
month
-
1
];
var
month
=
months
[
dateParse
.
month
-
1
];
setState
(()
{
year
=
dateParse
.
year
.
toString
()
;
year
=
dateParse
.
year
.
toString
();
});
getActivityNameById
();
getTotalMinutesPerYear
(
year
);
getHighlightsPerYear
(
year
);
}
getTotalMinutesPerYear
(
year
)
async
{
getTotalMinutesPerYear
(
year
)
async
{
SearchService
.
getTotalMinutesPerYear
(
year
).
then
((
responseBody
)
{
dynamic
data
=
jsonDecode
(
responseBody
);
setState
((){
value
=
data
[
0
][
'minutes per year'
];
setState
(()
{
value
=
data
[
0
][
'minutes per year'
];
value
=
value
.
toInt
();
hrs
=
value
~/
60
;
mins
=
value
%
60
;
...
...
@@ -54,18 +63,23 @@ class _AnnualDetailsScreenState extends State<AnnualDetailsScreen> {
});
}
getHighlightsPerYear
(
year
)
async
{
getHighlightsPerYear
(
year
)
async
{
SearchService
.
getHighlightsPerYear
(
year
).
then
((
responseBody
)
{
dynamic
data
=
jsonDecode
(
responseBody
);
setState
((){
highlights
=
data
[
0
][
'Highlights'
];
setState
(()
{
highlights
=
data
[
0
][
'Highlights'
];
});
});
}
@override
Widget
build
(
BuildContext
context
)
{
void
initState
()
{
super
.
initState
();
getCurrentYear
();
}
@override
Widget
build
(
BuildContext
context
)
{
return
Scaffold
(
resizeToAvoidBottomPadding:
false
,
appBar:
buildDetailsAppBar
(
context
),
...
...
@@ -130,8 +144,6 @@ class _AnnualDetailsScreenState extends State<AnnualDetailsScreen> {
);
}
Row
buildDateTitle
()
{
return
Row
(
mainAxisAlignment:
MainAxisAlignment
.
spaceBetween
,
...
...
@@ -168,24 +180,33 @@ class _AnnualDetailsScreenState extends State<AnnualDetailsScreen> {
return
Row
(
mainAxisAlignment:
MainAxisAlignment
.
spaceBetween
,
children:
<
Widget
>[
if
(
hrs
==
1
)
Text
(
"
$hrs
hr
$mins
mins"
,
style:
TextStyle
(
color:
kTextMediumColor
,
fontWeight:
FontWeight
.
w600
,
fontSize:
20
,
),
)
else
if
(
hrs
>
1
)
Text
(
"
$hrs
hrs
$mins
mins"
,
style:
TextStyle
(
color:
kTextMediumColor
,
fontWeight:
FontWeight
.
w600
,
fontSize:
20
,
),
)
if
(
hrs
==
0
&&
mins
==
0
)
Text
(
"0 hrs 0 mins"
,
style:
TextStyle
(
color:
kTextMediumColor
,
fontWeight:
FontWeight
.
w600
,
fontSize:
20
,
),
)
else
if
(
hrs
==
1
)
Text
(
"
$hrs
hr
$mins
mins"
,
style:
TextStyle
(
color:
kTextMediumColor
,
fontWeight:
FontWeight
.
w600
,
fontSize:
20
,
),
)
else
if
(
mins
>
1
)
Text
(
"
$hrs
hrs
$mins
mins"
,
style:
TextStyle
(
color:
kTextMediumColor
,
fontWeight:
FontWeight
.
w600
,
fontSize:
20
,
),
)
],
);
}
...
...
@@ -211,7 +232,7 @@ class _AnnualDetailsScreenState extends State<AnnualDetailsScreen> {
mainAxisAlignment:
MainAxisAlignment
.
spaceBetween
,
children:
<
Widget
>[
Text
(
"Tom’s
$activity
"
"ing average is
\n
$highlights
"
,
"Tom’s
$activity
"
"ing average is
\n
$highlights
"
,
style:
TextStyle
(
color:
kTextLightColor
,
fontWeight:
FontWeight
.
w600
,
...
...
@@ -244,4 +265,3 @@ class _AnnualDetailsScreenState extends State<AnnualDetailsScreen> {
);
}
}
fitnessapp/lib/Screens/WalkingPatternRecognition/daily_details_screen.dart
View file @
41371711
...
...
@@ -10,72 +10,82 @@ class DailyDetailsScreen extends StatefulWidget {
_DailyDetailsScreenState
createState
()
=>
_DailyDetailsScreenState
();
}
class
_DailyDetailsScreenState
extends
State
<
DailyDetailsScreen
>
{
String
finalDate
=
''
;
static
dynamic
timePeriod
=
[]
;
static
dynamic
highlights
=
[]
;
static
dynamic
timePeriod
=
[];
static
dynamic
highlights
=
[]
;
static
dynamic
activity
=
[];
int
hrs
,
mins
;
getCurrentDate
(){
var
months
=
[
"Jan"
,
"Feb"
,
"Mar"
,
"Apr"
,
"May"
,
"Jun"
,
"July"
,
"Aug"
,
"Sep"
,
"Oct"
,
"Nov"
,
"Dec"
];
getCurrentDate
()
{
var
months
=
[
"Jan"
,
"Feb"
,
"Mar"
,
"Apr"
,
"May"
,
"Jun"
,
"July"
,
"Aug"
,
"Sep"
,
"Oct"
,
"Nov"
,
"Dec"
];
var
date
=
new
DateTime
.
now
().
toString
();
var
dateParse
=
DateTime
.
parse
(
date
);
var
month
=
months
[
dateParse
.
month
-
1
];
var
month
=
months
[
dateParse
.
month
-
1
];
var
formattedDate
=
"
${dateParse.day}
$month
${dateParse.year}
"
;
setState
(()
{
finalDate
=
formattedDate
.
toString
()
;
finalDate
=
formattedDate
.
toString
();
});
getTotalMinutes
();
getHighlightsPerDay
();
getActivityNameById
();
}
getActivityNameById
()
async
{
getActivityNameById
()
async
{
SearchService
.
getActivityNameById
().
then
((
responseBody
)
{
print
(
responseBody
);
dynamic
data
=
jsonDecode
(
responseBody
);
setState
((){
activity
=
data
[
0
][
'activity'
];
setState
(()
{
activity
=
data
[
0
][
'activity'
];
print
(
activity
);
});
});
}
getTotalMinutes
()
async
{
getTotalMinutes
()
async
{
SearchService
.
getTotalMinutesPerDay
().
then
((
responseBody
)
{
dynamic
data
=
jsonDecode
(
responseBody
);
setState
((){
timePeriod
=
data
[
0
][
'minutes per day'
];
timePeriod
=
timePeriod
/
60
;
setState
(()
{
timePeriod
=
data
[
0
][
'minutes per day'
];
timePeriod
=
timePeriod
/
60
;
});
});
}
getHighlightsPerDay
()
async
{
getHighlightsPerDay
()
async
{
SearchService
.
getHighlightsPerDay
().
then
((
responseBody
)
{
dynamic
data
=
jsonDecode
(
responseBody
);
setState
((){
highlights
=
data
[
0
][
'Highlights'
];
setState
(()
{
highlights
=
data
[
0
][
'Highlights'
];
});
});
}
@override
void
initState
()
{
super
.
initState
();
getCurrentDate
();
}
@override
Widget
build
(
BuildContext
context
)
{
getCurrentDate
();
return
Scaffold
(
resizeToAvoidBottomPadding:
false
,
appBar:
buildDetailsAppBar
(
context
),
...
...
@@ -140,8 +150,6 @@ class _DailyDetailsScreenState extends State<DailyDetailsScreen> {
);
}
Row
buildDateTitle
()
{
return
Row
(
mainAxisAlignment:
MainAxisAlignment
.
spaceBetween
,
...
...
@@ -178,14 +186,33 @@ class _DailyDetailsScreenState extends State<DailyDetailsScreen> {
return
Row
(
mainAxisAlignment:
MainAxisAlignment
.
spaceBetween
,
children:
<
Widget
>[
Text
(
"
$timePeriod
hrs"
,
style:
TextStyle
(
color:
kTextMediumColor
,
fontWeight:
FontWeight
.
w600
,
fontSize:
20
,
),
),
if
(
hrs
==
0
&&
mins
==
0
)
Text
(
"0 hrs 0 mins"
,
style:
TextStyle
(
color:
kTextMediumColor
,
fontWeight:
FontWeight
.
w600
,
fontSize:
20
,
),
)
else
if
(
hrs
==
1
)
Text
(
"
$hrs
hr
$mins
mins"
,
style:
TextStyle
(
color:
kTextMediumColor
,
fontWeight:
FontWeight
.
w600
,
fontSize:
20
,
),
)
else
if
(
mins
>
1
)
Text
(
"
$hrs
hrs
$mins
mins"
,
style:
TextStyle
(
color:
kTextMediumColor
,
fontWeight:
FontWeight
.
w600
,
fontSize:
20
,
),
)
],
);
}
...
...
@@ -244,4 +271,3 @@ class _DailyDetailsScreenState extends State<DailyDetailsScreen> {
);
}
}
fitnessapp/lib/Screens/WalkingPatternRecognition/monthly_details_screen.dart
View file @
41371711
...
...
@@ -5,51 +5,59 @@ import 'package:flutter_svg/svg.dart';
import
'package:fitnessapp/Screens/WalkingPatternRecognition/service.dart'
;
import
'dart:convert'
;
class
MonthlyDetailsScreen
extends
StatefulWidget
{
@override
_MonthlyDetailsScreenState
createState
()
=>
_MonthlyDetailsScreenState
();
}
class
_MonthlyDetailsScreenState
extends
State
<
MonthlyDetailsScreen
>
{
String
monthAndYear
,
month
=
''
;
int
hrs
,
mins
;
static
dynamic
value
,
activity
,
highlights
=
[];
String
monthAndYear
,
month
=
''
;
int
hrs
,
mins
;
static
dynamic
value
,
activity
,
highlights
=
[];
getCurrentMonth
(){
var
months
=
[
"January"
,
"February"
,
"March"
,
"April"
,
"May"
,
"June"
,
"July"
,
"August"
,
"September"
,
"October"
,
"November"
,
"December"
];
getCurrentMonth
()
{
var
months
=
[
"January"
,
"February"
,
"March"
,
"April"
,
"May"
,
"June"
,
"July"
,
"August"
,
"September"
,
"October"
,
"November"
,
"December"
];
var
date
=
new
DateTime
.
now
().
toString
();
var
dateParse
=
DateTime
.
parse
(
date
);
var
month
=
months
[
dateParse
.
month
-
1
];
var
month
=
months
[
dateParse
.
month
-
1
];
var
formattedDate
=
"
$month
${dateParse.year}
"
;
setState
(()
{
monthAndYear
=
formattedDate
.
toString
()
;
monthAndYear
=
formattedDate
.
toString
();
});
getActivityNameById
();
getTotalMinutesPerMonth
(
dateParse
.
month
.
toString
());
getHighlightsPerMonth
(
dateParse
.
month
);
}
getActivityNameById
()
async
{
getActivityNameById
()
async
{
SearchService
.
getActivityNameById
().
then
((
responseBody
)
{
dynamic
data
=
jsonDecode
(
responseBody
);
setState
((){
activity
=
data
[
0
][
'activity'
];
setState
(()
{
activity
=
data
[
0
][
'activity'
];
});
});
}
getTotalMinutesPerMonth
(
month
)
async
{
getTotalMinutesPerMonth
(
month
)
async
{
SearchService
.
getTotalMinutesPerMonth
(
month
).
then
((
responseBody
)
{
dynamic
data
=
jsonDecode
(
responseBody
);
setState
((){
value
=
data
[
0
][
'minutes per month'
];
setState
(()
{
value
=
data
[
0
][
'minutes per month'
];
value
=
value
.
toInt
();
hrs
=
value
~/
60
;
mins
=
value
%
60
;
...
...
@@ -57,18 +65,23 @@ class _MonthlyDetailsScreenState extends State<MonthlyDetailsScreen> {
});
}
getHighlightsPerMonth
(
month
)
async
{
getHighlightsPerMonth
(
month
)
async
{
SearchService
.
getHighlightsPerMonth
(
month
).
then
((
responseBody
)
{
dynamic
data
=
jsonDecode
(
responseBody
);
setState
((){
highlights
=
data
[
0
][
'Highlights'
];
setState
(()
{
highlights
=
data
[
0
][
'Highlights'
];
});
});
}
@override
Widget
build
(
BuildContext
context
)
{
void
initState
()
{
super
.
initState
();
getCurrentMonth
();
}
@override
Widget
build
(
BuildContext
context
)
{
return
Scaffold
(
resizeToAvoidBottomPadding:
false
,
appBar:
buildDetailsAppBar
(
context
),
...
...
@@ -133,7 +146,6 @@ class _MonthlyDetailsScreenState extends State<MonthlyDetailsScreen> {
);
}
Row
buildDateTitle
()
{
return
Row
(
mainAxisAlignment:
MainAxisAlignment
.
spaceBetween
,
...
...
@@ -170,24 +182,33 @@ class _MonthlyDetailsScreenState extends State<MonthlyDetailsScreen> {
return
Row
(
mainAxisAlignment:
MainAxisAlignment
.
spaceBetween
,
children:
<
Widget
>[
if
(
hrs
==
1
)
Text
(
"
$hrs
hr
$mins
mins"
,
style:
TextStyle
(
color:
kTextMediumColor
,
fontWeight:
FontWeight
.
w600
,
fontSize:
20
,
),
)
else
if
(
hrs
>
1
)
Text
(
"
$hrs
hrs
$mins
mins"
,
style:
TextStyle
(
color:
kTextMediumColor
,
fontWeight:
FontWeight
.
w600
,
fontSize:
20
,
),
)
if
(
hrs
==
0
&&
mins
==
0
)
Text
(
"0 hrs 0 mins"
,
style:
TextStyle
(
color:
kTextMediumColor
,
fontWeight:
FontWeight
.
w600
,
fontSize:
20
,
),
)
else
if
(
hrs
==
1
)
Text
(
"
$hrs
hr
$mins
mins"
,
style:
TextStyle
(
color:
kTextMediumColor
,
fontWeight:
FontWeight
.
w600
,
fontSize:
20
,
),
)
else
if
(
mins
>
1
)
Text
(
"
$hrs
hrs
$mins
mins"
,
style:
TextStyle
(
color:
kTextMediumColor
,
fontWeight:
FontWeight
.
w600
,
fontSize:
20
,
),
)
],
);
}
...
...
@@ -246,4 +267,3 @@ class _MonthlyDetailsScreenState extends State<MonthlyDetailsScreen> {
);
}
}
fitnessapp/lib/Screens/WalkingPatternRecognition/service.dart
View file @
41371711
This diff is collapsed.
Click to expand it.
fitnessapp/lib/Screens/WalkingPatternRecognition/weekly_details_screen.dart
View file @
41371711
...
...
@@ -4,8 +4,8 @@ import 'package:fitnessapp/Screens/WalkingPatternRecognition/service.dart';
import
'package:flutter/material.dart'
;
import
'package:flutter_svg/svg.dart'
;
import
'dart:convert'
;
import
'package:jiffy/jiffy.dart'
;
import
'package:jiffy/jiffy.dart'
;
import
'package:intl/intl.dart'
;
class
WeeklyDetailsScreen
extends
StatefulWidget
{
@override
...
...
@@ -13,19 +13,30 @@ class WeeklyDetailsScreen extends StatefulWidget {
}
class
_WeeklyDetailsScreenState
extends
State
<
WeeklyDetailsScreen
>
{
DateTime
startDate
,
endDate
;
String
finalStartDate
,
finalEndDate
;
DateTime
startDate
,
endDate
;
String
finalStartDate
,
finalEndDate
;
static
dynamic
activity
=
[];
static
dynamic
value
=
[]
;
static
dynamic
highlights
=
[]
;
static
dynamic
value
=
[];
static
dynamic
highlights
=
[]
;
int
hrs
,
mins
;
getCurrentDate
(){
var
months
=
[
"Jan"
,
"Feb"
,
"Mar"
,
"Apr"
,
"May"
,
"Jun"
,
"July"
,
"Aug"
,
"Sep"
,
"Oct"
,
"Nov"
,
"Dec"
];
getCurrentDate
()
{
var
months
=
[
"Jan"
,
"Feb"
,
"Mar"
,
"Apr"
,
"May"
,
"Jun"
,
"July"
,
"Aug"
,
"Sep"
,
"Oct"
,
"Nov"
,
"Dec"
];
final
date
=
new
DateTime
.
now
();
String
formattedDate
=
DateFormat
(
'yyyy-MM-dd'
).
format
(
date
);
final
startOfYear
=
new
DateTime
(
date
.
year
,
1
,
1
,
0
,
0
);
final
firstMonday
=
startOfYear
.
weekday
;
...
...
@@ -34,72 +45,80 @@ class _WeeklyDetailsScreenState extends State<WeeklyDetailsScreen> {
var
weeks
=
((
diff
.
inDays
-
daysInFirstWeek
)
/
7
).
ceil
();
int
week
=
weeks
;
startDate
=
DateTime
.
parse
((
startOfYear
.
add
(
Duration
(
days:
7
*
week
))).
toString
());
var
startMonth
=
months
[
startDate
.
month
-
1
];
startDate
=
DateTime
.
parse
((
startOfYear
.
add
(
Duration
(
days:
7
*
week
))).
toString
());
var
startMonth
=
months
[
startDate
.
month
-
1
];
endDate
=
DateTime
.
parse
((
startOfYear
.
add
(
Duration
(
days:
7
*
week
+
7
))).
toString
());
var
endMonth
=
months
[
startDate
.
month
-
1
];
endDate
=
DateTime
.
parse
(
(
startOfYear
.
add
(
Duration
(
days:
7
*
week
+
7
))).
toString
());
var
endMonth
=
months
[
startDate
.
month
-
1
];
setState
(()
{
finalStartDate
=
"
${startDate.day}
$startMonth
${startDate.year}
"
;
finalEndDate
=
"
${endDate.day}
$endMonth
${endDate.year}
"
;
finalStartDate
=
"
${startDate.day}
$startMonth
${startDate.year}
"
;
finalEndDate
=
"
${endDate.day}
$endMonth
${endDate.year}
"
;
});
var
now
=
Jiffy
().
format
(
"yyyy-MM-dd"
);
getTotalMinutesPerWeek
();
getTotalMinutesPerWeek
(
formattedDate
);
getHighlightsPerWeek
(
now
);
getActivityNameById
();
}
getActivityNameById
()
async
{
getActivityNameById
()
async
{
SearchService
.
getActivityNameById
().
then
((
responseBody
)
{
dynamic
data
=
jsonDecode
(
responseBody
);
setState
((){
activity
=
data
[
0
][
'activity'
];
setState
(()
{
activity
=
data
[
0
][
'activity'
];
});
});
}
getTotalMinutesPerWeek
(
)
async
{
SearchService
.
getTotalMinutesPerWeek
().
then
((
responseBody
)
{
getTotalMinutesPerWeek
(
String
formattedDate
)
async
{
SearchService
.
getTotalMinutesPerWeek
(
formattedDate
).
then
((
responseBody
)
{
dynamic
data
=
jsonDecode
(
responseBody
);
setState
((){
value
=
data
[
0
][
'minutes per week'
];
value
=
value
.
toInt
();
hrs
=
value
~/
60
;
mins
=
value
%
60
;
setState
(()
{
value
=
data
[
0
][
'minutes per week'
];
if
(
value
==
0
)
{
print
(
"In"
);
}
if
(
value
!=
0
)
{
value
=
value
.
toInt
();
hrs
=
value
~/
60
;
mins
=
value
%
60
;
}
else
{
hrs
=
0
;
mins
=
0
;
}
});
});
}
getHighlightsPerWeek
(
date
)
async
{
getHighlightsPerWeek
(
date
)
async
{
SearchService
.
getHighlightsPerWeek
(
date
).
then
((
responseBody
)
{
dynamic
data
=
jsonDecode
(
responseBody
);
setState
((){
highlights
=
data
[
0
][
'Highlights'
];
setState
(()
{
highlights
=
data
[
0
][
'Highlights'
];
});
});
}
@override
Widget
build
(
BuildContext
context
)
{
void
initState
()
{
super
.
initState
();
getCurrentDate
();
}
@override
Widget
build
(
BuildContext
context
)
{
return
Scaffold
(
resizeToAvoidBottomPadding:
false
,
appBar:
buildDetailsAppBar
(
context
),
body:
Padding
(
padding:
EdgeInsets
.
symmetric
(
horizontal:
20
),
child:
SingleChildScrollView
(
child:
Column
(
child:
Column
(
children:
<
Widget
>[
Container
(
padding:
EdgeInsets
.
symmetric
(
horizontal:
20
,
vertical:
25
),
...
...
@@ -157,7 +176,6 @@ class _WeeklyDetailsScreenState extends State<WeeklyDetailsScreen> {
);
}
Row
buildDateTitle
()
{
return
Row
(
mainAxisAlignment:
MainAxisAlignment
.
spaceBetween
,
...
...
@@ -194,25 +212,33 @@ class _WeeklyDetailsScreenState extends State<WeeklyDetailsScreen> {
return
Row
(
mainAxisAlignment:
MainAxisAlignment
.
spaceBetween
,
children:
<
Widget
>[
if
(
hrs
==
1
)
Text
(
"
$hrs
hr
$mins
mins"
,
style:
TextStyle
(
color:
kTextMediumColor
,
fontWeight:
FontWeight
.
w600
,
fontSize:
20
,
),
)
else
if
(
hrs
>
1
)
Text
(
"
$hrs
hrs
$mins
mins"
,
style:
TextStyle
(
color:
kTextMediumColor
,
fontWeight:
FontWeight
.
w600
,
fontSize:
20
,
),
)
if
(
hrs
==
0
&&
mins
==
0
)
Text
(
"0 hrs 0 mins"
,
style:
TextStyle
(
color:
kTextMediumColor
,
fontWeight:
FontWeight
.
w600
,
fontSize:
20
,
),
)
else
if
(
hrs
==
1
)
Text
(
"
$hrs
hr
$mins
mins"
,
style:
TextStyle
(
color:
kTextMediumColor
,
fontWeight:
FontWeight
.
w600
,
fontSize:
20
,
),
)
else
if
(
mins
>
1
)
Text
(
"
$hrs
hrs
$mins
mins"
,
style:
TextStyle
(
color:
kTextMediumColor
,
fontWeight:
FontWeight
.
w600
,
fontSize:
20
,
),
)
],
);
}
...
...
@@ -238,7 +264,7 @@ class _WeeklyDetailsScreenState extends State<WeeklyDetailsScreen> {
mainAxisAlignment:
MainAxisAlignment
.
spaceBetween
,
children:
<
Widget
>[
Text
(
"Tom’s
$activity
"
"ing average is
\n
$highlights
"
,
"Tom’s
$activity
"
"ing average is
\n
$highlights
"
,
style:
TextStyle
(
color:
kTextLightColor
,
fontWeight:
FontWeight
.
w600
,
...
...
@@ -271,4 +297,3 @@ class _WeeklyDetailsScreenState extends State<WeeklyDetailsScreen> {
);
}
}
fitnessapp/lib/Screens/WalkingPatternRecognition/widgets/monthly_chart.dart
View file @
41371711
...
...
@@ -5,52 +5,50 @@ import 'package:flutter/material.dart';
import
'package:fitnessapp/Screens/WalkingPatternRecognition/service.dart'
;
import
'dart:convert'
;
class
MonthlyChart
extends
StatefulWidget
{
@override
_MonthlyChartState
createState
()
=>
_MonthlyChartState
();
}
class
_MonthlyChartState
extends
State
<
MonthlyChart
>
{
double
time
;
static
dynamic
data
=
[];
static
dynamic
data
=
[];
List
<
dynamic
>
weekNumbers
=
[];
List
<
d
ynamic
>
timePeriods
=
[]
;
List
<
d
ouble
>
timePeriods
=
new
List
(
5
)
;
getCurrentMonth
(){
getCurrentMonth
()
{
var
date
=
new
DateTime
.
now
().
toString
();
var
dateParse
=
DateTime
.
parse
(
date
);
getWeeklyDetailsInMonth
(
dateParse
.
year
,
dateParse
.
month
);
}
getWeeklyDetailsInMonth
(
year
,
month
)
async
{
SearchService
.
getWeeklyDetailsInMonth
(
year
,
month
).
then
((
responseBody
)
{
getWeeklyDetailsInMonth
(
year
,
month
)
async
{
SearchService
.
getWeeklyDetailsInMonth
(
year
,
month
).
then
((
responseBody
)
{
dynamic
data
=
jsonDecode
(
responseBody
);
setState
((){
weekNumbers
=
data
[
0
][
'weeks'
]
;
data
=
data
[
0
][
'minutes'
];
data
=
data
.
toString
();
data
=
data
.
map
((
s
)
=>
s
.
toDouble
()).
toList
();
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++){
print
(
data
[
i
]);
// // timePeriods.add(data[i]);
}
setState
(()
{
data
=
data
[
0
][
'minutes'
];
timePeriods
[
0
]
=
data
[
0
].
toDouble
();
timePeriods
[
1
]
=
data
[
1
].
toDouble
();
timePeriods
[
2
]
=
data
[
2
].
toDouble
();
timePeriods
[
3
]
=
data
[
3
].
toDouble
();
timePeriods
[
4
]
=
data
[
4
].
toDouble
();
});
});
});
}
@override
Widget
build
(
BuildContext
context
)
{
void
initState
()
{
super
.
initState
();
getCurrentMonth
();
}
@override
Widget
build
(
BuildContext
context
)
{
return
AspectRatio
(
aspectRatio:
1.7
,
child:
BarChart
(
BarChartData
(
barGroups:
getBarGroups
(),
barGroups:
getBarGroups
(
timePeriods
),
borderData:
FlBorderData
(
show:
false
),
titlesData:
FlTitlesData
(
leftTitles:
SideTitles
(
...
...
@@ -72,27 +70,23 @@ class _MonthlyChartState extends State<MonthlyChart> {
}
}
getBarGroups
()
{
// List<double> barChartDatas = list.map((s) => s.toDouble()).toList();
List
<
double
>
barChartDatas
=
[
0
,
1
,
2
,
3
];
getBarGroups
(
List
<
double
>
barChartData
)
{
List
<
BarChartGroupData
>
barChartGroups
=
[];
barChartData
s
.
asMap
().
forEach
(
barChartData
.
asMap
().
forEach
(
(
i
,
value
)
=>
barChartGroups
.
add
(
BarChartGroupData
(
x:
i
,
barRods:
[
BarChartRodData
(
y:
value
,
//This is not the proper way, this is just for demo
color:
i
==
2
?
kPrimaryColor
:
kTextLightColor
,
width:
15
,
)
],
),
),
);
BarChartGroupData
(
x:
i
,
barRods:
[
BarChartRodData
(
y:
value
,
//This is not the proper way, this is just for demo
color:
i
==
2
?
kPrimaryColor
:
kTextLightColor
,
width:
15
,
)
],
),
),
);
return
barChartGroups
;
}
...
...
@@ -106,6 +100,8 @@ String getWeeks(double value) {
return
'Week 3'
;
case
3
:
return
'Week 4'
;
case
4
:
return
'Week 5'
;
default
:
return
''
;
}
...
...
fitnessapp/lib/Screens/WalkingPatternRecognition/widgets/weekly_chart.dart
View file @
41371711
...
...
@@ -2,10 +2,8 @@ import 'package:fitnessapp/constants.dart';
import
'package:fl_chart/fl_chart.dart'
;
import
'package:flutter/material.dart'
;
import
'package:fitnessapp/Screens/WalkingPatternRecognition/service.dart'
;
import
'package:intl/intl.dart'
;
import
'dart:convert'
;
import
'package:jiffy/jiffy.dart'
;
class
WeeklyChart
extends
StatefulWidget
{
@override
...
...
@@ -13,62 +11,67 @@ class WeeklyChart extends StatefulWidget {
}
class
_WeeklyChartState
extends
State
<
WeeklyChart
>
{
static
dynamic
data
=[];
static
dynamic
data
=
[];
List
<
int
>
timePeriodArray
=
new
List
(
7
);
DateTime
startDate
,
endDate
;
String
finalStartDate
,
finalEndDate
;
DateTime
startDate
,
endDate
;
String
finalStartDate
,
finalEndDate
;
getCurrentDate
(){
final
week
=
Jiffy
().
week
;
getTotalMinutesPerDayInWeek
(
week
);
getCurrentDate
()
{
DateTime
now
=
DateTime
.
now
();
String
formattedDate
=
DateFormat
(
'yyyy-MM-dd'
).
format
(
now
);
getTotalMinutesPerDayInWeek
(
formattedDate
);
}
getTotalMinutesPerDayInWeek
(
weeknumber
)
async
{
var
week
=
[
"MON"
,
"TUE"
,
"WED"
,
"THU"
,
"FRI"
,
"SAT"
,
"SUN"
];
SearchService
.
getTotalMinutesPerDayInWeek
(
weeknumber
).
then
((
responseBody
)
{
dynamic
jsondata
=
jsonDecode
(
responseBody
);
setState
((){
data
=
jsondata
[
0
][
'data'
];
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++)
{
int
time
=
data
[
i
][
'timePeriod'
];
String
date
=
data
[
i
][
'date'
];
getTotalMinutesPerDayInWeek
(
date
)
async
{
var
week
=
[
"MON"
,
"TUE"
,
"WED"
,
"THU"
,
"FRI"
,
"SAT"
,
"SUN"
];
SearchService
.
getTotalMinutesPerDayInWeek
(
date
).
then
((
responseBody
)
{
dynamic
jsondata
=
jsonDecode
(
responseBody
);
setState
(()
{
data
=
jsondata
[
0
][
'data'
];
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++)
{
int
time
=
data
[
i
][
'timePeriod'
];
String
date
=
data
[
i
][
'date'
];
DateTime
myDatetime
=
DateTime
.
parse
(
date
);
var
weekday
=
week
[
myDatetime
.
weekday
-
1
];
if
(
data
[
i
][
'timePeriod'
]==
null
)
{
time
=
0
;
var
weekday
=
week
[
myDatetime
.
weekday
-
1
];
if
(
data
[
i
][
'timePeriod'
]
==
null
)
{
time
=
0
;
}
switch
(
weekday
)
{
case
'MON'
:
timePeriodArray
[
0
]
=
time
;
timePeriodArray
[
0
]
=
time
;
break
;
case
'TUE'
:
timePeriodArray
[
1
]
=
time
;
timePeriodArray
[
1
]
=
time
;
break
;
case
'WED'
:
timePeriodArray
[
2
]=
time
;
timePeriodArray
[
2
]
=
time
;
break
;
case
'THU'
:
timePeriodArray
[
3
]
=
time
;
timePeriodArray
[
3
]
=
time
;
break
;
case
'FRI'
:
timePeriodArray
[
4
]
=
time
;
timePeriodArray
[
4
]
=
time
;
break
;
case
'SAT'
:
timePeriodArray
[
5
]
=
time
;
timePeriodArray
[
5
]
=
time
;
break
;
case
'SUN'
:
timePeriodArray
[
6
]
=
time
;
timePeriodArray
[
6
]
=
time
;
break
;
}
}
}
}
});
});
}
@override
Widget
build
(
BuildContext
context
)
{
void
initState
()
{
super
.
initState
();
getCurrentDate
();
}
@override
Widget
build
(
BuildContext
context
)
{
return
AspectRatio
(
aspectRatio:
1.7
,
child:
BarChart
(
...
...
@@ -96,17 +99,14 @@ class _WeeklyChartState extends State<WeeklyChart> {
}
getBarGroups
(
List
<
int
>
list
)
{
for
(
var
i
=
0
;
i
<
list
.
length
;
i
++)
{
if
(
list
[
i
]==
null
)
{
list
[
i
]=
0
;
for
(
var
i
=
0
;
i
<
list
.
length
;
i
++)
{
if
(
list
[
i
]
==
null
)
{
list
[
i
]
=
0
;
}
}
List
<
double
>
barChartDatas
=
list
.
map
((
s
)
=>
s
.
toDouble
()).
toList
();
// List<double> barChartDatas = [1,2,3,4,5,6,7];
List
<
BarChartGroupData
>
barChartGroups
=
[];
barChartDatas
.
asMap
().
forEach
(
(
i
,
value
)
=>
barChartGroups
.
add
(
...
...
fitnessapp/lib/main.dart
View file @
41371711
import
'package:flutter/material.dart'
;
import
'package:fitnessapp/Screens/WalkingPatternRecognition/monthly_details_screen.dart'
;
import
'package:fitnessapp/constants.dart'
;
void
main
(
)
=>
runApp
(
MyApp
());
class
MyApp
extends
StatelessWidget
{
...
...
@@ -21,4 +19,3 @@ class MyApp extends StatelessWidget {
);
}
}
fitnessapp/pubspec.lock
View file @
41371711
...
...
@@ -8,27 +8,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.1"
archive:
dependency: transitive
description:
name: archive
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.13"
args:
dependency: transitive
description:
name: args
url: "https://pub.dartlang.org"
source: hosted
version: "1.6.0"
async:
dependency: transitive
description:
name: async
url: "https://pub.dartlang.org"
source: hosted
version: "2.4.
1
"
version: "2.4.
2
"
boolean_selector:
dependency: transitive
description:
...
...
@@ -36,6 +22,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
characters:
dependency: transitive
description:
name: characters
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0"
charcode:
dependency: transitive
description:
...
...
@@ -43,13 +36,20 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.3"
clock:
dependency: transitive
description:
name: clock
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.1"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.dartlang.org"
source: hosted
version: "1.14.1
2
"
version: "1.14.1
3
"
convert:
dependency: transitive
description:
...
...
@@ -57,13 +57,6 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.1"
crypto:
dependency: transitive
description:
name: crypto
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.4"
cupertino_icons:
dependency: "direct main"
description:
...
...
@@ -78,6 +71,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0"
fake_async:
dependency: transitive
description:
name: fake_async
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
fl_chart:
dependency: "direct main"
description:
...
...
@@ -96,7 +96,7 @@ packages:
name: flutter_svg
url: "https://pub.dartlang.org"
source: hosted
version: "0.1
7.4
"
version: "0.1
8.0
"
flutter_test:
dependency: "direct dev"
description: flutter
...
...
@@ -116,13 +116,6 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "3.1.4"
image:
dependency: transitive
description:
name: image
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.12"
intl:
dependency: "direct main"
description:
...
...
@@ -143,7 +136,7 @@ packages:
name: matcher
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.
6
"
version: "0.12.
8
"
meta:
dependency: transitive
description:
...
...
@@ -157,7 +150,7 @@ packages:
name: path
url: "https://pub.dartlang.org"
source: hosted
version: "1.
6.4
"
version: "1.
7.0
"
path_drawing:
dependency: transitive
description:
...
...
@@ -185,7 +178,7 @@ packages:
name: petitparser
url: "https://pub.dartlang.org"
source: hosted
version: "
2.4.0
"
version: "
3.0.4
"
quiver:
dependency: "direct main"
description:
...
...
@@ -211,7 +204,7 @@ packages:
name: stack_trace
url: "https://pub.dartlang.org"
source: hosted
version: "1.9.
3
"
version: "1.9.
5
"
stream_channel:
dependency: transitive
description:
...
...
@@ -239,14 +232,14 @@ packages:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.1
5
"
version: "0.2.1
7
"
typed_data:
dependency: transitive
description:
name: typed_data
url: "https://pub.dartlang.org"
source: hosted
version: "1.
1.6
"
version: "1.
2.0
"
vector_math:
dependency: transitive
description:
...
...
@@ -260,7 +253,7 @@ packages:
name: xml
url: "https://pub.dartlang.org"
source: hosted
version: "
3.6.1
"
version: "
4.2.0
"
sdks:
dart: ">=2.
6.0
<3.0.0"
flutter: ">=1.
6.7
<2.0.0"
dart: ">=2.
9.0-14.0.dev
<3.0.0"
flutter: ">=1.
18.0-6.0.pre
<2.0.0"
fitnessapp/pubspec.yaml
View file @
41371711
...
...
@@ -25,7 +25,7 @@ dependencies:
cupertino_icons
:
^0.1.2
intl
:
^0.16.1
animations
:
^1.1.1
flutter_svg
:
^0.1
7.4
flutter_svg
:
^0.1
8.0
fl_chart
:
^0.10.1
http
:
^0.12.1
jiffy
:
^3.0.1
...
...
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