After a long time, No idea whats changed

This commit is contained in:
Sewmina
2022-05-04 15:58:49 +05:30
parent 8af736fab1
commit fd60fca746
4 changed files with 106 additions and 74 deletions

View File

@@ -56,62 +56,89 @@ class _AnalyticsPageState extends State<AnalyticsPage> {
children: [ children: [
landscape?navDrawer(context, 1) : Container(), landscape?navDrawer(context, 1) : Container(),
Expanded( Expanded(
child: SingleChildScrollView( child: Align(
scrollDirection: Axis.vertical, alignment: Alignment.topCenter ,
child: Container( child: SingleChildScrollView(
padding: EdgeInsets.all(8), scrollDirection: Axis.vertical,
child:Column( child: Container(
children: [ padding: EdgeInsets.all(8),
Card( child:Column(
child: Container( children: [
padding: EdgeInsets.symmetric(horizontal: 15, vertical: 5), Card(
child: Column( child: Container(
children: [ padding: EdgeInsets.symmetric(horizontal: 15, vertical: 5),
Row( child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [
children: [ Row(
Text('Average Day',style: TextStyle(fontSize: 17)), mainAxisAlignment: MainAxisAlignment.spaceBetween,
MaterialButton( children: [
Text('Average Day',style: TextStyle(fontSize: 17)),
MaterialButton(
color: Colors.green, color: Colors.green,
onPressed: (){ onPressed: (){
Navigator.of(context).push(MaterialPageRoute(builder: (context)=> AvgDayPage())); Navigator.of(context).push(MaterialPageRoute(builder: (context)=> AvgDayPage()));
}, },
child: Text('More...'), child: Text('More...'),
) )
], ],
), ),
Divider(), Divider(),
Container( Container(
height: 400, height: 400,
padding: EdgeInsets.all(10), padding: EdgeInsets.all(10),
child: Padding( child: Padding(
padding: EdgeInsets.all(8), padding: EdgeInsets.all(8),
child: (!days.isEmpty) child: (!days.isEmpty)
? Column( ? Column(
children: [ children: [
Expanded( Expanded(
child: SfCircularChart(legend: Legend(isVisible: true,position: LegendPosition.bottom,overflowMode: LegendItemOverflowMode.wrap), series: <CircularSeries>[ child: SfCircularChart(legend: Legend(isVisible: true,position: LegendPosition.bottom,overflowMode: LegendItemOverflowMode.wrap), series: <CircularSeries>[
// Render pie chart // Render pie chart
PieSeries<CatMapData, String>( PieSeries<CatMapData, String>(
dataSource: avgDayData, dataSource: avgDayData,
pointColorMapper: (CatMapData data, _) => data.color, pointColorMapper: (CatMapData data, _) => data.color,
xValueMapper: (CatMapData data, _) => data.name, xValueMapper: (CatMapData data, _) => data.name,
yValueMapper: (CatMapData data, _) => data.time, yValueMapper: (CatMapData data, _) => data.time,
dataLabelMapper: (CatMapData sales, _) => MinutesToTimeString(sales.time), dataLabelMapper: (CatMapData sales, _) => MinutesToTimeString(sales.time),
dataLabelSettings: DataLabelSettings(isVisible: true, useSeriesColor: true, overflowMode: OverflowMode.shift, showZeroValue: false)) dataLabelSettings: DataLabelSettings(isVisible: true, useSeriesColor: true, overflowMode: OverflowMode.shift, showZeroValue: false))
])) ]))
], ],
) )
: Row(mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.center, children: [CircularProgressIndicator()]))), : Row(mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.center, children: [CircularProgressIndicator()]))),
], ],
),
)
),
Card(
child: Container(
padding: EdgeInsets.all(8),
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Text("Compare",style: TextStyle(fontSize: 17)),
],
),
Divider(),
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
MaterialButton(color: Colors.blue,onPressed: (){}, child: Text("Task Types"),),
MaterialButton(color: Colors.blue,onPressed: (){}, child: Text("Categories"),),
MaterialButton(color: Colors.blue,onPressed: (){}, child: Text("Days"),),
],
)
],
),
), ),
) )
) ],
], )
) ),
), ),
), ),
), ),

View File

@@ -184,9 +184,9 @@ class Settings{
}else{ }else{
var uuid = Uuid(); var uuid = Uuid();
String _uuid = uuid.v4(); String _uuid = uuid.v4();
if(Platform.isAndroid){ // if(Platform.isAndroid){
//
} // }
await prefs.setString('uuid',_uuid); await prefs.setString('uuid',_uuid);
return Future.value(_uuid); return Future.value(_uuid);
} }

View File

