Merge remote-tracking branch 'origin/firebase' into dev

This commit is contained in:
grata
2023-09-29 14:50:49 +02:00
4 changed files with 131 additions and 190 deletions

View File

@@ -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}'
)
''');
}
}

View File

@@ -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,7 +26,6 @@ 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,
@@ -49,89 +50,7 @@ class NoteDatabase {
'''); ''');
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);
}
} }

View File

@@ -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();

View File

@@ -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");
} }