Started projects

This commit is contained in:
Sewmina
2022-03-12 21:51:04 +05:30
parent 707640c78d
commit 3c5e8f4f8c
6 changed files with 163 additions and 17 deletions

View File

@@ -61,6 +61,7 @@ class _ActivitiesState extends State<Activities> {
@override
Widget build(BuildContext context) {
// progressDialog = ProgressDialog(context: context);
List<Widget> activities = PrintTasks();
return Scaffold(
floatingActionButton: FloatingActionButton.extended(
onPressed: () {
@@ -154,10 +155,16 @@ class _ActivitiesState extends State<Activities> {
drawer: Main.navDrawer(context, 2),
body: Container(
padding: EdgeInsets.all(0),
child: SingleChildScrollView(
child: Column(
children: PrintTasks(),
))));
child: ListView.builder(
itemCount: activities.length,
itemBuilder: (context, index){
return activities[index];
})
// SingleChildScrollView(
// child: Column(
// children: PrintTasks(),
// ))
));
}
@@ -268,7 +275,7 @@ class _ActivitiesState extends State<Activities> {
Container(
alignment: Alignment.bottomLeft,
padding: const EdgeInsets.all(8),
child: Text('Gap of : $gap'),
child: Text('Untracked period $gap'),
),
Row(
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) {
DateFormat dateFormat = DateFormat("HH:mm");
int thisMinutes = (activity.endTime.difference(activity.startTime).inMinutes);
int timePercentage = ((thisMinutes / totalMinutes) * 100).toInt();
// print("$thisMinutes / $totalMinutes");
bool containsMetadata = ((activity.metadata ?? 'null') != 'null') && ((activity.metadata ?? '').isNotEmpty);
@@ -396,7 +404,7 @@ class _ActivitiesState extends State<Activities> {
child: Card(
// color: color,
elevation: 20,
elevation: 30,
shadowColor: color,
child: InkWell(
onTap: () {

109
lib/Projects.dart Normal file
View 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))],
),
);
}
}

View File

@@ -14,7 +14,7 @@ class _TodoPageState extends State<TodoPage> {
return SafeArea(child: Scaffold(
floatingActionButton: FloatingActionButton.extended(
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"),
icon: Icon(Icons.add)),

View File

@@ -353,9 +353,15 @@ Future<List<Activity>> GetActivities(bool forceOffline) async {
if(eTime.day!=sTime.day){
DateTime midnight = DateTime(eTime.year,eTime.month,eTime.day,0,0,0);
int firstHalf = eTime.difference(midnight).inMinutes;
int secondHalf = midnight.difference(sTime).inMinutes;
// print("${taskType.name} first half : $firstHalf -> second half: $secondHalf");
if(firstHalf>1){
_activities.add(Activity(taskType, midnight, eTime, metadata: metadata,tStartTime: sTime));
_activities.add(Activity(taskType, sTime, midnight, metadata: metadata,tEndTime: eTime));
}
if(secondHalf > 1) {
_activities.add(Activity(taskType, sTime, midnight, metadata: metadata, tEndTime: eTime));
}
}else{
_activities.add(Activity(taskType, DateTime.parse(startTime), DateTime.parse(endTime), metadata: metadata));
}

View File

@@ -5,6 +5,7 @@ import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:provider/provider.dart';
import 'package:tasktracker/Categories.dart';
import 'package:tasktracker/Projects.dart';
import 'package:tasktracker/Todo.dart';
import 'package:tasktracker/Welcome.dart';
import 'package:tasktracker/splash.dart';
@@ -95,7 +96,7 @@ class MyApp extends StatelessWidget {
'/Categories': (context) => const Categories(),
'/Activities': (context) => const Activities(),
'/Settings': (context) => const SettingsPage(),
'/Todo':(context)=> const TodoPage()
'/Projects':(context)=> const Projects()
});
});
}
@@ -282,6 +283,10 @@ class _MyHomePageState extends State<MyHomePage> {
trackedTime += value;
});
int untrackedTime = 1440-trackedTime;
if(untrackedTime<0){
User.refreshUserData().then((val)=>LoadStats());
print("Shit went wrong!");
}
print("Tracked time : $trackedTime");
dailyData.sort((a, b) {
@@ -718,15 +723,26 @@ Drawer navDrawer(BuildContext context, int pageIndex) {
Divider(),
ListTile(
selected: (pageIndex == 7),
title: Text('TODO'),
leading: Icon(Icons.check, color: Theme.of(context).primaryColor),
title: Text('Projects'),
leading: Icon(Icons.work_outline_sharp, color: Theme.of(context).primaryColor),
onTap: () {
if (pageIndex == 7) {
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(),
ListTile(
selected: (pageIndex == 5),

View File

@@ -94,10 +94,17 @@ class _SplashScreenState extends State<SplashScreen> {
padding: EdgeInsets.all(80),
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Container(),
Column(
children: [
Image(image: AssetImage('images/logo.png')),
SpinKitPouringHourGlass(color: Colors.white)
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))
]));
}