@@ -2,6 +2,7 @@ import 'dart:async';
import 'dart:io'; import 'dart:io';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart' as K;
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
import 'package:tasktracker/NewProject.dart'; import 'package:tasktracker/NewProject.dart';
@@ -19,7 +20,7 @@ import 'package:sqflite_common/sqlite_api.dart';
import 'Tasks.dart'; import 'Tasks.dart';
import 'Dialogs.dart'; import 'Dialogs.dart';
bool cacheEnabled = true; bool cacheEnabled = !K.kIsWeb;
late http.Response loginResponse; late http.Response loginResponse;
@@ -63,15 +64,16 @@ Future<http.Response> login(String _username, String password) async {
Future<void> initUserData() async { Future<void> initUserData() async {
if (cacheEnabled) { if (cacheEnabled) {
await initCacheDatabase(); await initCacheDatabase();
int catCount = Sqflite.firstIntValue(await cacheDb.rawQuery('SELECT COUNT(*) FROM Categories')) ?? 0;
int taskCount = Sqflite.firstIntValue(await cacheDb.rawQuery('SELECT COUNT(*) FROM TaskTypes')) ?? 0;
if(catCount > 0 && taskCount > 0){
await refreshUserData(forceOffline: true);
refreshUserData();
}else{
await refreshUserData();
}
} }
int catCount = Sqflite.firstIntValue(await cacheDb.rawQuery('SELECT COUNT(*) FROM Categories')) ?? 0;
int taskCount = Sqflite.firstIntValue(await cacheDb.rawQuery('SELECT COUNT(*) FROM TaskTypes')) ?? 0;
if(catCount > 0 && taskCount > 0){
await refreshUserData(forceOffline: true);
refreshUserData();
}else{
await refreshUserData();
}
BuildBridgeToServer(); BuildBridgeToServer();
Debug.Log('Initializing UserData...'); Debug.Log('Initializing UserData...');
@@ -156,7 +158,7 @@ Future<void> refreshUserData({bool forceOffline = false}) async {
refreshStream.add(false); refreshStream.add(false);
} else { } else {
if(false) { if(K.kIsWeb) {
Debug.LogTest('updating cats ${DateTime.now()}'); Debug.LogTest('updating cats ${DateTime.now()}');
categories = await GetCategories(false); categories = await GetCategories(false);
Debug.LogTest('updating projs ${DateTime.now()}'); Debug.LogTest('updating projs ${DateTime.now()}');
@@ -197,12 +199,13 @@ Future<void> refreshUserData({bool forceOffline = false}) async {
Debug.LogTest('Done filling @ ${DateTime.now()}'); Debug.LogTest('Done filling @ ${DateTime.now()}');
categories = await GetCategories(true);
projects = await GetProjects(true); categories = await GetCategories(true);
taskTypes = await GetTaskTypes(true); projects = await GetProjects(true);
activities = await GetActivities(true); taskTypes = await GetTaskTypes(true);
journal = await GetJournals(true); activities = await GetActivities(true);
todos = await GetTodos(true); journal = await GetJournals(true);
todos = await GetTodos(true);
} catch (e) { } catch (e) {
@@ -220,7 +223,7 @@ Future<void> refreshUserData({bool forceOffline = false}) async {
} }
Future<bool> cacheDbExist() async { Future<bool> cacheDbExist() async {
if (Platform.isAndroid || Platform.isIOS) { if (!K.kIsWeb && Platform.isAndroid || Platform.isIOS) {
Directory directory = await getApplicationDocumentsDirectory(); Directory directory = await getApplicationDocumentsDirectory();
return databaseFactory.databaseExists(directory.path + 'cache.db'); return databaseFactory.databaseExists(directory.path + 'cache.db');
} else { } else {
@@ -248,7 +251,7 @@ Future<void> updateProjectsList() async {
Future<void> initCacheDatabase() async { Future<void> initCacheDatabase() async {
Directory directory = await getApplicationDocumentsDirectory(); Directory directory = await getApplicationDocumentsDirectory();
Debug.LogResponse('database at ' + directory.path + '/cache.db'); Debug.LogResponse('database at ' + directory.path + '/cache.db');
if (Platform.isAndroid || Platform.isIOS) { if (!K.kIsWeb && Platform.isAndroid || Platform.isIOS) {
cacheDb = await openDatabase(directory.path + 'cache.db', version: 1, onCreate: onCacheDatabaseCreate, onUpgrade: onCacheDatabaseUpgrade); cacheDb = await openDatabase(directory.path + 'cache.db', version: 1, onCreate: onCacheDatabaseCreate, onUpgrade: onCacheDatabaseUpgrade);
} else { } else {
cacheDb = await SqlFF.databaseFactoryFfi cacheDb = await SqlFF.databaseFactoryFfi

View File

@@ -2,6 +2,7 @@ import 'dart:async';
import 'dart:io'; import 'dart:io';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart' as K;
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart';
@@ -29,6 +30,7 @@ import 'package:syncfusion_flutter_charts/charts.dart';
import 'Dialogs.dart'; import 'Dialogs.dart';
import 'CustomWidgets.dart'; import 'CustomWidgets.dart';
import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_core/firebase_core.dart';
final GlobalKey<NavigatorState> navigatorKey = new GlobalKey<NavigatorState>(); final GlobalKey<NavigatorState> navigatorKey = new GlobalKey<NavigatorState>();
showAlertDialog(BuildContext context, String title, String message) { showAlertDialog(BuildContext context, String title, String message) {
// set up the button // set up the button
@@ -76,9 +78,9 @@ extension HexColor on Color {
void main() async { void main() async {
//Wakelock.enable(); // or Wakelock.toggle(on: true); //Wakelock.enable(); // or Wakelock.toggle(on: true);
WidgetsFlutterBinding.ensureInitialized();
if(Platform.isAndroid || Platform.isIOS){
if(!K.kIsWeb &&(Platform.isAndroid || Platform.isIOS)){
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(); await Firebase.initializeApp();
} }
// //