New registration bug fixed (init data not working on web)
This commit is contained in:
40
assets/ca/certificate.crt
Normal file
40
assets/ca/certificate.crt
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIHATCCBemgAwIBAgIQdYaBpc1LZ3O20DsKU64NdjANBgkqhkiG9w0BAQsFADBy
|
||||||
|
MQswCQYDVQQGEwJVUzELMAkGA1UECBMCVFgxEDAOBgNVBAcTB0hvdXN0b24xFTAT
|
||||||
|
BgNVBAoTDGNQYW5lbCwgSW5jLjEtMCsGA1UEAxMkY1BhbmVsLCBJbmMuIENlcnRp
|
||||||
|
ZmljYXRpb24gQXV0aG9yaXR5MB4XDTIyMDIwNjAwMDAwMFoXDTIyMDUwNzIzNTk1
|
||||||
|
OVowIjEgMB4GA1UEAxMXdnBzLnBsYXlwb29sc3R1ZGlvcy5jb20wggIiMA0GCSqG
|
||||||
|
SIb3DQEBAQUAA4ICDwAwggIKAoICAQDZb8DUkCzrMRTXeXZxxOiKxUJlGWXrZdaO
|
||||||
|
kB2tnpv6JH0wQm7hZMRTZgD6UhiLMV/9wt9VScZ/s3VDq6D9VAkTpQ64gwl4ozoW
|
||||||
|
MzgVk+goZbS/grOPdmWmGNLpul5kgJ74DCKu8NRx8EovJK2ItaJ6HX51ckcBpjwV
|
||||||
|
JAmiO8xYmSs9t14eRDtu2O8CgC6/fc63Wp+yLbK3kpZX3vuwzSZd1MsVapi5JsPG
|
||||||
|
EzFyQAD/vfoV60l0oVdhJtYOqAr06csVvKDxAC1IoBlxy4yg62O8IF23pTHr0QN7
|
||||||
|
p0VLsOElSCC+I6ci6Uwtpx9AvqavSXintAGm0bm0fwKKUovQBm8y6l4IwyY3+B/k
|
||||||
|
Hq8TntX3bjoSDA9PrqM9+5k2ZPmpW5cnrOa5fDxFu6wfQIHiwcQ09UeOSbXw9wBY
|
||||||
|
iPqxBSEDjYylhg8zQVrPo5x4aS5K4jVdatCiQDVFDYxRw7D3+0CtT56HfC6IDsIx
|
||||||
|
HrB3vHMcXxcB6JCsn+zp2sv8No+HbD1I/5Smm83Lr+ysSmyopFXZph+S8r9qUv4J
|
||||||
|
HgaJlLHBOkRMC6iEW9wt7wws6z/U+UVLOHX4ORqxObWHx8560cnp8nyiW70xEEn9
|
||||||
|
bNi4iA3tijwcW45gJJYFPIrlHIJ50T+6BjNBeYM/5w94AM4V821ZOe8Ekr1+yrdQ
|
||||||
|
la9JjyPJGQIDAQABo4IC4TCCAt0wHwYDVR0jBBgwFoAUfgNaZUFrp34K4bidCOod
|
||||||
|
jh1qx2UwHQYDVR0OBBYEFBGOwoebiHl31SmCmop3xEE7RK3sMA4GA1UdDwEB/wQE
|
||||||
|
AwIFoDAMBgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD
|
||||||
|
AjBJBgNVHSAEQjBAMDQGCysGAQQBsjEBAgI0MCUwIwYIKwYBBQUHAgEWF2h0dHBz
|
||||||
|
Oi8vc2VjdGlnby5jb20vQ1BTMAgGBmeBDAECATBMBgNVHR8ERTBDMEGgP6A9hjto
|
||||||
|
dHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9jUGFuZWxJbmNDZXJ0aWZpY2F0aW9uQXV0
|
||||||
|
aG9yaXR5LmNybDB9BggrBgEFBQcBAQRxMG8wRwYIKwYBBQUHMAKGO2h0dHA6Ly9j
|
||||||
|
cnQuY29tb2RvY2EuY29tL2NQYW5lbEluY0NlcnRpZmljYXRpb25BdXRob3JpdHku
|
||||||
|
Y3J0MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wggEDBgor
|
||||||
|
BgEEAdZ5AgQCBIH0BIHxAO8AdQBGpVXrdfqRIDC1oolp9PN9ESxBdL79SbiFq/L8
|
||||||
|
cP5tRwAAAX7QktcXAAAEAwBGMEQCIFrbqvegkFyZYBhtQ6jiz3G8JCcUqfCbBFYK
|
||||||
|
2drnkxJlAiB1EF6Dr8nfwxVGi+BtxWXCiDwtXm1CenfLanMLcKDi9QB2AEHIyrHf
|
||||||
|
IkZKEMahOglCh15OMYsbA+vrS8do8JBilgb2AAABftCS1yAAAAQDAEcwRQIhALHB
|
||||||
|
SjVZlGTCj0VSlJECgfN87kebnuEKoZVFyOCCfEvAAiAF3kipkv2ULXxwcctZQ/Ac
|
||||||
|
1oym5EA2oyEwuRBhg2TpjDA/BgNVHREEODA2ghd2cHMucGxheXBvb2xzdHVkaW9z
|
||||||
|
LmNvbYIbd3d3LnZwcy5wbGF5cG9vbHN0dWRpb3MuY29tMA0GCSqGSIb3DQEBCwUA
|
||||||
|
A4IBAQBjk+qwy+FckSF6Aji/8AqYFkcgEbdrcYS7d6za7ZkOiv9UOiOWtqtVDaZZ
|
||||||
|
I/1yLcsB1XTxcPvdyAh36E6sZ6l3Yv21XJvr7qqiMvQv6W8Hz1/Io2aLxtBJ2C3S
|
||||||
|
NTh1xN+VjqYl78qaySLCRPdppTklBr+7He/HrXkM0aIbbCjaDUdtbM3x98aRsahA
|
||||||
|
psk2ih6U7KtTX0t8kS+pNunkGsqhznhttBCTUMAWaxbFTSkavCoVrDDmnhDeOrmL
|
||||||
|
aagBi4biPtWeSIfhY0anCMXHQsROACET9hfiAgBGfVkvZBVqZ9AvRZS7NRzU3/Uh
|
||||||
|
/h/gKE3JOQYZk+CvGyQTHsU3w++h
|
||||||
|
-----END CERTIFICATE-----
|
||||||
30
assets/ca/lets-encrypt-r3.pem
Normal file
30
assets/ca/lets-encrypt-r3.pem
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw
|
||||||
|
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
|
||||||
|
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw
|
||||||
|
WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
|
||||||
|
RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
|
||||||
|
AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP
|
||||||
|
R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx
|
||||||
|
sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm
|
||||||
|
NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg
|
||||||
|
Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG
|
||||||
|
/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC
|
||||||
|
AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB
|
||||||
|
Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA
|
||||||
|
FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw
|
||||||
|
AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw
|
||||||
|
Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB
|
||||||
|
gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W
|
||||||
|
PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl
|
||||||
|
ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz
|
||||||
|
CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm
|
||||||
|
lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4
|
||||||
|
avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2
|
||||||
|
yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O
|
||||||
|
yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids
|
||||||
|
hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+
|
||||||
|
HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv
|
||||||
|
MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX
|
||||||
|
nLRbwHOoq7hHwg==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
@@ -4,6 +4,8 @@ import 'package:flutter_spinkit/flutter_spinkit.dart';
|
|||||||
import 'main.dart';
|
import 'main.dart';
|
||||||
|
|
||||||
class Dialogs{
|
class Dialogs{
|
||||||
|
static String syncingMessage = "Syncing";
|
||||||
|
|
||||||
static showAlertDialog(BuildContext context, String title, String message) {
|
static showAlertDialog(BuildContext context, String title, String message) {
|
||||||
// set up the button
|
// set up the button
|
||||||
Widget okButton = TextButton(
|
Widget okButton = TextButton(
|
||||||
@@ -54,7 +56,7 @@ class Dialogs{
|
|||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
SpinKitChasingDots(color: Colors.green),
|
SpinKitChasingDots(color: Colors.green),
|
||||||
Expanded(child: Text(title,textAlign: TextAlign.center,)),
|
Expanded(child: Text(syncingMessage,textAlign: TextAlign.center,)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter_datetime_picker/flutter_datetime_picker.dart';
|
import 'package:flutter_datetime_picker/flutter_datetime_picker.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:flutter_colorpicker/flutter_colorpicker.dart';
|
import 'package:flutter_colorpicker/flutter_colorpicker.dart';
|
||||||
|
import 'package:tasktracker/main.dart';
|
||||||
import 'User.dart' as User;
|
import 'User.dart' as User;
|
||||||
import 'Data.dart';
|
import 'Data.dart';
|
||||||
import 'package:flutter_switch/flutter_switch.dart';
|
import 'package:flutter_switch/flutter_switch.dart';
|
||||||
@@ -657,10 +658,11 @@ class _NewProject2State extends State<NewProject2> {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OnClickAdd() async{
|
||||||
|
if(projectName==null || deadline.isBefore(DateTime.now())){showAlertDialog(context, 'Error', 'Please make sure you have entered correct information'); return;}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void OnClickedAdd(){
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import 'package:device_info_plus/device_info_plus.dart';
|
|||||||
import 'package:sqflite_common/sqlite_api.dart';
|
import 'package:sqflite_common/sqlite_api.dart';
|
||||||
import 'package:sqflite_common_ffi/sqflite_ffi.dart' as SqlFF;
|
import 'package:sqflite_common_ffi/sqflite_ffi.dart' as SqlFF;
|
||||||
import 'Tasks.dart';
|
import 'Tasks.dart';
|
||||||
|
import 'Dialogs.dart';
|
||||||
|
|
||||||
bool cacheEnabled = true;
|
bool cacheEnabled = true;
|
||||||
|
|
||||||
@@ -163,6 +164,7 @@ void onCacheDatabaseCreate(Database db, int newVersion) async {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<void> addInitialDataToCache() async {
|
Future<void> addInitialDataToCache() async {
|
||||||
|
Dialogs.syncingMessage= "Adding initial data";
|
||||||
print("adding init data");
|
print("adding init data");
|
||||||
await Future.delayed(const Duration(seconds: 1));
|
await Future.delayed(const Duration(seconds: 1));
|
||||||
|
|
||||||
@@ -170,7 +172,7 @@ Future<void> addInitialDataToCache() async {
|
|||||||
for (Category element in InitialData.getCategories(username)) {
|
for (Category element in InitialData.getCategories(username)) {
|
||||||
await UserOperations.addCategory(element.name, element.color, element.productive, bulk: true);
|
await UserOperations.addCategory(element.name, element.color, element.productive, bulk: true);
|
||||||
}
|
}
|
||||||
|
Dialogs.syncingMessage= "Just a minute";
|
||||||
for (TaskType element in InitialData.getTaskTypes(username)) {
|
for (TaskType element in InitialData.getTaskTypes(username)) {
|
||||||
await UserOperations.addTaskType(element.name, element.category, bulk: true);
|
await UserOperations.addTaskType(element.name, element.category, bulk: true);
|
||||||
// Map<String,Object> data = {
|
// Map<String,Object> data = {
|
||||||
@@ -179,8 +181,9 @@ Future<void> addInitialDataToCache() async {
|
|||||||
// };
|
// };
|
||||||
// await cacheDb.insert('TaskTypes', data);
|
// await cacheDb.insert('TaskTypes', data);
|
||||||
}
|
}
|
||||||
|
Dialogs.syncingMessage= "Syncing";
|
||||||
await UserOperations.executeQueries();
|
await UserOperations.executeQueries();
|
||||||
await refreshUserData();
|
// await refreshUserData();
|
||||||
}
|
}
|
||||||
|
|
||||||
void onCacheDatabaseUpgrade(Database db, int oldVersion, int newVersion) async {
|
void onCacheDatabaseUpgrade(Database db, int oldVersion, int newVersion) async {
|
||||||
@@ -322,19 +325,24 @@ Future<List<TaskType>> GetTaskTypes(bool forceOffline) async {
|
|||||||
}
|
}
|
||||||
taskTypes = _taskTypes;
|
taskTypes = _taskTypes;
|
||||||
} else {
|
} else {
|
||||||
|
List<TaskType> _taskTypes = [];
|
||||||
print("NC: Updating TaskTypes as $username");
|
print("NC: Updating TaskTypes as $username");
|
||||||
|
try {
|
||||||
http.Response response = (await http.post(Uri.parse('http://161.97.127.136/task_tracker/get_taskTypes.php'),
|
http.Response response = (await http.post(Uri.parse('http://161.97.127.136/task_tracker/get_taskTypes.php'),
|
||||||
body: <String, String>{"username": username, "device_id": await Settings.UUID()}));
|
body: <String, String>{"username": username, "device_id": await Settings.UUID()}));
|
||||||
|
|
||||||
print("taskType retreive: ${response.body}");
|
print("taskType retreive (try): ${response.body}");
|
||||||
List<String> data = response.body.split("<td>");
|
List<String> data = response.body.split("<td>");
|
||||||
List<TaskType> _taskTypes = [];
|
|
||||||
for (var value in data) {
|
for (var value in data) {
|
||||||
Map<String, dynamic> data = jsonDecode(value);
|
Map<String, dynamic> data = jsonDecode(value);
|
||||||
Category? cat = await getCatFromId(data['category_id']);
|
Category? cat = await getCatFromId(data['category_id']);
|
||||||
_taskTypes.add(TaskType(data['task_id'], data['name'], data['category_id'], cat));
|
_taskTypes.add(TaskType(data['task_id'], data['name'], data['category_id'], cat));
|
||||||
//print(cat);
|
//print(cat);
|
||||||
}
|
}
|
||||||
|
}catch(e){
|
||||||
|
print("Error while tasks NC $e");
|
||||||
|
}
|
||||||
|
|
||||||
taskTypes = _taskTypes;
|
taskTypes = _taskTypes;
|
||||||
}
|
}
|
||||||
@@ -715,12 +723,7 @@ class UserOperations {
|
|||||||
//Check for timeoverlapse
|
//Check for timeoverlapse
|
||||||
activities = await GetActivities(true);
|
activities = await GetActivities(true);
|
||||||
int? overlapCount = Sqflite.firstIntValue(await cacheDb.rawQuery(
|
int? overlapCount = Sqflite.firstIntValue(await cacheDb.rawQuery(
|
||||||
"SELECT COUNT(*) FROM Activities WHERE (((${Activity.colStartTime} < datetime('$sTime')) AND ((${Activity
|
"SELECT COUNT(*) FROM Activities WHERE (((${Activity.colStartTime} < datetime('$sTime')) AND ((${Activity.colEndTime} > datetime('$eTime')) OR (${Activity.colEndTime} < datetime('$eTime') AND ${Activity.colEndTime} > datetime('$sTime')))) OR (${Activity.colStartTime} > datetime('$sTime') AND ${Activity.colStartTime} < datetime('$eTime')) OR (${Activity.colStartTime}=datetime('$sTime') AND ${Activity.colEndTime}=datetime('$eTime'))) AND ${Activity.colStartTime}!=datetime('${init_sTime}') AND ${Activity.colEndTime} != datetime('${init_eTime}')"));
|
||||||
.colEndTime} > datetime('$eTime')) OR (${Activity.colEndTime} < datetime('$eTime') AND ${Activity
|
|
||||||
.colEndTime} > datetime('$sTime')))) OR (${Activity.colStartTime} > datetime('$sTime') AND ${Activity
|
|
||||||
.colStartTime} < datetime('$eTime')) OR (${Activity.colStartTime}=datetime('$sTime') AND ${Activity
|
|
||||||
.colEndTime}=datetime('$eTime'))) AND ${Activity.colStartTime}!=datetime('${init_sTime}') AND ${Activity
|
|
||||||
.colEndTime} != datetime('${init_eTime}')"));
|
|
||||||
|
|
||||||
print("ActivityOverlaps: $overlapCount");
|
print("ActivityOverlaps: $overlapCount");
|
||||||
if (overlapCount! > 0) {
|
if (overlapCount! > 0) {
|
||||||
@@ -728,7 +731,6 @@ class UserOperations {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (metadata.length > 0) {}
|
if (metadata.length > 0) {}
|
||||||
//Add Query
|
//Add Query
|
||||||
|
|
||||||
@@ -759,6 +761,43 @@ class UserOperations {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Future<void> addProject(String name, String category, List<ProjectStep> steps, DateTime deadline) async {
|
||||||
|
Map<String, String> queryBody = <String, String>{
|
||||||
|
'name': username + name,
|
||||||
|
'username': username,
|
||||||
|
'device_id': await Settings.UUID(),
|
||||||
|
'category': username + category,
|
||||||
|
'steps': jsonEncode(steps),
|
||||||
|
'deadline': DateFormat("yyyy-mm-dd").format(deadline)
|
||||||
|
};
|
||||||
|
|
||||||
|
if (cacheEnabled) {
|
||||||
|
//Add Query
|
||||||
|
Map<String, Object> query = {Queries.colLink: 'add_project', Queries.colData: jsonEncode(queryBody)};
|
||||||
|
|
||||||
|
print("adding new query ${query[Queries.colLink]} : ${jsonEncode(queryBody)}");
|
||||||
|
|
||||||
|
await cacheDb.insert('Queries', query);
|
||||||
|
|
||||||
|
//update Cache
|
||||||
|
Map<String, Object> data = {};
|
||||||
|
await cacheDb.insert('Projects', data);
|
||||||
|
await refreshUserData();
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
http.Response queryResponse = (await http.post(Uri.parse('http://161.97.127.136/task_tracker/add_project.php'), body: queryBody));
|
||||||
|
print("Query executed : Results{${queryResponse.body}");
|
||||||
|
if (queryResponse.body.toLowerCase().contains("success")) {
|
||||||
|
//Success
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
print('NC: Error adding prjct $e}');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
await executeQueries();
|
||||||
|
}
|
||||||
|
|
||||||
static Future<void> deleteTask(String name, {bulk = false}) async {
|
static Future<void> deleteTask(String name, {bulk = false}) async {
|
||||||
Map<String, String> queryBody = <String, String>{
|
Map<String, String> queryBody = <String, String>{
|
||||||
'id': username + name,
|
'id': username + name,
|
||||||
@@ -851,8 +890,7 @@ class UserOperations {
|
|||||||
|
|
||||||
//update Cache
|
//update Cache
|
||||||
String deleteQuery =
|
String deleteQuery =
|
||||||
"DELETE FROM Activities WHERE ${Activity.colStartTime}=datetime('${dFormat.format(activity.trueStartTime)}') AND ${Activity
|
"DELETE FROM Activities WHERE ${Activity.colStartTime}=datetime('${dFormat.format(activity.trueStartTime)}') AND ${Activity.colEndTime}=datetime('${dFormat.format(activity.trueEndTime)}')";
|
||||||
.colEndTime}=datetime('${dFormat.format(activity.trueEndTime)}')";
|
|
||||||
print("delteQuery : $deleteQuery");
|
print("delteQuery : $deleteQuery");
|
||||||
|
|
||||||
await cacheDb.rawDelete(deleteQuery);
|
await cacheDb.rawDelete(deleteQuery);
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter/services.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';
|
||||||
@@ -66,8 +68,13 @@ extension HexColor on Color {
|
|||||||
'${blue.toRadixString(16).padLeft(2, '0')}';
|
'${blue.toRadixString(16).padLeft(2, '0')}';
|
||||||
}
|
}
|
||||||
|
|
||||||
void main() {
|
void main() async {
|
||||||
//Wakelock.enable(); // or Wakelock.toggle(on: true);
|
//Wakelock.enable(); // or Wakelock.toggle(on: true);
|
||||||
|
// WidgetsFlutterBinding.ensureInitialized();
|
||||||
|
//
|
||||||
|
// ByteData data = await PlatformAssetBundle().load('assets/ca/certificate.crt');
|
||||||
|
// SecurityContext.defaultContext.setTrustedCertificatesBytes(data.buffer.asUint8List());
|
||||||
|
|
||||||
runApp(const MyApp());
|
runApp(const MyApp());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
10
pubspec.lock
10
pubspec.lock
@@ -208,7 +208,7 @@ packages:
|
|||||||
name: flutter_local_notifications
|
name: flutter_local_notifications
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "9.3.3"
|
version: "9.4.0"
|
||||||
flutter_local_notifications_linux:
|
flutter_local_notifications_linux:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -496,7 +496,7 @@ packages:
|
|||||||
name: sqflite_common
|
name: sqflite_common
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.2.0"
|
version: "2.2.1"
|
||||||
sqflite_common_ffi:
|
sqflite_common_ffi:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -538,14 +538,14 @@ packages:
|
|||||||
name: syncfusion_flutter_charts
|
name: syncfusion_flutter_charts
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "19.4.54"
|
version: "19.4.56"
|
||||||
syncfusion_flutter_core:
|
syncfusion_flutter_core:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: syncfusion_flutter_core
|
name: syncfusion_flutter_core
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "19.4.54"
|
version: "19.4.56"
|
||||||
synchronized:
|
synchronized:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -601,7 +601,7 @@ packages:
|
|||||||
name: wakelock
|
name: wakelock
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.6.1+1"
|
version: "0.6.1+2"
|
||||||
wakelock_macos:
|
wakelock_macos:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -74,6 +74,7 @@ flutter:
|
|||||||
# To add assets to your application, add an assets section, like this:
|
# To add assets to your application, add an assets section, like this:
|
||||||
assets:
|
assets:
|
||||||
- images/
|
- images/
|
||||||
|
- assets/ca/
|
||||||
|
|
||||||
# An image asset can refer to one or more resolution-specific "variants", see
|
# An image asset can refer to one or more resolution-specific "variants", see
|
||||||
# https://flutter.dev/assets-and-images/#resolution-aware.
|
# https://flutter.dev/assets-and-images/#resolution-aware.
|
||||||
|
|||||||
Reference in New Issue
Block a user