Merge remote-tracking branch 'origin/firebase' into dev
This commit is contained in:
@@ -1,81 +0,0 @@
|
|||||||
import '../model/note.dart';
|
|
||||||
import '../model/promemoria.dart';
|
|
||||||
import 'database.dart';
|
|
||||||
|
|
||||||
class Controller {
|
|
||||||
NoteDatabase database = NoteDatabase.instance;
|
|
||||||
|
|
||||||
Future<List<Note>> getAllNote() async {
|
|
||||||
final db = await database.database;
|
|
||||||
var notes = await db.query(noteTable);
|
|
||||||
List<Note> noteList = notes.map((e) => Note.fromJson(e)).toList();
|
|
||||||
return noteList;
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<List<Promemoria>> getAllPromemoria() async {
|
|
||||||
final db = await database.database;
|
|
||||||
var promemorias = await db.query(promemoriaTable);
|
|
||||||
List<Promemoria> promemoriaList =
|
|
||||||
promemorias.map((e) => Promemoria.fromJson(e)).toList();
|
|
||||||
return promemoriaList;
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<Note> getNoteById(int id) async {
|
|
||||||
final db = await database.database;
|
|
||||||
var note = await db.query(noteTable, where: 'id = ?', whereArgs: [id]);
|
|
||||||
return Note.fromJson(note.first);
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<Promemoria> getPromemoriaById(int id) async {
|
|
||||||
final db = await database.database;
|
|
||||||
var promemoria =
|
|
||||||
await db.query(promemoriaTable, where: 'id = ?', whereArgs: [id]);
|
|
||||||
return Promemoria.fromJson(promemoria.first);
|
|
||||||
}
|
|
||||||
|
|
||||||
//add note
|
|
||||||
void addNote(Note note) async {
|
|
||||||
final db = await database.database;
|
|
||||||
await db.execute('''
|
|
||||||
INSERT INTO note (
|
|
||||||
title,
|
|
||||||
creationDate,
|
|
||||||
lastModificationDate,
|
|
||||||
arrayPromemoria,
|
|
||||||
description
|
|
||||||
) VALUES (
|
|
||||||
'${note.title}',
|
|
||||||
'${note.creationDate}',
|
|
||||||
'${note.lastModificationDate}',
|
|
||||||
'${note.arrayPromemoria}',
|
|
||||||
'${note.description}'
|
|
||||||
)
|
|
||||||
''');
|
|
||||||
}
|
|
||||||
|
|
||||||
//add Promemoria
|
|
||||||
void addPromemoria(Promemoria promemoria) async {
|
|
||||||
final db = await database.database;
|
|
||||||
await db.execute('''
|
|
||||||
INSERT INTO promemoria (
|
|
||||||
title,
|
|
||||||
creationDate,
|
|
||||||
lastModificationDate,
|
|
||||||
expirationDate,
|
|
||||||
arrayPromemoria,
|
|
||||||
description,
|
|
||||||
priority,
|
|
||||||
color
|
|
||||||
) VALUES (
|
|
||||||
'${promemoria.title}',
|
|
||||||
'${promemoria.creationDate}',
|
|
||||||
'${promemoria.lastModificationDate}',
|
|
||||||
'${promemoria.expirationDate}',
|
|
||||||
'${promemoria.arrayPromemoria}',
|
|
||||||
'${promemoria.description}',
|
|
||||||
'${promemoria.priority}',
|
|
||||||
'${promemoria.color}'
|
|
||||||
)
|
|
||||||
''');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,11 +1,13 @@
|
|||||||
import 'package:path/path.dart';
|
import 'package:path/path.dart';
|
||||||
import 'package:sqflite/sqflite.dart';
|
import 'package:sqflite/sqflite.dart';
|
||||||
|
import '../model/note.dart';
|
||||||
|
import 'FireDb.dart';
|
||||||
import 'package:progetto_m335_flutter/model/promemoria.dart';
|
import 'package:progetto_m335_flutter/model/promemoria.dart';
|
||||||
|
|
||||||
class NoteDatabase {
|
class NoteDatabase {
|
||||||
static final NoteDatabase instance = NoteDatabase._init();
|
static final NoteDatabase instance = NoteDatabase._init();
|
||||||
static Database? _database;
|
static Database? _database;
|
||||||
|
FireDb fireDb = FireDb();
|
||||||
|
|
||||||
NoteDatabase._init();
|
NoteDatabase._init();
|
||||||
|
|
||||||
@@ -24,114 +26,31 @@ class NoteDatabase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future _createDB(Database database, int version) async {
|
Future _createDB(Database database, int version) async {
|
||||||
|
|
||||||
await database.execute('''CREATE TABLE promemoria (
|
await database.execute('''CREATE TABLE promemoria (
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
title TEXT NOT NULL,
|
title TEXT NOT NULL,
|
||||||
creationDate TEXT NOT NULL,
|
creationDate TEXT NOT NULL,
|
||||||
lastModificationDate TEXT,
|
lastModificationDate TEXT,
|
||||||
expirationDate TEXT,
|
expirationDate TEXT,
|
||||||
arrayPromemoria TEXT,
|
arrayPromemoria TEXT,
|
||||||
description TEXT,
|
description TEXT,
|
||||||
priority TEXT,
|
priority TEXT,
|
||||||
color TEXT
|
color TEXT
|
||||||
);
|
);
|
||||||
''');
|
''');
|
||||||
|
|
||||||
await database.execute('''CREATE TABLE note (
|
await database.execute('''CREATE TABLE note (
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
title TEXT NOT NULL,
|
title TEXT NOT NULL,
|
||||||
creationDate TEXT NOT NULL,
|
creationDate TEXT NOT NULL,
|
||||||
lastModificationDate TEXT,
|
lastModificationDate TEXT,
|
||||||
arrayPromemoria TEXT,
|
arrayPromemoria TEXT,
|
||||||
description TEXT
|
description TEXT
|
||||||
);
|
);
|
||||||
''');
|
''');
|
||||||
|
|
||||||
print("database created");
|
print("database created");
|
||||||
await fillDemoData(database, version);
|
getDataFromFirebase(database, version);
|
||||||
}
|
|
||||||
|
|
||||||
Future fillDemoData(Database database, int version) async {
|
|
||||||
|
|
||||||
// Add fake categories
|
|
||||||
await database.execute('''
|
|
||||||
INSERT INTO note (
|
|
||||||
title,
|
|
||||||
creationDate,
|
|
||||||
lastModificationDate,
|
|
||||||
arrayPromemoria,
|
|
||||||
description
|
|
||||||
) VALUES (
|
|
||||||
'Nota 2',
|
|
||||||
'2023-09-28',
|
|
||||||
'2023-09-28',
|
|
||||||
'1,1',
|
|
||||||
'Questo è un esempio di nota 2.'
|
|
||||||
)
|
|
||||||
''');
|
|
||||||
|
|
||||||
await database.execute('''
|
|
||||||
INSERT INTO note (
|
|
||||||
title,
|
|
||||||
creationDate,
|
|
||||||
lastModificationDate,
|
|
||||||
arrayPromemoria,
|
|
||||||
description
|
|
||||||
) VALUES (
|
|
||||||
'Nota 2',
|
|
||||||
'2023-09-28',
|
|
||||||
'2023-09-28',
|
|
||||||
'1,1',
|
|
||||||
'Questo è un esempio di nota 2.'
|
|
||||||
)
|
|
||||||
''');
|
|
||||||
|
|
||||||
await database.execute('''
|
|
||||||
INSERT INTO promemoria (
|
|
||||||
title,
|
|
||||||
creationDate,
|
|
||||||
lastModificationDate,
|
|
||||||
expirationDate,
|
|
||||||
arrayPromemoria,
|
|
||||||
description,
|
|
||||||
priority,
|
|
||||||
color
|
|
||||||
) VALUES (
|
|
||||||
'Promemoria 1',
|
|
||||||
'2023-09-27',
|
|
||||||
'2023-09-27',
|
|
||||||
'2023-10-05',
|
|
||||||
'2,1',
|
|
||||||
'Questo è un esempio di promemoria 1.',
|
|
||||||
'Alta',
|
|
||||||
'Rosso'
|
|
||||||
)
|
|
||||||
''');
|
|
||||||
|
|
||||||
// Add fake budgets
|
|
||||||
await database.execute('''
|
|
||||||
INSERT INTO promemoria (
|
|
||||||
title,
|
|
||||||
creationDate,
|
|
||||||
lastModificationDate,
|
|
||||||
expirationDate,
|
|
||||||
arrayPromemoria,
|
|
||||||
description,
|
|
||||||
priority,
|
|
||||||
color
|
|
||||||
) VALUES (
|
|
||||||
'Promemoria 2',
|
|
||||||
'2023-09-28',
|
|
||||||
'2023-09-28',
|
|
||||||
'2023-10-10',
|
|
||||||
'1,1',
|
|
||||||
'Questo è un esempio di promemoria 2.',
|
|
||||||
'Media',
|
|
||||||
'Verde'
|
|
||||||
)
|
|
||||||
''');
|
|
||||||
print("Demo data inserted");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<List<Map>> selectAllPromemoria() async {
|
Future<List<Map>> selectAllPromemoria() async {
|
||||||
@@ -142,6 +61,108 @@ class NoteDatabase {
|
|||||||
return maps;
|
return maps;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<List<Note>> getAllNote() async {
|
||||||
|
var notes = await _database?.query(noteTable);
|
||||||
|
List<Note> noteList = notes!.map((e) => Note.fromJson(e)).toList();
|
||||||
|
return noteList;
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<List<Promemoria>> getAllPromemoria() async {
|
||||||
|
var promemorias = await _database?.query(promemoriaTable);
|
||||||
|
List<Promemoria> promemoriaList =
|
||||||
|
promemorias!.map((e) => Promemoria.fromJson(e)).toList();
|
||||||
|
return promemoriaList;
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<Note> getNoteById(int id) async {
|
||||||
|
var note = await _database?.query(noteTable, where: 'id = ?', whereArgs: [id]);
|
||||||
|
return Note.fromJson(note!.first);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<Promemoria> getPromemoriaById(int id) async {
|
||||||
|
var promemoria =
|
||||||
|
await _database?.query(promemoriaTable, where: 'id = ?', whereArgs: [id]);
|
||||||
|
return Promemoria.fromJson(promemoria!.first);
|
||||||
|
}
|
||||||
|
|
||||||
|
//add note
|
||||||
|
void addNote(Note note) async {
|
||||||
|
await _database?.execute('''
|
||||||
|
INSERT INTO note (
|
||||||
|
title,
|
||||||
|
creationDate,
|
||||||
|
lastModificationDate,
|
||||||
|
arrayPromemoria,
|
||||||
|
description
|
||||||
|
) VALUES (
|
||||||
|
'${note.title}',
|
||||||
|
'${note.creationDate}',
|
||||||
|
'${note.lastModificationDate}',
|
||||||
|
'${note.arrayPromemoria}',
|
||||||
|
'${note.description}'
|
||||||
|
)
|
||||||
|
''');
|
||||||
|
}
|
||||||
|
|
||||||
|
//add Promemoria
|
||||||
|
void addPromemoria(Promemoria promemoria) async {
|
||||||
|
await _database?.execute('''
|
||||||
|
INSERT INTO promemoria (
|
||||||
|
title,
|
||||||
|
creationDate,
|
||||||
|
lastModificationDate,
|
||||||
|
expirationDate,
|
||||||
|
arrayPromemoria,
|
||||||
|
description,
|
||||||
|
priority,
|
||||||
|
color
|
||||||
|
) VALUES (
|
||||||
|
'${promemoria.title}',
|
||||||
|
'${promemoria.creationDate}',
|
||||||
|
'${promemoria.lastModificationDate}',
|
||||||
|
'${promemoria.expirationDate}',
|
||||||
|
'${promemoria.arrayPromemoria}',
|
||||||
|
'${promemoria.description}',
|
||||||
|
'${promemoria.priority}',
|
||||||
|
'${promemoria.color}'
|
||||||
|
)
|
||||||
|
''');
|
||||||
|
}
|
||||||
|
|
||||||
|
void deleteAll() async {
|
||||||
|
await _database?.execute('''
|
||||||
|
DELETE FROM promemoria
|
||||||
|
''');
|
||||||
|
|
||||||
|
await _database?.execute('''
|
||||||
|
DELETE FROM note
|
||||||
|
''');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void getDataFromFirebase(Database database, int version) async {
|
||||||
|
this.deleteAll();
|
||||||
|
|
||||||
|
var promemorias = await fireDb.readAllPromemoria();
|
||||||
|
var notes = await fireDb.readAllNotes();
|
||||||
|
|
||||||
|
for (var promemoria in promemorias) {
|
||||||
|
this.addPromemoria(promemoria);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var note in notes) {
|
||||||
|
this.addNote(note);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void syncData() async {
|
||||||
|
var promemorias = await getAllPromemoria();
|
||||||
|
var notes = await getAllNote();
|
||||||
|
|
||||||
|
await fireDb.deleteAllPromemoria();
|
||||||
|
await fireDb.deleteAllNotes();
|
||||||
|
|
||||||
|
await fireDb.createAllPromemoria(promemorias);
|
||||||
|
await fireDb.createAllNotes(notes);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import 'package:firebase_core/firebase_core.dart';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'myApp.dart';
|
import 'myApp.dart';
|
||||||
|
|
||||||
|
|
||||||
Future<void> main() async {
|
Future<void> main() async {
|
||||||
WidgetsFlutterBinding.ensureInitialized();
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
await Firebase.initializeApp();
|
await Firebase.initializeApp();
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:progetto_m335_flutter/database/controller.dart';
|
|
||||||
import 'package:progetto_m335_flutter/database/database.dart';
|
import 'package:progetto_m335_flutter/database/database.dart';
|
||||||
import 'package:progetto_m335_flutter/model/note.dart';
|
import 'package:progetto_m335_flutter/model/note.dart';
|
||||||
import 'package:progetto_m335_flutter/model/promemoria.dart';
|
import 'package:progetto_m335_flutter/model/promemoria.dart';
|
||||||
@@ -15,7 +14,6 @@ class Test extends StatefulWidget {
|
|||||||
|
|
||||||
class _TestState extends State<Test> {
|
class _TestState extends State<Test> {
|
||||||
NoteDatabase noteDatabase = NoteDatabase.instance;
|
NoteDatabase noteDatabase = NoteDatabase.instance;
|
||||||
Controller controller = Controller();
|
|
||||||
|
|
||||||
Future<void> _pressed() async {
|
Future<void> _pressed() async {
|
||||||
print("Inserting demo data");
|
print("Inserting demo data");
|
||||||
@@ -44,21 +42,23 @@ class _TestState extends State<Test> {
|
|||||||
"alta",
|
"alta",
|
||||||
"rosso");
|
"rosso");
|
||||||
|
|
||||||
controller.addNote(nota);
|
noteDatabase.addNote(nota);
|
||||||
controller.addPromemoria(promemoria);
|
noteDatabase.addPromemoria(promemoria);
|
||||||
|
|
||||||
final db = await noteDatabase.database;
|
final db = await noteDatabase.database;
|
||||||
|
|
||||||
print("Printing data");
|
print("Printing data");
|
||||||
print((await controller.getAllPromemoria()).first);
|
print((await noteDatabase.getAllPromemoria()).first);
|
||||||
print((await controller.getAllNote()).first);
|
print((await noteDatabase.getAllNote()).first);
|
||||||
print("promemoria");
|
print("promemoria");
|
||||||
print(await db.query(promemoriaTable));
|
print(await db.query(promemoriaTable));
|
||||||
print("note");
|
print("note");
|
||||||
print(await db.query(noteTable));
|
print(await db.query(noteTable));
|
||||||
print("Data printed");
|
print("Data printed");
|
||||||
|
|
||||||
|
print("savedata from database to firebase");
|
||||||
|
noteDatabase.syncData();
|
||||||
|
print("data saved");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user