703 Commits

Author SHA1 Message Date
7dafdaa617 StateContainer: noteRepo doesn't need to be public
Also lets call it gitRepo instead
2019-12-08 01:10:50 +01:00
9e2d59f3fa NotesFolder: Listen to changes of the subFolders and Notes
A NotesFolder doesn't only change when a note/folder is added or
removed. It is also changed when the contents of the Notes/Folders it
contains have changed.
2019-12-08 01:04:28 +01:00
644ef47076 NotesFolder rename: Actually update the filePath
The filePath was still the old one, this was causing all kinds of
errors.
2019-12-07 17:06:46 +01:00
0b1a41f3bd FolderListing: Use Provider to fetch the NotesFolder
This is our first use case of trying to use 'Provider' for state
management. Right now, we're doing state management quite horribly as
all the widgets are rebuilt whenever the state of the app changes.

With this, we can now start to refactor and only rebuild the widgets
whose data has changed.

There we many many different state management solutions to choose from,
I've settled on Provider, as it seems like the simplest to integrate
into the code base. Bloc/Redux seemed like they would add too much
complexity for me.
2019-12-07 16:30:39 +01:00
6288a7cfa0 NotesFolder: Notify listeners on rename 2019-12-07 16:30:39 +01:00
ff7ccea390 Fix changelog 2019-12-07 16:21:15 +01:00
d0107b6a26 Fix flutter analyze 2019-12-06 23:58:22 +01:00
9e0addf201 Update the docs to reflect that we're a Note taking app
We're moving away from focussing solely on Journaling. Lets update the
README to reflect that.
2019-12-06 23:43:42 +01:00
015ee5e43b Bump version number
And update Changelog
2019-12-06 23:35:27 +01:00
23dd7c05f6 README: Change subtitle
We're moving away from being a "Journaling" app to a more general note
taking application. For me, Journaling is a sub-section of Note taking.
2019-12-06 21:35:53 +01:00
8c6a33456a Allow folders to be renamed
This is a huge change which involves -
* Implementing Folder renames on the FS + Git level
* Implementing the concept of selecting an item in the FoldersListView,
  this feature isn't provided by default, and even now I'm not sure if
  the semantics which I've implemented are correct. I haven't
  implemented multiple folder selection for now.

Related to issue #18

Also, we're now one step closer to allowing notes to be renamed (#23)
2019-12-06 21:32:41 +01:00
073e76bcba AppDrawer: Try to highlight the selected route
This looks okayish in normal mode, but looks very ugly in dark mode, so
I'm not enabling this. But I don't want to discard this experiment, so
here I am committing this code.
2019-12-06 20:31:32 +01:00
82cfa72897 AppDrawer: Fix clicking on "Folders" when "Folders" is selected
This is a horrible hack, and I should figure out how to make custom
named route transitions work.
2019-12-06 20:30:50 +01:00
0a7f00af7b Stop overwriting the default divider color
It can be configured from the theme if I want it to be different. The
light grey actually seems fine, for now.
2019-12-06 20:12:00 +01:00
4c2285a2cc JournalList: Implement Hero transition
This was especially challenging because of this bug -
https://github.com/flutter/flutter/issues/36220

