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

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions assets/goalConfirm.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"v":"5.6.7","fr":60,"ip":0,"op":105,"w":500,"h":500,"nm":"ui-sucess","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":59,"s":[0]},{"t":61,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-100,0],[-26,60],[109,-70]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":26,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[1.002]},"o":{"x":[1],"y":[0.034]},"t":61,"s":[0]},{"t":85,"s":[100]}],"ix":1},"e":{"a":0,"k":0,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Ellipse 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[384,384],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0,0.709803938866,0.54509806633,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":13,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.35],"y":[0.988]},"o":{"x":[0.582],"y":[0.005]},"t":8,"s":[100]},{"t":53.2890625,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Ellipse 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0,0,0.667],"y":[0.986,0.986,1]},"o":{"x":[1,1,0.333],"y":[-0.001,-0.001,0]},"t":48,"s":[0,0,100]},{"t":74,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[384,384],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.709803938866,0.54509806633,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}],"markers":[]}
19 changes: 11 additions & 8 deletions lib/Models/dialogModels.dart
Original file line number Diff line number Diff line change
@@ -1,21 +1,24 @@
class AlertRequest {
import 'package:flutter/foundation.dart';

class DialogRequest {
final String title;
final String description;
final String buttonTitle;
final String cancelTitle;

AlertRequest({
this.title,
this.description,
this.buttonTitle,
});
DialogRequest(
{@required this.title,
@required this.description,
@required this.buttonTitle,
this.cancelTitle});
}

class AlertResponse {
class DialogResponse {
final String fieldOne;
final String fieldTwo;
final bool confirmed;

AlertResponse({
DialogResponse({
this.fieldOne,
this.fieldTwo,
this.confirmed,
Expand Down
6 changes: 6 additions & 0 deletions lib/locator.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ import 'package:peak/services/databaseServices.dart';
import 'package:peak/services/dialogService.dart';
import 'package:peak/services/firebaseAuthService.dart';
import 'package:peak/viewmodels/createGoal_model.dart';
import 'package:peak/viewmodels/editGoal_model.dart';
import 'package:peak/viewmodels/editProfile_model.dart';
import 'package:peak/viewmodels/goalDetails_model.dart';
import 'package:peak/viewmodels/goalsList_model.dart';
import 'package:peak/viewmodels/login_model.dart';
import 'package:peak/viewmodels/signup_model.dart';
Expand All @@ -17,4 +20,7 @@ void setupLocator() {
locator.registerFactory(() => SignUpModel());
locator.registerFactory(() => GoalsListModel());
locator.registerFactory(() => CreateGoalModel());
locator.registerFactory(() => GoalDetailsModel());
locator.registerFactory(() => EditGoalModel());
locator.registerFactory(() => EditProfileModel());
}
7 changes: 7 additions & 0 deletions lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:peak/router.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:peak/services/dialogManager.dart';
import 'package:peak/services/dialogService.dart';
import 'package:provider/provider.dart';

import 'locator.dart';
Expand All @@ -24,6 +26,11 @@ class MyApp extends StatelessWidget {
),
],
child: MaterialApp(
builder: (context, child) => Navigator(
key: locator<DialogService>().dialogNavigationKey,
onGenerateRoute: (settings) => MaterialPageRoute(
builder: (context) => DialogManager(child: child)),
),
theme: ThemeData(),
initialRoute: 'login',
onGenerateRoute: Router.generateRoute,
Expand Down
7 changes: 4 additions & 3 deletions lib/models/user.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@ import 'package:flutter/cupertino.dart';
class PeakUser {
final String uid;
final String name;
// bool notificationStatus;
final String picURL;
// bool notificationStatus;

PeakUser({@required this.uid, this.name}); //this.notificationStatus
PeakUser(
{@required this.uid, this.name, this.picURL}); //this.notificationStatus
}

18 changes: 17 additions & 1 deletion lib/router.dart
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
import 'package:flutter/material.dart';
import 'package:peak/screens/addGoal.dart';
import 'package:peak/screens/editGoal.dart';
import 'package:peak/screens/editProfile.dart';
import 'package:peak/screens/forgoPassword.dart';
import 'package:peak/screens/goalDetails.dart';
import 'package:peak/screens/home.dart';
import 'package:peak/screens/settings.dart';
import 'package:peak/screens/profile.dart';
import 'package:peak/screens/goalsList.dart';
import 'package:peak/screens/signUp.dart';
import 'screens/goalsList.dart';
import 'screens/login.dart';
import 'screens/addNewGoal.dart';

const String initialRoute = "login";

Expand All @@ -21,6 +23,18 @@ class Router {
return MaterialPageRoute(builder: (_) => LoginPage());
case 'goalsList':
return MaterialPageRoute(builder: (_) => GoalsListPage());
case 'editGoal':
var goal = settings.arguments;
return MaterialPageRoute(
builder: (_) => EditGoal(
goal: goal,
));
case 'goalDetails':
var goal = settings.arguments;
return MaterialPageRoute(
builder: (_) => GoalDetails(
goal: goal,
));
case 'addNewGoal':
return MaterialPageRoute(builder: (_) => NewGoal());
case 'settings':
Expand All @@ -29,6 +43,8 @@ class Router {
return MaterialPageRoute(builder: (_) => ProfilePage());
case 'signUp':
return MaterialPageRoute(builder: (_) => SignupPage());
case 'editProfile':
return MaterialPageRoute(builder: (_) => EditProfile());
case 'forgotPassword':
return MaterialPageRoute(builder: (_) => ForgotPasswordPage());
}
Expand Down
61 changes: 55 additions & 6 deletions lib/screens/addGoal.dart
Original file line number Diff line number Diff line change
@@ -1,25 +1,30 @@
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:lottie/lottie.dart';
import 'package:peak/models/task.dart';
import 'package:peak/models/user.dart';
import 'package:peak/enums/taskType.dart';

import 'package:peak/services/databaseServices.dart';
import 'package:peak/services/googleCalendar.dart';
import 'package:peak/viewmodels/createGoal_model.dart';
import 'package:provider/provider.dart';

import '../locator.dart';
import '../services/notification.dart';
import 'addTask.dart';
//import 'package:lottie/lottie.dart';

class NewGoal extends StatefulWidget {
@override
_NewGoalState createState() => _NewGoalState();
}

class _NewGoalState extends State<NewGoal> {
GoogleCalendar googleCalendar = new GoogleCalendar();
var goalsCounter = 0;
NotificationManager notifyManeger = new NotificationManager();
DateTime now = DateTime.now();
String _error;
TextEditingController _goalnamecontroller = TextEditingController();
TextEditingController _dueDatecontroller = TextEditingController();
Expand Down Expand Up @@ -165,24 +170,23 @@ class _NewGoalState extends State<NewGoal> {
switch (
item.taskType.toShortString()) {
case 'once':
OnceTask oTask =
item as OnceTask;
OnceTask oTask = item as OnceTask;
notifyManeger
.showNotificationOnce(
'Reminder To',
item.taskName,
oTask.date);
print("Once");
print(oTask.date);
print("Once");
print(oTask.date);
break;
case 'daily':
print("Daily");
print("Daily");
notifyManeger
.showDailyNotification(
'Daily Reminder',
item.taskName,
_dateTime);

break;
case 'weekly':
WeeklyTask wTask =
Expand Down Expand Up @@ -210,6 +214,8 @@ class _NewGoalState extends State<NewGoal> {
}
Navigator.pushNamed(
context, 'goalsList');
//confirm message here
goalConfirmDailog(context);
notifyManeger.showDeadlineNotification(
'Deadline Reminder',
'The deadline for ' +
Expand Down Expand Up @@ -297,6 +303,49 @@ class _NewGoalState extends State<NewGoal> {
}
}

goalConfirmDailog(BuildContext context) {
// set up the buttons
Widget cancelButton = FlatButton(
child: Text("No"),
onPressed: () {
Navigator.pop(context);
},
);
Widget continueButton = FlatButton(
child: Text("Yes"),
onPressed: () {
//Google calender here
googleCalendar.setEvent(_goalnamecontroller.text, now ,_dateTime);
Navigator.pop(context);
},
);
// set up the AlertDialog
AlertDialog alert = AlertDialog(
scrollable: true,
contentPadding: EdgeInsets.all(5),
title: Text("Added Successfully !"),
content: Column(
children: [
Lottie.asset('assets/goalConfirm.json', width: 200, height: 200),
Text(
"your goal was added successfully , would you like to add it to google calendar?"),
],
),
actions: [
cancelButton,
continueButton,
],
);
// show the dialog
showDialog(
context: context,
barrierDismissible: true,
builder: (BuildContext context) {
return alert;
},
);
}

Widget showAlert() {
if (_error != null) {
return Container(
Expand Down
Loading