25 Commits
Joe ... Zina

Author SHA1 Message Date
Giulia
ccb56ffa9c fix notes 2023-09-29 09:52:26 +02:00
Giulia
bf3a9c552d fix 2023-09-29 09:09:26 +02:00
Giulia
c2196663ae Merge remote-tracking branch 'origin/dev' into Zina
# Conflicts:
#	lib/navigation.dart
#	lib/pages/InboxView.dart
#	lib/pages/TodayView.dart
2023-09-29 08:43:10 +02:00
Tito Arrigo
7d1bec6b0c grafica quasi finita 2023-09-29 08:28:08 +02:00
Giulia
6d9eb5f4db fixed style 2023-09-28 14:45:00 +02:00
lama137
b284a3d6d6 TITOOOOOOOOOOOOO 2023-09-28 14:26:17 +02:00
lama137
d69c7ab525 Merge remote-tracking branch 'origin/Tito' into Zina
# Conflicts:
#	lib/database/database.dart
#	lib/model/note.dart
#	lib/model/promemoria.dart
#	lib/navigation.dart
2023-09-28 14:12:20 +02:00
Giulia
c0c090085f create note 2023-09-28 13:57:51 +02:00
Giulia
850497301c Merge remote-tracking branch 'origin/Zina' into Zina
# Conflicts:
#	lib/pages/NotesView.dart
2023-09-28 13:57:19 +02:00
Giulia
4121239e36 create note 2023-09-28 13:56:54 +02:00
Giulia
abc0926f49 create note 2023-09-28 13:55:49 +02:00
lama137
0d53d1421f Aggiornamento note e pulsanti. 2023-09-28 13:22:47 +02:00
Giulia
b81cfc70fb fix 2023-09-28 13:21:02 +02:00
Tito Arrigo
c2824c99a4 merge 2023-09-28 13:04:42 +02:00
Tito Arrigo
e061871c4f grafica pagina TodayView.dart 2023-09-28 11:46:08 +02:00
lama137
0fb537d24e Aggiornamento note e pulsanti. 2023-09-28 11:04:46 +02:00
lama137
06a3712d0a Aggiornamento note e pulsanti. 2023-09-28 11:03:54 +02:00
Giulia
65ed67b8f6 fixed navigation and added create new note page 2023-09-28 10:40:01 +02:00
Tito Arrigo
29a54bbcbc grafica pagina TodayView.dart 2023-09-28 09:49:09 +02:00
Giulia
bf7981671d add note button 2023-09-28 09:07:00 +02:00
lama137
2f851bc630 IDK 2023-09-28 09:02:52 +02:00
lama137
4c4dcc2654 Merge remote-tracking branch 'origin/Joe' into Zina 2023-09-28 08:48:36 +02:00
Tito Arrigo
330d0e4c61 Merge branch 'Tito' into dev 2023-09-27 14:04:34 +02:00
Tito Arrigo
6a05861341 inizzializazione pagine 2023-09-27 14:02:53 +02:00
Tito Arrigo
4006030f5b added GoggleServie-Info.plist 2023-09-27 13:48:10 +02:00
18 changed files with 530 additions and 162 deletions

View File

@@ -0,0 +1,17 @@
import 'package:flutter/material.dart';
import '../pages/EditReminder.dart';
class EditReminderButton extends StatelessWidget{
@override
Widget build(BuildContext context) {
return FilledButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => EditReminder()),
);
},
child: Icon(Icons.list),
);
}
}

27
lib/Components/Note.dart Normal file
View File

@@ -0,0 +1,27 @@
import 'package:flutter/material.dart';
import '../pages/NoteDetailView.dart';
class Note extends StatefulWidget {
const Note({super.key});
@override
State<Note> createState() => _NotesViewState();
}
class _NotesViewState extends State<Note> {
@override
Widget build(BuildContext context) {
return ListTile(
title: Text("Titolo"),
subtitle: Text('Testo'),
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const NoteDetailView(),
),
);
},
);
}
}

View File

@@ -0,0 +1,25 @@
import 'package:flutter/material.dart';
class QuickReminder extends StatefulWidget {
const QuickReminder({super.key});
@override
State<QuickReminder> createState() => _QuickReminderState();
}
class _QuickReminderState extends State<QuickReminder> {
@override
Widget build(BuildContext context) {
return const ListTile(
leading: Checkbox(
value: false,
onChanged: null,
),
title: TextField(
decoration: InputDecoration(
labelText: 'New Reminder',
),
),
);
}
}

