Skip to content

Commit

Permalink
notes: Move tags from sharedprefs to a db table
Browse files Browse the repository at this point in the history
  • Loading branch information
HrX03 committed Aug 4, 2020
1 parent 7d17cf0 commit 9494456
Show file tree
Hide file tree
Showing 16 changed files with 314 additions and 107 deletions.
9 changes: 5 additions & 4 deletions lib/data/dao/note_helper.dart
@@ -1,3 +1,4 @@
import 'package:loggy/loggy.dart';
import 'package:moor/moor.dart';
import 'package:potato_notes/data/database.dart';

Expand Down Expand Up @@ -112,13 +113,13 @@ class NoteHelper extends DatabaseAccessor<AppDatabase> with _$NoteHelperMixin {
.watch();
}

Future saveNote(Note note) {
print("The note id is: " + note.id);
Future<void> saveNote(Note note) {
Loggy.d(message: "The note id is: " + note.id);
return into(notes).insert(note, mode: InsertMode.replace);
}

Future deleteNote(Note note) {
print("The note id to delete: " + note.id);
Future<void> deleteNote(Note note) {
Loggy.d(message: "The note id to delete: " + note.id);
return delete(notes).delete(note);
}
}
Expand Down
20 changes: 20 additions & 0 deletions lib/data/dao/tag_helper.dart
@@ -0,0 +1,20 @@
import 'package:moor/moor.dart';
import 'package:potato_notes/data/database.dart';

part 'tag_helper.g.dart';

@UseDao(tables: [Tags])
class TagHelper extends DatabaseAccessor<AppDatabase> with _$TagHelperMixin {
final AppDatabase db;

TagHelper(this.db) : super(db);

Future<List<Tag>> listTags() => select(tags).get();
Stream<List<Tag>> watchTags() => select(tags).watch();

Future<void> saveTag(Tag tag) {
return into(tags).insert(tag, mode: InsertMode.replace);
}

Future<void> deleteTag(Tag tag) => delete(tags).delete(tag);
}
11 changes: 11 additions & 0 deletions lib/data/dao/tag_helper.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 11 additions & 1 deletion lib/data/database.dart
@@ -1,5 +1,6 @@
import 'package:moor/moor.dart';
import 'package:potato_notes/data/dao/note_helper.dart';
import 'package:potato_notes/data/dao/tag_helper.dart';
import 'package:potato_notes/data/model/content_style.dart';
import 'package:potato_notes/data/model/image_list.dart';
import 'package:potato_notes/data/model/list_content.dart';
Expand Down Expand Up @@ -36,7 +37,16 @@ class Notes extends Table {
Set<Column> get primaryKey => {id};
}

@UseMoor(tables: [Notes], daos: [NoteHelper])
class Tags extends Table {
TextColumn get id => text()();
TextColumn get name => text()();
IntColumn get color => integer().withDefault(Constant(0))();

@override
Set<Column> get primaryKey => {id};
}

@UseMoor(tables: [Notes, Tags], daos: [NoteHelper, TagHelper])
class AppDatabase extends _$AppDatabase {
AppDatabase(QueryExecutor e) : super(e);

Expand Down
236 changes: 235 additions & 1 deletion lib/data/database.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 9 additions & 10 deletions lib/internal/preferences.dart
Expand Up @@ -2,10 +2,11 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:jwt_decode/jwt_decode.dart';
import 'package:loggy/loggy.dart';
import 'package:potato_notes/data/database.dart';
import 'package:potato_notes/internal/providers.dart';
import 'package:potato_notes/internal/sync/account_controller.dart';
import 'package:potato_notes/internal/keystore.dart';
import 'package:potato_notes/internal/shared_prefs.dart';
import 'package:potato_notes/internal/tag_model.dart';

class Preferences extends ChangeNotifier {
SharedPrefs prefs;
Expand All @@ -28,7 +29,7 @@ class Preferences extends ChangeNotifier {
String _username;
String _email;
int _logLevel = LogEntry.VERBOSE;
List<TagModel> _tags = [];
List<Tag> _tags = [];
int _lastUpdated;

String get masterPass => _masterPass;
Expand All @@ -44,7 +45,7 @@ class Preferences extends ChangeNotifier {
String get username => _username;
String get email => _email;
int get logLevel => _logLevel;
List<TagModel> get tags => _tags;
List<Tag> get tags => _tags;
int get lastUpdated => _lastUpdated;

set masterPass(String value) {
Expand Down Expand Up @@ -131,12 +132,6 @@ class Preferences extends ChangeNotifier {
notifyListeners();
}

set tags(List<TagModel> value) {
_tags = value;
prefs.setTags(value);
notifyListeners();
}

set lastUpdated(int value) {
_lastUpdated = value;
prefs.setLastUpdated(value);
Expand Down Expand Up @@ -164,8 +159,12 @@ class Preferences extends ChangeNotifier {
username = await prefs.getUsername();
email = await prefs.getEmail();
logLevel = await prefs.getLogLevel();
tags = await prefs.getTags();
lastUpdated = await prefs.getLastUpdated();

tagHelper.watchTags().listen((newTags) {
this._tags = newTags;
notifyListeners();
});
}

Future<String> getToken() async {
Expand Down

0 comments on commit 9494456

Please sign in to comment.