Commit a8dc7955 authored by Janadi's avatar Janadi

07/23

parent 74fd260e
Pipeline #1242 failed with stages
......@@ -127,7 +127,18 @@
<workItem from="1594267198159" duration="3927000" />
<workItem from="1594275568703" duration="337000" />
<workItem from="1594275932806" duration="5212000" />
<workItem from="1594311910954" duration="481000" />
<workItem from="1594311910954" duration="1100000" />
<workItem from="1594353764991" duration="217000" />
<workItem from="1594354001266" duration="11606000" />
<workItem from="1594485558245" duration="1238000" />
<workItem from="1594557829585" duration="1611000" />
<workItem from="1594971287551" duration="10977000" />
<workItem from="1595093091379" duration="9200000" />
<workItem from="1595149903216" duration="1080000" />
<workItem from="1595162452682" duration="4264000" />
<workItem from="1595303704940" duration="12663000" />
<workItem from="1595347967327" duration="5026000" />
<workItem from="1595390878991" duration="7320000" />
</task>
<servers />
</component>
......@@ -147,31 +158,59 @@
<screen x="0" y="0" width="1536" height="824" />
</state>
<state x="549" y="171" key="FileChooserDialogImpl/0.0.1536.824@0.0.1536.824" timestamp="1590316992326" />
<state width="1877" height="282" key="GridCell.Tab.0.bottom" timestamp="1593500375859">
<state width="1877" height="347" key="GridCell.Tab.0.bottom" timestamp="1595420765831">
<screen x="1920" y="0" width="1920" height="1040" />
</state>
<state width="1877" height="282" key="GridCell.Tab.0.bottom/0.0.1536.824/1920.0.1920.1040@1920.0.1920.1040" timestamp="1593500375859" />
<state width="1877" height="282" key="GridCell.Tab.0.center" timestamp="1593500375858">
<state width="1493" height="261" key="GridCell.Tab.0.bottom/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1595308211085" />
<state width="1877" height="347" key="GridCell.Tab.0.bottom/0.0.1536.824/1920.0.1920.1040@1920.0.1920.1040" timestamp="1595420765831" />
<state width="1877" height="347" key="GridCell.Tab.0.center" timestamp="1595420765831">
<screen x="1920" y="0" width="1920" height="1040" />
</state>
<state width="1877" height="282" key="GridCell.Tab.0.center/0.0.1536.824/1920.0.1920.1040@1920.0.1920.1040" timestamp="1593500375858" />
<state width="1877" height="282" key="GridCell.Tab.0.left" timestamp="1593500375858">
<state width="1493" height="261" key="GridCell.Tab.0.center/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1595308211085" />
<state width="1877" height="347" key="GridCell.Tab.0.center/0.0.1536.824/1920.0.1920.1040@1920.0.1920.1040" timestamp="1595420765831" />
<state width="1877" height="347" key="GridCell.Tab.0.left" timestamp="1595420765821">
<screen x="1920" y="0" width="1920" height="1040" />
</state>
<state width="1877" height="282" key="GridCell.Tab.0.left/0.0.1536.824/1920.0.1920.1040@1920.0.1920.1040" timestamp="1593500375858" />
<state width="1877" height="282" key="GridCell.Tab.0.right" timestamp="1593500375858">
<state width="1493" height="261" key="GridCell.Tab.0.left/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1595308211084" />
<state width="1877" height="347" key="GridCell.Tab.0.left/0.0.1536.824/1920.0.1920.1040@1920.0.1920.1040" timestamp="1595420765821" />
<state width="1877" height="347" key="GridCell.Tab.0.right" timestamp="1595420765831">
<screen x="1920" y="0" width="1920" height="1040" />
</state>
<state width="1877" height="282" key="GridCell.Tab.0.right/0.0.1536.824/1920.0.1920.1040@1920.0.1920.1040" timestamp="1593500375858" />
<state width="1493" height="261" key="GridCell.Tab.0.right/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1595308211085" />
<state width="1877" height="347" key="GridCell.Tab.0.right/0.0.1536.824/1920.0.1920.1040@1920.0.1920.1040" timestamp="1595420765831" />
<state width="1877" height="347" key="GridCell.Tab.1.bottom" timestamp="1595420765831">
<screen x="1920" y="0" width="1920" height="1040" />
</state>
<state width="1493" height="261" key="GridCell.Tab.1.bottom/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1595308211085" />
<state width="1877" height="347" key="GridCell.Tab.1.bottom/0.0.1536.824/1920.0.1920.1040@1920.0.1920.1040" timestamp="1595420765831" />
<state width="1877" height="347" key="GridCell.Tab.1.center" timestamp="1595420765831">
<screen x="1920" y="0" width="1920" height="1040" />
</state>
<state width="1493" height="261" key="GridCell.Tab.1.center/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1595308211085" />
<state width="1877" height="347" key="GridCell.Tab.1.center/0.0.1536.824/1920.0.1920.1040@1920.0.1920.1040" timestamp="1595420765831" />
<state width="1877" height="347" key="GridCell.Tab.1.left" timestamp="1595420765831">
<screen x="1920" y="0" width="1920" height="1040" />
</state>
<state width="1493" height="261" key="GridCell.Tab.1.left/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1595308211085" />
<state width="1877" height="347" key="GridCell.Tab.1.left/0.0.1536.824/1920.0.1920.1040@1920.0.1920.1040" timestamp="1595420765831" />
<state width="1877" height="347" key="GridCell.Tab.1.right" timestamp="1595420765831">
<screen x="1920" y="0" width="1920" height="1040" />
</state>
<state width="1493" height="261" key="GridCell.Tab.1.right/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1595308211085" />
<state width="1877" height="347" key="GridCell.Tab.1.right/0.0.1536.824/1920.0.1920.1040@1920.0.1920.1040" timestamp="1595420765831" />
<state x="2383" y="166" key="SettingsEditor" timestamp="1592973231446">
<screen x="1920" y="0" width="1920" height="1040" />
</state>
<state x="2383" y="166" key="SettingsEditor/0.0.1536.824/1920.0.1920.1040@1920.0.1920.1040" timestamp="1592973231446" />
<state x="477" y="241" key="com.intellij.ide.util.TipDialog" timestamp="1594312305275">
<state x="477" y="241" key="com.intellij.ide.util.TipDialog" timestamp="1595390878643">
<screen x="0" y="0" width="1536" height="824" />
</state>
<state x="477" y="241" key="com.intellij.ide.util.TipDialog/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1594275933162" />
<state x="477" y="241" key="com.intellij.ide.util.TipDialog/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1595390878643" />
<state x="2516" y="304" key="com.intellij.ide.util.TipDialog/0.0.1536.824/1920.0.1920.1040@1920.0.1920.1040" timestamp="1594275574495" />
<state x="477" y="241" key="com.intellij.ide.util.TipDialog/0.0.1536.824@0.0.1536.824" timestamp="1594312305275" />
<state x="477" y="241" key="com.intellij.ide.util.TipDialog/0.0.1536.824@0.0.1536.824" timestamp="1595347996096" />
<state x="330" y="149" key="com.intellij.xdebugger.impl.breakpoints.ui.BreakpointsDialogFactory$2" timestamp="1595308182182">
<screen x="0" y="0" width="1536" height="824" />
</state>
<state x="330" y="149" key="com.intellij.xdebugger.impl.breakpoints.ui.BreakpointsDialogFactory$2/0.0.1536.824/1920.0.1920.1040@0.0.1536.824" timestamp="1595308182182" />
</component>
</project>
\ No newline at end of file
......@@ -13,6 +13,7 @@ https://docs.djangoproject.com/en/3.0/ref/settings/
import os
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
......@@ -27,7 +28,16 @@ SECRET_KEY = '^^46u_fc$#)x5ji*s#l3p6igr9*6fwknxevip$ozw8#-m=*#f0'
DEBUG = True
ALLOWED_HOSTS = ['192.168.1.21', 'localhost', '127.0.0.1']
ALLOWED_HOSTS = ['192.168.1.23', 'localhost', '127.0.0.1']
CORS_ORIGIN_ALLOW_ALL = False
CORS_ORIGIN_WHITELIST = (
'http://localhost:4200',
)
# Application definition
......@@ -47,19 +57,22 @@ INSTALLED_APPS = [
'django.contrib.sites',
'allauth',
'allauth.account',
'rest_auth.registration'
'rest_auth.registration',
'corsheaders'
]
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
SITE_ID = 1
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.security.SecurityMiddleware',
]
ROOT_URLCONF = 'WalkingPatternRecognition.urls'
......@@ -147,6 +160,7 @@ USE_TZ = True
# https://docs.djangoproject.com/en/3.0/howto/static-files/
STATIC_URL = '/static/'
LOGIN_REDIRECT_URL = '/'
STATICFILES_DIRS = [
......
......@@ -22,6 +22,6 @@ urlpatterns = [
path('accounts/', include('django.contrib.auth.urls')),
path('', include('mobileapp.urls', namespace='api')),
path('api-token-auth/', views.obtain_auth_token, name='api-token-auth'),
path('auth/', views.obtain_auth_token, name='api-token-auth'),
]
......@@ -31,7 +31,7 @@ class DogSerializer(serializers.ModelSerializer):
class Meta:
model = Dog
fields = ('name', 'birthday', 'breed', 'gender', 'user')
fields = ('id', 'name', 'birthday', 'breed', 'gender', 'user')
class ActivitySerializer(serializers.ModelSerializer):
......
......@@ -12,7 +12,7 @@ urlpatterns = [
path('dogs/', views.DogList.as_view()),
path('addDogProfile', views.add_DogProfile),
path('updateDogProfile/<int:dog_id>', views.update_DogProfile),
path('deleteDogProfile/<int:dog_id>', views.delete_DogProfile),
path('deleteDogProfile', views.delete_DogProfile),
path('addMotionActivityPerDay', views.add_motionActivityPerDay),
path('updateMotionActivityPerDay/<int:id>', views.update_MotionActivityPerDay),
......@@ -35,12 +35,12 @@ urlpatterns = [
# Monthly
path('getTotalMinutesPerMonth', views.getTotalMinutesPerMonth),
path('getTotalMinutesPerWeekInMonth', views.getTotalMinutesPerWeekInMonth),
path('getWeeklyDetailsInMonth', views.getWeeklyDetailsInMonth),
path('highlightsPerMonth', views.highlightsPerMonth),
# Annually
path('getTotalMinutesPerYear', views.getTotalMinutesPerYear),
path('getTotalMinutesPerMonth', views.getTotalMinutesPerMonth),
path('getMonthlyDetailsInYear', views.getMonthlyDetailsInYear),
path('highlightsPerYear', views.highlightsPerYear),
......
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Flutter",
"request": "launch",
"type": "dart"
}
]
}
\ No newline at end of file
import 'package:fitnessapp/constants.dart';
import 'package:fitnessapp/Screens/WalkingPatternRecognition/widgets/annual_chart.dart';
import 'package:fitnessapp/Screens/WalkingPatternRecognition/service.dart';
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
class AnnualDetailsScreen extends StatelessWidget {
class AnnualDetailsScreen extends StatefulWidget {
@override
_AnnualDetailsScreenState createState() => _AnnualDetailsScreenState();
}
class _AnnualDetailsScreenState extends State<AnnualDetailsScreen> {
String year;
static dynamic value,highlights,activity = [] ;
int hrs,mins;
getActivityNameById() async{
SearchService.getActivityNameById().then((responseBody) {
dynamic data = jsonDecode(responseBody);
setState((){
activity= data[0]['activity'];
});
});
}
getCurrentYear(){
print("mehee");
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];
setState(() {
year = dateParse.year.toString() ;
});
getActivityNameById();
getTotalMinutesPerYear(year);
getHighlightsPerYear(year);
}
getTotalMinutesPerYear(year) async{
SearchService.getTotalMinutesPerYear(year).then((responseBody) {
dynamic data = jsonDecode(responseBody);
setState((){
value= data[0]['minutes per year'];
value = value.toInt();
hrs = value ~/ 60;
mins = value % 60;
});
});
}
getHighlightsPerYear(year) async{
SearchService.getHighlightsPerYear(year).then((responseBody) {
dynamic data = jsonDecode(responseBody);
setState((){
highlights= data[0]['Highlights'];
});
});
}
@override
Widget build(BuildContext context) {
getCurrentYear();
return Scaffold(
resizeToAvoidBottomPadding: false,
appBar: buildDetailsAppBar(context),
......@@ -71,54 +130,14 @@ class AnnualDetailsScreen extends StatelessWidget {
);
}
RichText buildInfoTextWithPercentage({String title, String percentage}) {
return RichText(
text: TextSpan(
children: [
TextSpan(
text: "$percentage% \n",
style: TextStyle(
fontSize: 20,
color: kPrimaryColor,
),
),
TextSpan(
text: title,
style: TextStyle(
color: kTextMediumColor,
height: 1.5,
),
),
],
),
);
}
Row buildCaseNumber(BuildContext context) {
return Row(
children: <Widget>[
Text(
"547 ",
style: Theme.of(context)
.textTheme
.headline2
.copyWith(color: kPrimaryColor, height: 1.2),
),
Text(
"5.9% ",
style: TextStyle(color: kPrimaryColor),
),
SvgPicture.asset("assets/icons/increase.svg")
],
);
}
Row buildDateTitle() {
return Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text(
"2020 ",
"$year",
style: TextStyle(
color: kTextColor,
fontWeight: FontWeight.w600,
......@@ -128,6 +147,7 @@ class AnnualDetailsScreen extends StatelessWidget {
],
);
}
Row buildTotalTitle() {
return Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
......@@ -143,21 +163,33 @@ class AnnualDetailsScreen extends StatelessWidget {
],
);
}
Row buildAmountTitle() {
return Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
if(hrs==1)
Text(
"20 hr 15 min",
"$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,
),
)
],
);
}
Row highlightsTitle() {
return Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
......@@ -173,12 +205,13 @@ class AnnualDetailsScreen extends StatelessWidget {
],
);
}
Row highlightsContent() {
return Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text(
"Tom has a lower walking Average \nthan Last Year.",
"Tom’s $activity" "ing average is\n$highlights",
style: TextStyle(
color: kTextLightColor,
fontWeight: FontWeight.w600,
......
......@@ -19,6 +19,23 @@ class _DailyDetailsScreenState extends State<DailyDetailsScreen> {
static dynamic highlights =[] ;
static dynamic activity = [];
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 formattedDate = "${dateParse.day} $month ${dateParse.year}";
setState(() {
finalDate = formattedDate.toString() ;
});
getTotalMinutes();
getHighlightsPerDay();
getActivityNameById();
}
getActivityNameById() async{
SearchService.getActivityNameById().then((responseBody) {
......@@ -53,28 +70,12 @@ class _DailyDetailsScreenState extends State<DailyDetailsScreen> {
}
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 formattedDate = "${dateParse.day} $month ${dateParse.year}";
setState(() {
finalDate = formattedDate.toString() ;
});
}
@override
Widget build(BuildContext context) {
getCurrentDate();
getTotalMinutes();
getHighlightsPerDay();
getActivityNameById();
return Scaffold(
resizeToAvoidBottomPadding: false,
appBar: buildDetailsAppBar(context),
......
......@@ -14,34 +14,54 @@ class MonthlyDetailsScreen extends StatefulWidget {
class _MonthlyDetailsScreenState extends State<MonthlyDetailsScreen> {
String monthAndYear,month = '';
static dynamic value = [] ;
int hrs,mins;
static dynamic value,activity,highlights = [];
getCurrentMonth(){
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 formattedDate = "$month ${dateParse.year}";
var monthNumber= dateParse.month.toString();
setState(() {
monthAndYear = formattedDate.toString() ;
});
getTotalMinutesPerMonth(monthNumber);
getActivityNameById();
getTotalMinutesPerMonth(dateParse.month.toString());
getHighlightsPerMonth(dateParse.month);
}
getActivityNameById() async{
SearchService.getActivityNameById().then((responseBody) {
dynamic data = jsonDecode(responseBody);
setState((){
activity= data[0]['activity'];
});
});
}
getTotalMinutesPerMonth(month) async{
SearchService.getTotalMinutesPerMonth(month).then((responseBody) {
dynamic data = jsonDecode(responseBody);
setState((){
value= data[0]['minutes per month'];
// hrs= (double.parse(value) /~ 60).toString();
// mins = (double.parse(value) % 60).toString();
value = value.toInt();
hrs = value ~/ 60;
mins = value % 60;
});
});
}
getHighlightsPerMonth(month) async{
SearchService.getHighlightsPerMonth(month).then((responseBody) {
dynamic data = jsonDecode(responseBody);
setState((){
highlights= data[0]['Highlights'];
});
});
}
......@@ -150,14 +170,24 @@ getCurrentMonth(){
return Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
if(hrs==1)
Text(
"$value mins",
"$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,
),
)
],
);
}
......@@ -183,7 +213,7 @@ getCurrentMonth(){
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text(
"Tom has a lower walking Average \nthan Last Month.",
"Tom’s $activity" "ing average is\n$highlights",
style: TextStyle(
color: kTextLightColor,
fontWeight: FontWeight.w600,
......
......@@ -4,7 +4,8 @@ import 'dart:convert';
class SearchService {
static String ip = 'http://192.168.1.21:8000';
static String ip = 'http://192.168.1.23:8000';
static String username = 'Janadi';
static String password = 'janadi2.';
static String basicAuth = 'Basic ' + base64Encode(utf8.encode('$username:$password'));
......@@ -75,7 +76,7 @@ class SearchService {
var body = jsonEncode({
"activity":2,
"dog":1,
"date":"2020-07-01"
"date":"2020-07-09"
});
http.Response response = await http.post(url,
headers: {"Content-Type": "application/json",'authorization': basicAuth},
......@@ -106,13 +107,13 @@ class SearchService {
return response.body;
}
static Future<String> getHighlightsPerWeek() async {
static Future<String> getHighlightsPerWeek(date) async {
String url = '$ip/highlightsPerWeek';
var body = jsonEncode({
"activity":2,
"dog":1,
"date":"2020-07-01"
"date":date
});
http.Response response = await http.post(url,
headers: {"Content-Type": "application/json",'authorization': basicAuth},
......@@ -127,6 +128,29 @@ class SearchService {
//Monthly
static Future<String> getWeeklyDetailsInMonth(year,month) async {
String url = '$ip/getWeeklyDetailsInMonth';
var body = jsonEncode({
"activity":2,
"dog":1,
"year":year,
"month":month
});
http.Response response = await http.post(url,
headers: {"Content-Type": "application/json",'authorization': basicAuth},
body: body
).then((http.Response response) {
return response;
});
return response.body;
}
static Future<String> getTotalMinutesPerMonth(month) async {
String url = '$ip/getTotalMinutesPerMonth';
......@@ -146,9 +170,9 @@ class SearchService {
return response.body;
}
static Future<String> getTotalMinutesPerWeekInMonth(month) async {
static Future<String> getHighlightsPerMonth(month) async {
String url = '$ip/getTotalMinutesPerWeekInMonth';
String url = '$ip/highlightsPerMonth';
var body = jsonEncode({
"activity":2,
"dog":1,
......@@ -160,12 +184,73 @@ class SearchService {
).then((http.Response response) {
return response;
});
return response.body;
}
//Anually
static Future<String> getTotalMinutesPerYear(year) async {
String url = '$ip/getTotalMinutesPerYear';
var body = jsonEncode({
"activity":2,
"dog":1,
"year":year
});
http.Response response = await http.post(url,
headers: {"Content-Type": "application/json",'authorization': basicAuth},
body: body
).then((http.Response response) {
return response;
});
return response.body;
}
static Future<String> getMonthlyDetailsInYear(year) async {
String url = '$ip/getMonthlyDetailsInYear';
var body = jsonEncode({
"activity":2,
"dog":1,
"year":year,
});
http.Response response = await http.post(url,
headers: {"Content-Type": "application/json",'authorization': basicAuth},
body: body
).then((http.Response response) {
return response;
});
return response.body;
}
static Future<String> getHighlightsPerYear(year) async {
String url = '$ip/highlightsPerYear';
var body = jsonEncode({
"activity":2,
"dog":1,
"year":year
});
http.Response response = await http.post(url,
headers: {"Content-Type": "application/json",'authorization': basicAuth},
body: body
).then((http.Response response) {
return response;
});
return response.body;
}
}
\ No newline at end of file
......@@ -4,6 +4,7 @@ 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';
class WeeklyDetailsScreen extends StatefulWidget {
......@@ -18,11 +19,14 @@ class _WeeklyDetailsScreenState extends State<WeeklyDetailsScreen> {
static dynamic activity = [];
static dynamic value = [] ;
static dynamic highlights =[] ;
int hrs, mins;
getCurrentDate(){
var months= ["Jan","Feb","Mar","Apr", "May","Jun","July","Aug","Sep","Oct","Nov","Dec"];
final date = new DateTime.now();
final startOfYear = new DateTime(date.year, 1, 1, 0, 0);
final firstMonday = startOfYear.weekday;
final daysInFirstWeek = 8 - firstMonday;
......@@ -40,17 +44,21 @@ class _WeeklyDetailsScreenState extends State<WeeklyDetailsScreen> {
finalStartDate = "${startDate.day} $startMonth ${startDate.year}" ;
finalEndDate = "${endDate.day} $endMonth ${endDate.year}" ;
});
var now = Jiffy().format("yyyy-MM-dd");
getTotalMinutesPerWeek();
getHighlightsPerWeek(now);
getActivityNameById();
}
getActivityNameById() async{
SearchService.getActivityNameById().then((responseBody) {
print(responseBody);
dynamic data = jsonDecode(responseBody);
setState((){
activity= data[0]['activity'];
print(activity);
});
});
}
......@@ -59,29 +67,31 @@ class _WeeklyDetailsScreenState extends State<WeeklyDetailsScreen> {
SearchService.getTotalMinutesPerWeek().then((responseBody) {
dynamic data = jsonDecode(responseBody);
setState((){
value= data[0]['minutes per week'];
// hrs= (double.parse(value) /~ 60).toString();
// mins = (double.parse(value) % 60).toString();
value= data[0]['minutes per week'];
value = value.toInt();
hrs = value ~/ 60;
mins = value % 60;
});
});
}
getHighlightsPerWeek() async{
SearchService.getHighlightsPerWeek().then((responseBody) {
getHighlightsPerWeek(date) async{
SearchService.getHighlightsPerWeek(date).then((responseBody) {
dynamic data = jsonDecode(responseBody);
setState((){
highlights= data[0]['Highlights'];
});
});
}
@override
Widget build(BuildContext context) {
getCurrentDate();
getTotalMinutesPerWeek();
return Scaffold(
resizeToAvoidBottomPadding: false,
......@@ -112,7 +122,7 @@ class _WeeklyDetailsScreenState extends State<WeeklyDetailsScreen> {
buildTotalTitle(),
SizedBox(height: 10),
buildAmountTitle(),
SizedBox(height: 40),
SizedBox(height: 50),
WeeklyChart(),
SizedBox(height: 15),
],
......@@ -184,14 +194,25 @@ class _WeeklyDetailsScreenState extends State<WeeklyDetailsScreen> {
return Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
if(hrs==1)
Text(
"$value mins",
"$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,
),
)
],
);
}
......@@ -217,7 +238,7 @@ class _WeeklyDetailsScreenState extends State<WeeklyDetailsScreen> {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text(
"Tom has a $highlights",
"Tom’s $activity" "ing average is\n$highlights",
style: TextStyle(
color: kTextLightColor,
fontWeight: FontWeight.w600,
......
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 'dart:convert';
class AnnualChart extends StatefulWidget {
@override
_AnnualChartState createState() => _AnnualChartState();
}
class _AnnualChartState extends State<AnnualChart> {
static dynamic data=[];
List<int> timePeriodArray = new List(12);
getCurrentYear(){
var date = new DateTime.now().toString();
var dateParse = DateTime.parse(date);
print("heree");
getMonthlyDetailsInYear(dateParse.year);
}
getMonthlyDetailsInYear(currentYear) async{
print("dateParse.year");
var year =["JAN","FEB","MARCH","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"];
SearchService.getMonthlyDetailsInYear(currentYear).then((responseBody) {
dynamic jsondata = jsonDecode(responseBody);
print(jsondata);
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 month = year[myDatetime.month-1];
if(data[i]['timePeriod']== null){
time=0;
}
switch (month) {
case 'JAN':
timePeriodArray[0]=time;
break;
case 'FEB':
timePeriodArray[1]=time;
break;
case 'MAR':
timePeriodArray[2]= time;
break;
case 'APR':
timePeriodArray[3]=time ;
break;
case 'MAY':
timePeriodArray[4]=time;
break;
case 'JUN':
timePeriodArray[5]=time;
break;
case 'JUL':
timePeriodArray[6]=time;
break;
case 'AUG':
timePeriodArray[7]=time;
break;
case 'SEP':
timePeriodArray[8]=time;
break;
case 'OCT':
timePeriodArray[9]=time;
break;
case 'NOV':
timePeriodArray[10]=time;
break;
case 'DEC':
timePeriodArray[11]=time;
break;
}
}
});
});
}
class AnnualChart extends StatelessWidget {
@override
Widget build(BuildContext context) {
getCurrentYear();
return AspectRatio(
aspectRatio: 1.7,
child: BarChart(
BarChartData(
barGroups: getBarGroups(),
barGroups: getBarGroups(timePeriodArray),
borderData: FlBorderData(show: false),
titlesData: FlTitlesData(
leftTitles: SideTitles(
......@@ -31,7 +112,16 @@ class AnnualChart extends StatelessWidget {
}
}
getBarGroups() {
getBarGroups(List<int> list) {
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 = [6, 10, 8, 7, 10, 15, 9, 12, 11,10,9,4];
List<BarChartGroupData> barChartGroups = [];
barChartDatas.asMap().forEach(
......
import 'package:fitnessapp/constants.dart';
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:jiffy/jiffy.dart';
import 'package:fitnessapp/Screens/WalkingPatternRecognition/service.dart';
import 'dart:convert';
......@@ -13,22 +13,36 @@ class MonthlyChart extends StatefulWidget {
class _MonthlyChartState extends State<MonthlyChart> {
double time;
static dynamic data=[];
List<dynamic> weekNumbers = [];
List<dynamic> timePeriods = [];
getCurrentMonth(){
final month = Jiffy().month;
getTotalMinutesPerWeekInMonth(month);
var date = new DateTime.now().toString();
var dateParse = DateTime.parse(date);
getWeeklyDetailsInMonth(dateParse.year, dateParse.month);
}
getWeeklyDetailsInMonth(year,month) async{
getTotalMinutesPerWeekInMonth(weeknumber) async{
var week =["Week1","Week2","Week3","Week4","Week5"];
SearchService.getTotalMinutesPerDayInWeek(weeknumber).then((responseBody) {
dynamic jsondata = jsonDecode(responseBody);
});
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]);
}
});
});
}
@override
Widget build(BuildContext context) {
getCurrentMonth();
......@@ -59,7 +73,10 @@ class _MonthlyChartState extends State<MonthlyChart> {
}
getBarGroups() {
List<double> barChartDatas = [6, 10, 8, 7];
// List<double> barChartDatas = list.map((s) => s.toDouble()).toList();
List<double> barChartDatas = [0,1,2,3];
List<BarChartGroupData> barChartGroups = [];
barChartDatas.asMap().forEach(
(i, value) => barChartGroups.add(
......
......@@ -101,10 +101,11 @@ getBarGroups(List<int> list) {
list[i]= 0;
}
}
// List<double> barChartDatas = list.map((s) => s as double).toList();
List<double> barChartDatas = list.map((s) => s.toDouble()).toList();
List<double> barChartDatas = [1,2,3,4,5,6,7];
// List<double> barChartDatas = [1,2,3,4,5,6,7];
List<BarChartGroupData> barChartGroups = [];
barChartDatas.asMap().forEach(
......
......@@ -187,7 +187,7 @@ packages:
source: hosted
version: "2.4.0"
quiver:
dependency: transitive
dependency: "direct main"
description:
name: quiver
url: "https://pub.dartlang.org"
......
......@@ -29,7 +29,8 @@ dependencies:
fl_chart: ^0.10.1
http: ^0.12.1
jiffy: ^3.0.1
quiver: ^2.1.3
dev_dependencies:
flutter_test:
sdk: flutter
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment