Started projects
This commit is contained in:
@@ -61,6 +61,7 @@ class _ActivitiesState extends State<Activities> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
// progressDialog = ProgressDialog(context: context);
|
// progressDialog = ProgressDialog(context: context);
|
||||||
|
List<Widget> activities = PrintTasks();
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
floatingActionButton: FloatingActionButton.extended(
|
floatingActionButton: FloatingActionButton.extended(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
@@ -154,10 +155,16 @@ class _ActivitiesState extends State<Activities> {
|
|||||||
drawer: Main.navDrawer(context, 2),
|
drawer: Main.navDrawer(context, 2),
|
||||||
body: Container(
|
body: Container(
|
||||||
padding: EdgeInsets.all(0),
|
padding: EdgeInsets.all(0),
|
||||||
child: SingleChildScrollView(
|
child: ListView.builder(
|
||||||
child: Column(
|
itemCount: activities.length,
|
||||||
children: PrintTasks(),
|
itemBuilder: (context, index){
|
||||||
))));
|
return activities[index];
|
||||||
|
})
|
||||||
|
// SingleChildScrollView(
|
||||||
|
// child: Column(
|
||||||
|
// children: PrintTasks(),
|
||||||
|
// ))
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -268,7 +275,7 @@ class _ActivitiesState extends State<Activities> {
|
|||||||
Container(
|
Container(
|
||||||
alignment: Alignment.bottomLeft,
|
alignment: Alignment.bottomLeft,
|
||||||
padding: const EdgeInsets.all(8),
|
padding: const EdgeInsets.all(8),
|
||||||
child: Text('Gap of : $gap'),
|
child: Text('Untracked period $gap'),
|
||||||
),
|
),
|
||||||
Row(
|
Row(
|
||||||
children: [
|
children: [
|
||||||
@@ -366,6 +373,7 @@ class _ActivitiesState extends State<Activities> {
|
|||||||
Widget ActivityCard(BuildContext context, String name, DateTime sTime, DateTime eTime, bool productive, Color color, Activity activity, int totalMinutes) {
|
Widget ActivityCard(BuildContext context, String name, DateTime sTime, DateTime eTime, bool productive, Color color, Activity activity, int totalMinutes) {
|
||||||
DateFormat dateFormat = DateFormat("HH:mm");
|
DateFormat dateFormat = DateFormat("HH:mm");
|
||||||
int thisMinutes = (activity.endTime.difference(activity.startTime).inMinutes);
|
int thisMinutes = (activity.endTime.difference(activity.startTime).inMinutes);
|
||||||
|
|
||||||
int timePercentage = ((thisMinutes / totalMinutes) * 100).toInt();
|
int timePercentage = ((thisMinutes / totalMinutes) * 100).toInt();
|
||||||
// print("$thisMinutes / $totalMinutes");
|
// print("$thisMinutes / $totalMinutes");
|
||||||
bool containsMetadata = ((activity.metadata ?? 'null') != 'null') && ((activity.metadata ?? '').isNotEmpty);
|
bool containsMetadata = ((activity.metadata ?? 'null') != 'null') && ((activity.metadata ?? '').isNotEmpty);
|
||||||
@@ -396,7 +404,7 @@ class _ActivitiesState extends State<Activities> {
|
|||||||
child: Card(
|
child: Card(
|
||||||
|
|
||||||
// color: color,
|
// color: color,
|
||||||
elevation: 20,
|
elevation: 30,
|
||||||
shadowColor: color,
|
shadowColor: color,
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
|
|||||||
109
lib/Projects.dart
Normal file
109
lib/Projects.dart
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'User.dart' as User;
|
||||||
|
import 'main.dart';
|
||||||
|
class Projects extends StatefulWidget {
|
||||||
|
const Projects({Key? key}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
State<Projects> createState() => _ProjectsState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _ProjectsState extends State<Projects> {
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return SafeArea(child: Scaffold(
|
||||||
|
floatingActionButton: FloatingActionButton.extended(
|
||||||
|
onPressed: () {
|
||||||
|
// Navigator.of(context).push(MaterialPageRoute(builder: (context) => NewTodo())).then((value) => {User.refreshUserData().then((va) => {})});
|
||||||
|
},
|
||||||
|
label: Text("New Project"),
|
||||||
|
icon: Icon(Icons.add)),
|
||||||
|
appBar: AppBar(
|
||||||
|
title: Column(
|
||||||
|
mainAxisSize: MainAxisSize.max,
|
||||||
|
mainAxisAlignment: MainAxisAlignment.end,
|
||||||
|
children: [
|
||||||
|
Row(
|
||||||
|
mainAxisSize: MainAxisSize.max,
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
Row(children: [Icon(Icons.work_outline_sharp, color: Theme.of(context).primaryColor), SizedBox(width: 10), Text('Projects')]),
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
(User.offline)
|
||||||
|
? Icon(Icons.signal_cellular_connected_no_internet_4_bar_outlined)
|
||||||
|
: InkWell(
|
||||||
|
onTap: () {
|
||||||
|
setState(() {
|
||||||
|
//LoadStats();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
child: Icon(Icons.refresh, size: 30),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
//Container(color: Colors.red,child: Text("Offline",style:TextStyle(fontSize: 5))),
|
||||||
|
],
|
||||||
|
)),
|
||||||
|
drawer: navDrawer(context, 7),
|
||||||
|
body: Container(
|
||||||
|
padding: EdgeInsets.all(10),
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
ProjectCard('This app'),
|
||||||
|
ProjectCard('Sneaky Peaky'),
|
||||||
|
ProjectCard('Zombie MP'),
|
||||||
|
ProjectCard('Pico pico')
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget ProjectCard(String name){
|
||||||
|
return Row(
|
||||||
|
mainAxisSize: MainAxisSize.max,
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children:[
|
||||||
|
Expanded(
|
||||||
|
child: Card(
|
||||||
|
child:InkWell(
|
||||||
|
onTap: (){},
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.all(10.0),
|
||||||
|
child: Row(
|
||||||
|
mainAxisSize: MainAxisSize.max,
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
Icon(Icons.work),
|
||||||
|
Text(name),
|
||||||
|
Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: Colors.green,
|
||||||
|
borderRadius: BorderRadius.circular(8)
|
||||||
|
),
|
||||||
|
child:Padding(
|
||||||
|
padding: const EdgeInsets.symmetric(horizontal: 5, vertical: 2),
|
||||||
|
child: Text("Work"),
|
||||||
|
))
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget prioritySeperator(String text){
|
||||||
|
return Padding(
|
||||||
|
padding: const EdgeInsets.fromLTRB(15,15,15,0),
|
||||||
|
child: Row(
|
||||||
|
children: [Text(text,style:TextStyle(fontSize: 18, color: Colors.grey))],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -14,7 +14,7 @@ class _TodoPageState extends State<TodoPage> {
|
|||||||
return SafeArea(child: Scaffold(
|
return SafeArea(child: Scaffold(
|
||||||
floatingActionButton: FloatingActionButton.extended(
|
floatingActionButton: FloatingActionButton.extended(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
// Navigator.of(context).push(MaterialPageRoute(builder: (context) => NewActivity())).then((value) => {User.refreshUserData().then((va) => LoadStats())});
|
// Navigator.of(context).push(MaterialPageRoute(builder: (context) => NewTodo())).then((value) => {User.refreshUserData().then((va) => {})});
|
||||||
},
|
},
|
||||||
label: Text("New Todo"),
|
label: Text("New Todo"),
|
||||||
icon: Icon(Icons.add)),
|
icon: Icon(Icons.add)),
|
||||||
|
|||||||
@@ -353,9 +353,15 @@ Future<List<Activity>> GetActivities(bool forceOffline) async {
|
|||||||
|
|
||||||
if(eTime.day!=sTime.day){
|
if(eTime.day!=sTime.day){
|
||||||
DateTime midnight = DateTime(eTime.year,eTime.month,eTime.day,0,0,0);
|
DateTime midnight = DateTime(eTime.year,eTime.month,eTime.day,0,0,0);
|
||||||
|
int firstHalf = eTime.difference(midnight).inMinutes;
|
||||||
_activities.add(Activity(taskType, midnight, eTime, metadata: metadata,tStartTime: sTime));
|
int secondHalf = midnight.difference(sTime).inMinutes;
|
||||||
_activities.add(Activity(taskType, sTime, midnight, metadata: metadata,tEndTime: eTime));
|
// print("${taskType.name} first half : $firstHalf -> second half: $secondHalf");
|
||||||
|
if(firstHalf>1){
|
||||||
|
_activities.add(Activity(taskType, midnight, eTime, metadata: metadata,tStartTime: sTime));
|
||||||
|
}
|
||||||
|
if(secondHalf > 1) {
|
||||||
|
_activities.add(Activity(taskType, sTime, midnight, metadata: metadata, tEndTime: eTime));
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
_activities.add(Activity(taskType, DateTime.parse(startTime), DateTime.parse(endTime), metadata: metadata));
|
_activities.add(Activity(taskType, DateTime.parse(startTime), DateTime.parse(endTime), metadata: metadata));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:tasktracker/Categories.dart';
|
import 'package:tasktracker/Categories.dart';
|
||||||
|
import 'package:tasktracker/Projects.dart';
|
||||||
import 'package:tasktracker/Todo.dart';
|
import 'package:tasktracker/Todo.dart';
|
||||||
import 'package:tasktracker/Welcome.dart';
|
import 'package:tasktracker/Welcome.dart';
|
||||||
import 'package:tasktracker/splash.dart';
|
import 'package:tasktracker/splash.dart';
|
||||||
@@ -95,7 +96,7 @@ class MyApp extends StatelessWidget {
|
|||||||
'/Categories': (context) => const Categories(),
|
'/Categories': (context) => const Categories(),
|
||||||
'/Activities': (context) => const Activities(),
|
'/Activities': (context) => const Activities(),
|
||||||
'/Settings': (context) => const SettingsPage(),
|
'/Settings': (context) => const SettingsPage(),
|
||||||
'/Todo':(context)=> const TodoPage()
|
'/Projects':(context)=> const Projects()
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -282,6 +283,10 @@ class _MyHomePageState extends State<MyHomePage> {
|
|||||||
trackedTime += value;
|
trackedTime += value;
|
||||||
});
|
});
|
||||||
int untrackedTime = 1440-trackedTime;
|
int untrackedTime = 1440-trackedTime;
|
||||||
|
if(untrackedTime<0){
|
||||||
|
User.refreshUserData().then((val)=>LoadStats());
|
||||||
|
print("Shit went wrong!");
|
||||||
|
}
|
||||||
print("Tracked time : $trackedTime");
|
print("Tracked time : $trackedTime");
|
||||||
|
|
||||||
dailyData.sort((a, b) {
|
dailyData.sort((a, b) {
|
||||||
@@ -718,15 +723,26 @@ Drawer navDrawer(BuildContext context, int pageIndex) {
|
|||||||
Divider(),
|
Divider(),
|
||||||
ListTile(
|
ListTile(
|
||||||
selected: (pageIndex == 7),
|
selected: (pageIndex == 7),
|
||||||
title: Text('TODO'),
|
title: Text('Projects'),
|
||||||
leading: Icon(Icons.check, color: Theme.of(context).primaryColor),
|
leading: Icon(Icons.work_outline_sharp, color: Theme.of(context).primaryColor),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
if (pageIndex == 7) {
|
if (pageIndex == 7) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Navigator.of(context).pushReplacementNamed('/Todo');
|
Navigator.of(context).pushReplacementNamed('/Projects');
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
// ListTile(
|
||||||
|
// selected: (pageIndex == 7),
|
||||||
|
// title: Text('TODO'),
|
||||||
|
// leading: Icon(Icons.check, color: Theme.of(context).primaryColor),
|
||||||
|
// onTap: () {
|
||||||
|
// if (pageIndex == 7) {
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
// // Navigator.of(context).pushReplacementNamed('/Todo');
|
||||||
|
// },
|
||||||
|
// ),
|
||||||
Divider(),
|
Divider(),
|
||||||
ListTile(
|
ListTile(
|
||||||
selected: (pageIndex == 5),
|
selected: (pageIndex == 5),
|
||||||
|
|||||||
@@ -94,10 +94,17 @@ class _SplashScreenState extends State<SplashScreen> {
|
|||||||
padding: EdgeInsets.all(80),
|
padding: EdgeInsets.all(80),
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Image(image: AssetImage('images/logo.png')),
|
Container(),
|
||||||
SpinKitPouringHourGlass(color: Colors.white)
|
Column(
|
||||||
|
children: [
|
||||||
|
Image(image: AssetImage('images/logo.png')),
|
||||||
|
SpinKitPouringHourGlass(color: Colors.white),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
DefaultTextStyle(style: TextStyle(fontSize: 15,color: Colors.white,fontStyle: FontStyle.italic),
|
||||||
|
child: Text('If you lie to me, That means you lie to yourself\n\n -This app (2022)',))
|
||||||
// Text('Loading', style:TextStyle(color: Colors.grey, fontSize: 20,fontStyle: FontStyle.italic))
|
// Text('Loading', style:TextStyle(color: Colors.grey, fontSize: 20,fontStyle: FontStyle.italic))
|
||||||
]));
|
]));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user