Rename NoteFolder -> NotesFolder

This commit is contained in:
Vishesh Handa
2019-12-04 14:22:17 +01:00
parent e287d41ffe
commit 10d65cd6fb
7 changed files with 54 additions and 22 deletions

View File

@ -1,7 +1,7 @@
import 'package:shared_preferences/shared_preferences.dart';
import 'package:fimber/fimber.dart';
import 'package:gitjournal/core/note.dart';
import 'package:gitjournal/core/note_folder.dart';
import 'package:gitjournal/core/notes_folder.dart';
class AppState {
//
@ -28,7 +28,7 @@ class AppState {
}
List<Note> notes = [];
NoteFolder noteFolder;
NotesFolder noteFolder;
AppState(SharedPreferences pref) {
localGitRepoConfigured = pref.getBool("localGitRepoConfigured") ?? false;

View File

@ -1,11 +1,11 @@
import 'note.dart';
import 'note_folder.dart';
import 'notes_folder.dart';
// FIXME: Maybe the parent should be a part of the Note, and the NoteFolder
// or maybe also a part of the NoteFolder
class NoteFSEntity {
NoteFolder parent;
NoteFolder folder;
NotesFolder parent;
NotesFolder folder;
Note note;
NoteFSEntity(this.parent, {this.folder, this.note}) {

View File

@ -5,11 +5,12 @@ import 'package:path/path.dart';
import 'note.dart';
import 'note_fs_entity.dart';
class NoteFolder {
class NotesFolder {
NotesFolder parent;
List<NoteFSEntity> entities = [];
String folderPath;
NoteFolder(this.folderPath);
NotesFolder(this.parent, this.folderPath);
bool get isEmpty {
return entities.isEmpty;
@ -55,24 +56,55 @@ class NoteFolder {
var lister = dir.list(recursive: false, followLinks: false);
await for (var fsEntity in lister) {
if (fsEntity is Directory) {
var subFolder = NoteFolder(fsEntity.path);
var subFolder = NotesFolder(this, fsEntity.path);
if (subFolder.name.startsWith('.')) {
continue;
}
await subFolder.loadRecursively();
var noteFSEntity = NoteFSEntity(this, folder: subFolder);
var noteFSEntity = NoteFSEntity(folder: subFolder);
entities.add(noteFSEntity);
}
var note = Note(fsEntity.path);
var note = Note(this, fsEntity.path);
if (!note.filePath.toLowerCase().endsWith('.md')) {
continue;
}
await note.load();
var noteFSEntity = NoteFSEntity(this, note: note);
var noteFSEntity = NoteFSEntity(note: note);
entities.add(noteFSEntity);
}
}
void add(Note note) {
assert(note.parent == this);
entities.add(NoteFSEntity(note: note));
}
void insert(int index, Note note) {
assert(note.parent == this);
for (var i = 0; i < entities.length; i++) {
var e = entities[i];
if (e is NotesFolder) continue;
if (index == 0) {
entities.insert(i, NoteFSEntity(note: note));
return;
}
index--;
}
}
void remove(Note note) {
assert(note.parent == this);
var i = entities.indexWhere((e) {
if (e.isFolder) return false;
return e.note.filePath == note.filePath;
});
assert(i != -1);
entities.removeAt(i);
}
}

View File

@ -4,7 +4,7 @@ import 'package:gitjournal/widgets/app_bar_menu_button.dart';
import 'package:gitjournal/widgets/app_drawer.dart';
import 'package:gitjournal/widgets/folder_tree_view.dart';
import 'package:gitjournal/state_container.dart';
import 'package:gitjournal/core/note_folder.dart';
import 'package:gitjournal/core/notes_folder.dart';
import 'journal_listing.dart';
@ -16,7 +16,7 @@ class FolderListingScreen extends StatelessWidget {
var treeView = FolderTreeView(
rootFolder: appState.noteFolder,
onFolderSelected: (NoteFolder folder) {
onFolderSelected: (NotesFolder folder) {
var route = MaterialPageRoute(
builder: (context) => JournalListingScreen(
noteFolder: folder,

View File

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:gitjournal/core/note.dart';
import 'package:gitjournal/core/note_folder.dart';
import 'package:gitjournal/core/notes_folder.dart';
import 'package:gitjournal/utils.dart';
import 'package:gitjournal/apis/git.dart';
import 'package:gitjournal/screens/journal_editor.dart';
@ -12,7 +12,7 @@ import 'package:gitjournal/widgets/journal_list.dart';
import 'package:gitjournal/themes.dart';
class JournalListingScreen extends StatelessWidget {
final NoteFolder noteFolder;
final NotesFolder noteFolder;
final bool recursive;
JournalListingScreen({@required this.noteFolder, this.recursive = false});

View File

@ -8,7 +8,7 @@ import 'package:gitjournal/analytics.dart';
import 'package:gitjournal/apis/git_migration.dart';
import 'package:gitjournal/appstate.dart';
import 'package:gitjournal/core/note.dart';
import 'package:gitjournal/core/note_folder.dart';
import 'package:gitjournal/core/notes_folder.dart';
import 'package:gitjournal/core/note_fileName.dart';
import 'package:gitjournal/storage/git_storage.dart';
import 'package:path/path.dart' as p;
@ -57,7 +57,7 @@ class StateContainerState extends State<StateContainer> {
dirName: appState.localGitRepoPath,
);
}
appState.noteFolder = NoteFolder(noteRepo.notesBasePath);
appState.noteFolder = NotesFolder(noteRepo.notesBasePath);
// Just a fail safe
if (!appState.remoteGitRepoConfigured) {
@ -225,7 +225,7 @@ class StateContainerState extends State<StateContainer> {
baseDirectory: appState.gitBaseDirectory,
dirName: appState.remoteGitRepoFolderName,
);
appState.noteFolder = NoteFolder(noteRepo.notesBasePath);
appState.noteFolder = NotesFolder(noteRepo.notesBasePath);
await _persistConfig();
_loadNotesFromDisk();

View File

@ -1,11 +1,11 @@
import 'package:flutter/material.dart';
import 'package:gitjournal/core/note_folder.dart';
import 'package:gitjournal/core/notes_folder.dart';
typedef void FolderSelectedCallback(NoteFolder folder);
typedef void FolderSelectedCallback(NotesFolder folder);
class FolderTreeView extends StatelessWidget {
final NoteFolder rootFolder;
final NotesFolder rootFolder;
final FolderSelectedCallback onFolderSelected;
FolderTreeView({
@ -29,7 +29,7 @@ class FolderTreeView extends StatelessWidget {
}
class FolderTile extends StatefulWidget {
final NoteFolder folder;
final NotesFolder folder;
final FolderSelectedCallback onFolderSelected;
FolderTile(this.folder, this.onFolderSelected);