It's why we need the extra flightShuttleBuilder
2019-12-06 12:32:51 +01:00
0b161a9df4 Transition to Folders page with a fade
It's at the same hierarchy as 'Notes' and we shouldn't have a bottom to
top transition.
2019-12-06 12:11:39 +01:00
a51f8f170f Make Note and NotesFolder ChangeNotifiers
This will allow us for finer grained notifications of when things change
so we don't have to rebuild everything, like we do currently.
2019-12-06 01:22:57 +01:00
b40ee121e8 Bump version number 2019-12-06 00:46:57 +01:00
4869c1bc70 FolderView: Make the icons the accent color 2019-12-05 18:07:49 +01:00
a39ed51abf Divider: Use the theme color 2019-12-05 18:07:40 +01:00
e1140f0589 FolderTreeView: Make the icon bigger 2019-12-05 17:59:49 +01:00
f08d72bb00 FolderListing: Show the number of notes per folder 2019-12-05 17:48:31 +01:00
199e298903 JournalEditor: Show "note" instead of "Journal"
It seems we are moving towards a more generalized Note taking
application. I'd still like to use it for both Note taking and
Journaling. I'm not sure how to clearly show it is meant for both.
2019-12-05 17:40:08 +01:00
7d223509c8 JournalListing: Show Folder name in title 2019-12-05 17:38:40 +01:00
47f417ab3a FolderTreeView: Show it expanded by default 2019-12-05 17:35:45 +01:00
0b8dcaf8f6 AppDrawer: Minor refactor 2019-12-05 17:34:43 +01:00
a504435eca Add const 2019-12-05 17:23:19 +01:00
07ad503348 AppDrawer: Go back to the main route without stacking
The routing would be confusing otherwise
2019-12-05 17:22:31 +01:00
4682896592 AppDrawer: Add a divider between some elements
This clearly groups them together.
2019-12-05 17:19:22 +01:00
975b235df3 Add Folder creation
Folders for now can only be created under the root folder. I cannot seem
to figure out how to design a good interface for designing how to choose
the parent folder.
2019-12-05 17:08:02 +01:00
8d1feb6f76 FoldersView: Add the root folder - Call it "Notes"
This way the FolderView is never just empty. It looks bad otherwise.
2019-12-05 16:22:44 +01:00
a7aab08c67 Fix flutter analyze
Import ordering
2019-12-04 15:56:04 +01:00
8f7aaf284c Update changelog 2019-12-04 15:43:41 +01:00
ca2102a8b0 Expose the Folders view
This adds a new 'Folders' screen which shows you all your folders and
lets you manage the notes inside them. It currently doesn't allow you to
add or remove Folders, though.

This nearly addresses #18
2019-12-04 15:33:30 +01:00
5b8fc6342a Connect the AppState to the Folders
Now when adding/editing/removing a note, it gets modified from the
directory it was present in. There is no longer a just a plain list of
all notes, but always a tree of notes, which are inside Folders.
2019-12-04 15:33:30 +01:00
10d65cd6fb Rename NoteFolder -> NotesFolder 2019-12-04 15:33:27 +01:00
e287d41ffe Split out NoteFSEntity into its own file 2019-12-04 14:20:58 +01:00
464b7512e9 Move Note and NoteFolder class into a core folder 2019-12-04 14:18:11 +01:00
82bc568eb1 pubspec: Add bug version number
The Flutter linter complains if we don't have a bugfix version number. I
don't plan to use it, but oh well.
2019-12-04 01:33:48 +01:00
50b8238c27 FolderListing: Hook it up to the JournalListing
Now clicking on a Folder shows all the notes from that folder. You can
even modify the notes, but deleting and adding notes won't work
correctly right now.
2019-12-04 01:30:23 +01:00
d607bad299 JournalListing: Only show the notes in that folder
Do not show all notes recursively, by default. The default screen will
now only show the notes in the root folder.
2019-12-04 01:30:10 +01:00
c8bfa0e2a0 Move FolderTreeView into its own file 2019-12-04 01:14:17 +01:00
10c4de0769 FolderTreeView: Simplify the code drastically 2019-12-04 01:09:58 +01:00
f2e40d4baf FolderListing: Indent sub-folders 2019-12-04 00:56:29 +01:00
3a3f9c7ad6 FolderListing: Show a leading arrow if the Folder has SubFolders
Also change the Arrow if the folder is expanded.
2019-12-04 00:51:41 +01:00
56ccf00260 FolderListing: Show the actual folders
Also don't load hidden folders
2019-12-04 00:35:29 +01:00
3f8159a353 Add the first iteration of a Folder Listing screen
This is just me experimenting with how the folder listing could look
like, and the different libraries I could use - For now I'm using the
https://github.com/ajilo297/flutter_tree_view library which I've forked
into this file, as it requires many many modifications to get it to how
I want it to work. Plus the library is really simple.
2019-12-03 23:57:13 +01:00
f86a878a9c Split AppBar Menu button into its own widget
Saves us the need to the GlobalKey as well.
2019-12-03 22:35:23 +01:00
04fa042f37 Add the first iterator of a different Notes View
This view is similar to the classical Google Keep style of showing
notes. It's still very bare-bones though
2019-12-03 22:09:03 +01:00
dda557e1bf Split HomeScreen into JournalListingScreen
The HomeScreen might need to show either a JournalList or some other
kind of listing.
2019-12-02 14:07:57 +01:00