View File

@@ -0,0 +1,39 @@
import 'package:flutter/material.dart';
import '../Components/EditReminderButton.dart';
import '../pages/EditReminder.dart';
class Reminder extends StatefulWidget {
const Reminder({super.key});
@override
State<Reminder> createState() => _ReminderState();
}
class _ReminderState extends State<Reminder> {
bool _value = false;
void _onChanged(bool? newValue) {
setState(() {
_value = newValue ?? false;
});
}
@override
Widget build(BuildContext context) {
return ListTile(
leading: Checkbox(
value: _value,
onChanged: _onChanged,
),
title: Text("Reminder"),
subtitle: Text(DateTime.now().toString()),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => EditReminder()),
);
},
);
}
}

View File

@@ -1,90 +1,103 @@
import 'package:path/path.dart'; import 'package:path/path.dart';
import 'package:sqflite/sqflite.dart';
// Models // Models
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';
import 'package:sqflite/sqflite.dart';
class NoteDatabase { class NoteDatabase {
static final NoteDatabase instance = NoteDatabase._init(); static final NoteDatabase instance = NoteDatabase._init();
static Database? _database; static Database? _database;
// Zero args constructor needed to extend this class
NoteDatabase();
NoteDatabase._init(); NoteDatabase._init();
Future<Database> get database async { Future<Database> get database async {
if (_database != null) return _database!; if (_database != null) return _database!;
_database = await _initDB('note.db'); _database = await _initDB('note.db');
return _database!; return _database!;
} }
Future<Database> _initDB(String filePath) async { Future<Database> _initDB(String filePath) async {
print("Initializing database"); // On Android, it is typically data/data//databases.
// On iOS and MacOS, it is the Documents directory.
final databasePath = await getDatabasesPath(); final databasePath = await getDatabasesPath();
// Directory databasePath = await getApplicationDocumentsDirectory();
final path = join(databasePath, filePath); final path = join(databasePath, filePath);
return await openDatabase(path, version: 1, onCreate: _createDB); return await openDatabase(path, version: 1, onCreate: _createDB);
} }
Future _createDB(Database database, int version) async { Future _createDB(Database database, int version) async {
//check if the database is created
if (database.query(noteTable) != null) {
print("Database already created");
await database.execute('''CREATE TABLE promemoria ( }else{
print("demo data inserting");
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,
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,
description TEXT description TEXT
); );
'''); ''');
print("database created"); print("database created");
}
await fillDemoData(database, version); await fillDemoData(database, version);
} }
Future fillDemoData(Database database, int version) async { Future fillDemoData(Database database, int version) async {
print("boh speriamo funzioni");
// Add some fake accounts
// Add fake categories // Add fake categories
await database.execute(''' await database.execute('''
INSERT INTO note ( INSERT INTO note (
title, title,
creationDate, creationDate,
lastModificationDate, lastModificationDate,
arrayPromemoria,
description description
) VALUES ( ) VALUES (
'Nota 2', 'Nota 2',
'2023-09-28', '2023-09-28',
'2023-09-28', '2023-09-28',
'',
'Questo è un esempio di nota 2.' 'Questo è un esempio di nota 2.'
) )
'''); ''');
await database.execute(''' await database.execute('''
INSERT INTO note ( INSERT INTO note (
title, title,
creationDate, creationDate,
lastModificationDate, lastModificationDate,
arrayPromemoria,
description description
) VALUES ( ) VALUES (
'Nota 2', 'Nota 2',
'2023-09-28', '2023-09-28',
'2023-09-28', '2023-09-28',
'',
'Questo è un esempio di nota 2.' 'Questo è un esempio di nota 2.'
) )
'''); ''');
@@ -96,7 +109,6 @@ class NoteDatabase {
creationDate, creationDate,
lastModificationDate, lastModificationDate,
expirationDate, expirationDate,
arrayPromemoria,
description, description,
priority, priority,
color color
@@ -105,7 +117,6 @@ class NoteDatabase {
'2023-09-27', '2023-09-27',
'2023-09-27', '2023-09-27',
'2023-10-05', '2023-10-05',
'',
'Questo è un esempio di promemoria 1.', 'Questo è un esempio di promemoria 1.',
'Alta', 'Alta',
'Rosso' 'Rosso'
@@ -119,7 +130,6 @@ class NoteDatabase {
creationDate, creationDate,
lastModificationDate, lastModificationDate,
expirationDate, expirationDate,
arrayPromemoria,
description, description,
priority, priority,
color color
@@ -128,7 +138,6 @@ class NoteDatabase {
'2023-09-28', '2023-09-28',
'2023-09-28', '2023-09-28',
'2023-10-10', '2023-10-10',
'',
'Questo è un esempio di promemoria 2.', 'Questo è un esempio di promemoria 2.',
'Media', 'Media',
'Verde' 'Verde'
@@ -150,42 +159,6 @@ class NoteDatabase {
} }
} }
Future close() async {
final database = await instance.database;
database.close();
}
Future<void> deleteDatabase() async {
try {
final databasePath = await getDatabasesPath();
final path = join(databasePath, 'note.db');
databaseFactory.deleteDatabase(path);
} catch (error) {
throw Exception('DbBase.deleteDatabase: $error');
}
}
Future<void> createNote(Database database, Note note) async {
await database.execute('''
INSERT INTO note (
title,
creationDate,
lastModificationDate,
arrayPromemoria,
description,
) VALUES (
'$note.title}',
'$note.creationDate',
'$note.lastModificationDate',
'$note.arrayPromemoria.toString()',
'$note.description',
)
''');
print('note $note.title inserted');
}
Future<List<Map>> selectAllPromemoria() async { Future<List<Map>> selectAllPromemoria() async {
final db = await database; final db = await database;
@@ -194,61 +167,15 @@ class NoteDatabase {
return maps; return maps;
} }
Future<List<Map>> selectAllNotes() async { Future close() async {
final db = await database; final database = await instance.database;
database.close();
final List<Map<String, dynamic>> maps = await db.query(noteTable);
return maps;
} }
Future<void> createPromemoria( // WARNING: FOR DEV/TEST PURPOSES ONLY!!
Database database, Promemoria promemoria) async { Future<void> deleteDatabase() async {
await database.execute(''' final databasePath = await getDatabasesPath();
INSERT INTO promemoria ( final path = join(databasePath, 'note.db');
title, databaseFactory.deleteDatabase(path);
creationDate,
lastModificationDate,
expirationDate,
arrayPromemoria,
description,
priority,
color
) VALUES (
'$promemoria.title',
'$promemoria.creationDate',
'$promemoria.lastModificationDate',
'$promemoria.expirationDate',
'$promemoria.arrayPromemoria.toString()',
'$promemoria.description',
'$promemoria.priority',
'$promemoria.color'
)
''');
print('promemoria $promemoria.title inserted');
} }
Future<Map<String, Object?>> readPromemoria(int id) async {
final db = await database;
final results = await db.query('SELECT * FROM note where id=$id');
return results.first;
}
Future<Map<String, Object?>> readNote(int id) async {
final db = await database;
final results = await db.query('SELECT * FROM promemoria where id=$id');
return results.first;
}
// Future<void> updatePromemoria(Promemoria promemoria) async {
// final db = await database;
//await db.update('promemoria', promemoria, where: 'id = ?',
// Pass the Dog's id as a whereArg to prevent SQL injection.
// whereArgs: [dog.id],)
//}
} }

View File

@@ -1,7 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'myApp.dart'; import '../myApp.dart';
void main() { void main() {
runApp(MyApp()); runApp(MyApp());
print("App started"); }
}

View File

@@ -5,14 +5,12 @@ import 'identifiers/enum/priority.dart';
const String promemoriaTable = 'promemoria'; const String promemoriaTable = 'promemoria';
class Promemoria extends BaseEntity { class Promemoria extends BaseEntity {
static String id = BaseEntity.getId;
static String title = BaseEntity.getTitle;
static String creationDate = BaseEntity.getCreationDate;
static String lastModificationDate = BaseEntity.getLastEditDate;
static String expirationDate = ''; static String expirationDate = '';
static String arrayPromemoria = ''; static String arrayPromemoria = '';
static String description = ''; static String description = '';
static Priority priority = Priority.none; static Priority priority = Priority.none;
static Color color = Color.none; static Color color = Color.none;
} }

View File

@@ -4,14 +4,15 @@ import 'navigation.dart';
class MyApp extends StatelessWidget { class MyApp extends StatelessWidget {
const MyApp({ Key? key }) : super(key: key); const MyApp({ Key? key }) : super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return MaterialApp( return MaterialApp(
title: 'My App', title: 'My App',
theme: ThemeData( theme: ThemeData(
useMaterial3: true, useMaterial3: true,
primaryColor: Colors.red, colorSchemeSeed: Colors.blue,
), ),
home: Navigation() home: Navigation()
); );

View File

@@ -1,11 +1,9 @@
import 'dart:ffi';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'pages/testUI.dart'; import 'pages/testUI.dart';
import 'pages/TodayView.dart'; import 'pages/TodayView.dart';
import 'pages/InboxView.dart'; import 'pages/InboxView.dart';
import 'pages/NotesView.dart'; import 'pages/NotesView.dart';
import 'pages/test.dart';
class Navigation extends StatefulWidget { class Navigation extends StatefulWidget {
const Navigation({super.key}); const Navigation({super.key});
@@ -16,12 +14,11 @@ class Navigation extends StatefulWidget {
class _NavigationState extends State<Navigation> { class _NavigationState extends State<Navigation> {
int _selectedIndex = 3; int _selectedIndex = 0;
static const List<Widget> _widgetOptions = <Widget>[ static const List<Widget> _widgetOptions = <Widget>[
TodayView(), TodayView(),
InboxView(), InboxView(),
NotesView(), NotesView(),
Test()
]; ];
void _onItemTapped(int index) { void _onItemTapped(int index) {
@@ -33,20 +30,17 @@ class _NavigationState extends State<Navigation> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: AppBar( body: SafeArea(child: _widgetOptions.elementAt(_selectedIndex)),
title: Text("BottomNavBar"),
),
body: Center(child: _widgetOptions.elementAt(_selectedIndex)),
bottomNavigationBar: BottomNavigationBar( bottomNavigationBar: BottomNavigationBar(
items: const <BottomNavigationBarItem>[ items: const <BottomNavigationBarItem>[
BottomNavigationBarItem( BottomNavigationBarItem(
icon: Icon(Icons.calendar_today), label: "today"), icon: Icon(Icons.today), label: "today"),
BottomNavigationBarItem(icon: Icon(Icons.inbox), label: "Inbox"), BottomNavigationBarItem(icon: Icon(Icons.inbox), label: "Inbox"),
BottomNavigationBarItem(icon: Icon(Icons.note), label: "Notes"), BottomNavigationBarItem(icon: Icon(Icons.note), label: "Notes"),
BottomNavigationBarItem(icon: Icon(Icons.settings), label: "Settings") ],
], currentIndex: _selectedIndex,
currentIndex: _selectedIndex, onTap: _onItemTapped,
onTap: _onItemTapped, type: BottomNavigationBarType.fixed,
), ),
); );
} }

View File

@@ -0,0 +1,89 @@
import 'package:flutter/material.dart';
import 'package:progetto_m335_flutter/pages/NotesView.dart';
class CreateNewNote extends StatefulWidget {
const CreateNewNote({Key? key}) : super(key: key);
@override
State<CreateNewNote> createState() => _CreateNewNoteState();
}
class _CreateNewNoteState extends State<CreateNewNote> {
TextEditingController _titleController = TextEditingController();
TextEditingController _textController = TextEditingController();
@override
void dispose() {
_titleController.dispose();
_textController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Create New Note'),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
TextField(
controller: _titleController,
decoration: InputDecoration(
hintText: 'Enter a title',
),
),
SizedBox(height: 16),
TextField(
controller: _textController,
maxLines: null,
decoration: InputDecoration(
hintText: 'Enter text',
border: InputBorder.none,
),
),
const SizedBox(height: 10),
const Spacer(),
Row(
children: [
Expanded(
child: ElevatedButton(
onPressed: () {
print("Delete button pressed");
},
style: ElevatedButton.styleFrom(
primary: Colors.red,
),
child: const Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(Icons.delete),
Text("Delete"),
],
),
),
),
const SizedBox(width: 10),
Expanded(
child: ElevatedButton(
onPressed: () {
String title = _titleController.text;
String text = _textController.text;
_titleController.clear();
_textController.clear();
Navigator.pop(context);
},
child: const Text("Save"),
),
),
],
),
], //
),
),
);
}
}

134
lib/pages/EditReminder.dart Normal file
View File

@@ -0,0 +1,134 @@
import 'package:flutter/material.dart';
class EditReminder extends StatefulWidget {
const EditReminder({super.key});
@override
State<EditReminder> createState() => _EditReminderState();
}
class _EditReminderState extends State<EditReminder> {
String _title = "ciaciao";
String _description = "description";
DateTime? _date;
//Arraylist of promemoria
bool _hasDate = true;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Edit Reminder"),
),
body: SafeArea(
child: Padding(
padding: EdgeInsets.all(16.0),
child: Column(
children: <Widget>[
TextField(
controller: TextEditingController(text: _title),
decoration: const InputDecoration(
border: OutlineInputBorder(),
labelText: 'Title',
),
),
const SizedBox(height: 10),
TextField(
onChanged: (text) {
setState(() {
_description = text;
});
},
decoration: const InputDecoration(
border: OutlineInputBorder(),
labelText: 'Description',
),
maxLines: 6,
keyboardType: TextInputType.multiline,
),
const SizedBox(height: 10),
Row(
children: [
FilledButton(
onPressed: () async {
DateTime? newDate = await showDatePicker(
context: context,
initialDate: DateTime.now(),
firstDate: DateTime(1),
lastDate: DateTime(9999));
if (newDate != null) {
setState(() {
_date = newDate;
});
}
},
child: Row(children: [
if (_date != null) Text("${_date?.day}/${_date?.month}/${_date?.year}"),
//if (_date == null) Text("Add Date"),
if (_date != null) const SizedBox(width: 10),
const Icon(Icons.calendar_month)
])),
if (_date != null) IconButton(
onPressed: () {
setState(() {
_date = null;
});
print("setting _date to ${_date}");
},
icon: Icon(Icons.close)),
if (_date == null) TextButton(
onPressed: () {
setState(() {
_date = DateTime.now();
});
print("setting _date to ${_date}");
},
child: const Row(
children: [
Icon(Icons.add),
SizedBox(width: 5),
Text("Add Today")
],
)
)
],
),
const SizedBox(height: 10),
const Spacer(),
Row(
children: [
Expanded(
child: FilledButton(
onPressed: () {
print("ciao");
},
style: ButtonStyle(
backgroundColor:
MaterialStateProperty.all(Colors.red)),
child: const Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(Icons.delete),
Text("Delete"),
],
)),
),
const SizedBox(width: 10),
Expanded(
child: FilledButton(
onPressed: () {
Navigator.pop(context);
},
child: const Text("Save"),
),
),
],
)
],
),
)),
);
}
}

View File

@@ -1,5 +1,8 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
//import components
import '../Components/Reminder.dart';
class InboxView extends StatefulWidget { class InboxView extends StatefulWidget {
const InboxView({super.key}); const InboxView({super.key});
@@ -10,9 +13,15 @@ class InboxView extends StatefulWidget {
class _InboxViewState extends State<InboxView> { class _InboxViewState extends State<InboxView> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return const Scaffold( return Scaffold(
body: Center( appBar: AppBar(
child: Icon(Icons.inbox), title: const Text('Inbox'),
),
body: ListView(
children: const <Widget>[
Reminder(),
Reminder(),
],
) )
); );
} }

View File

@@ -1,19 +1,89 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:progetto_m335_flutter/pages/NotesView.dart';
class NoteDetailView extends StatefulWidget { class NoteDetailView extends StatefulWidget {
const NoteDetailView({super.key}); const NoteDetailView({Key? key}) : super(key: key);
@override @override
State<NoteDetailView> createState() => _NoteDetailViewState(); State<NoteDetailView> createState() => _NoteDetailViewState();
} }
class _NoteDetailViewState extends State<NoteDetailView> { class _NoteDetailViewState extends State<NoteDetailView> {
TextEditingController _titleController = TextEditingController();
TextEditingController _textController = TextEditingController();
@override
void dispose() {
_titleController.dispose();
_textController.dispose();
super.dispose();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return const Scaffold( return Scaffold(
body: Center( appBar: AppBar(
child: Text('NoteDetailView'), title: Text('Edit note'),
) ),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
TextField(
controller: _titleController,
decoration: InputDecoration(
hintText: 'Enter a title',
),
),
SizedBox(height: 16),
TextField(
controller: _textController,
maxLines: null,
decoration: InputDecoration(
hintText: 'Enter text',
border: InputBorder.none,
),
),
const SizedBox(height: 10),
const Spacer(),
Row(
children: [
Expanded(
child: ElevatedButton(
onPressed: () {
print("Delete button pressed");
},
style: ElevatedButton.styleFrom(
primary: Colors.red,
),
child: const Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(Icons.delete),
Text("Delete"),
],
),
),
),
const SizedBox(width: 10),
Expanded(
child: ElevatedButton(
onPressed: () {
String title = _titleController.text;
String text = _textController.text;
_titleController.clear();
_textController.clear();
Navigator.pop(context);
},
child: const Text("Save"),
),
),
],
),
], //
),
),
); );
} }
} }

View File

@@ -1,19 +1,42 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import '../Components/Note.dart';
import 'CreateNewNote.dart';
import 'NoteDetailView.dart';
class NotesView extends StatefulWidget { class NotesView extends StatefulWidget {
const NotesView({super.key}); const NotesView({Key? key}) : super(key: key);
@override @override
State<NotesView> createState() => _NotesViewState(); State<NotesView> createState() => _NotesViewState();
} }
class _NotesViewState extends State<NotesView> { class _NotesViewState extends State<NotesView> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return const Scaffold( return Scaffold(
body: Center( appBar: AppBar(
child: Icon(Icons.note), title: Text('Note'),
) ),
floatingActionButton: FloatingActionButton(
onPressed: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const CreateNewNote(),
),
);
},
child: Icon(Icons.add),
),
body:ListView(
children: const <Widget>[
Note(),
Note(),
],
)
); );
} }
} }

View File

@@ -1,5 +1,10 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
//import components
import '../Components/Reminder.dart';
import '../Components/QuickReminder.dart';
import '../model/promemoria.dart';
class TodayView extends StatefulWidget { class TodayView extends StatefulWidget {
const TodayView({super.key}); const TodayView({super.key});
@@ -8,12 +13,32 @@ class TodayView extends StatefulWidget {
} }
class _TodayViewState extends State<TodayView> { class _TodayViewState extends State<TodayView> {
var _selectedDate = DateTime.now();
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return const Scaffold( return Scaffold(
body: Center( appBar: AppBar(
child: Icon(Icons.calendar_today) title: FilledButton(
) onPressed: () async {
DateTime? newDate = await showDatePicker(context: context, initialDate: DateTime.now(), firstDate: DateTime(1), lastDate: DateTime(9999));
if (newDate != null) {
setState(() {
_selectedDate = newDate;
});
}
},
child: Text(_selectedDate.day.toString() + "/" + _selectedDate.month.toString() + "/" + _selectedDate.year.toString())
),
),
body: ListView(
children: const <Widget>[
Reminder(),
Reminder(),
QuickReminder()
],
),
); );
} }
} }

View File

@@ -29,14 +29,6 @@ class _TestState extends State<Test> {
print("Data printed"); print("Data printed");
} }
Future<void> _deletedatabase() async {
final db = await noteDatabase.database;
print("Deleting database");
await db.delete(noteTable);
print("Database deleted");
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
@@ -44,8 +36,7 @@ class _TestState extends State<Test> {
child: Column( child: Column(
children: [ children: [
FloatingActionButton(onPressed: _pressed), FloatingActionButton(onPressed: _pressed),
FloatingActionButton(onPressed: _printdata), FloatingActionButton(onPressed: _printdata)
FloatingActionButton(onPressed: _deletedatabase)
], ],
) )
) )

View File

@@ -30,7 +30,8 @@ environment:
dependencies: dependencies:
flutter: flutter:
sdk: flutter sdk: flutter
sqflite:
path:
# The following adds the Cupertino Icons font to your application. # The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons. # Use with the CupertinoIcons class for iOS style icons.

View File

@@ -13,7 +13,6 @@ import 'package:progetto_m335_flutter/myApp.dart';
void main() { void main() {
testWidgets('Counter increments smoke test', (WidgetTester tester) async { testWidgets('Counter increments smoke test', (WidgetTester tester) async {
// Build our app and trigger a frame. // Build our app and trigger a frame.
await tester.pumpWidget(const MyApp());
// Verify that our counter starts at 0. // Verify that our counter starts at 0.
expect(find.text('0'), findsOneWidget); expect(find.text('0'), findsOneWidget);