61 Commits

Author SHA1 Message Date
510b277398 Add Note.apply
Avoid calling each setter as each results in the entire tree being
rebuilt.
2021-09-16 20:07:33 +02:00
20634a9899 NotesFolderFS: Avoid propagating faulty signals
Ideally this shouldn't have ever been called, but the NotesFolderFS +
Note class is a mess.
2021-09-16 16:38:50 +02:00
33a731a3d7 Add reuse licensing to files in lib 2021-09-15 13:06:43 +02:00
41eb6c4995 Remove unnecessary signal 2021-09-13 17:32:33 +02:00
fdc79828c7 Move note.load to NoteStorage
Now the note class is almost ready to become immutable
2021-09-09 10:01:36 +02:00
10bce9a35a LocaleKeys++ 2021-09-07 14:46:37 +02:00
c53b7ebbd1 Note: fileLastModified should never be null
This simplifies so much of the code.
2021-09-07 00:00:42 +02:00
d3fae40173 Rename views to providers
The providers give a View
2021-09-06 14:32:25 +02:00
d209ed4d30 MaterializedViewProvider: Make the fetch function async
Also make the contructor sync, this makes everything much easier.
2021-09-06 14:15:38 +02:00
db80229209 Stop Note from being a ChangeNotifier
The only one listening was the parent folder. This simplifies the note
class a lot. Also it gets us one step closer from making the note more
dumb.
2021-09-05 11:23:51 +02:00
7abfc505e3 Note: move rename function to the parent
I want the note class to have a simple object with no internal state
mutation.
2021-09-05 11:15:24 +02:00
0231cbd3bc Note: Move 'move' function out of note
It doesn't need access to any of the note internals. For now I've placed
it in notes_folder_fs, though it really doesn't need to be there as
well.
2021-09-05 11:09:17 +02:00
985fe5c3dc InlineTagsView: Save it as a List
Hive doesn't seem to be able to serialize sets.
2021-09-03 16:01:52 +02:00
abc9a31290 Add InlineTags Materialized View
This way we avoid parsing the tags from the body again and again, also
I can make the tags processing more complex without worrying too much
about the computational overhead.
2021-08-31 22:59:41 +02:00
2863a26543 Try to fix concurrent modification error 2021-08-17 14:09:36 +02:00
cb389a44af Remove unused feature flag 2021-08-10 14:16:13 +02:00
b0edb257c6 Analytics: Cleanup
I don't see any way of getting the app install source.

Run the formatter on the rest
2021-08-03 16:25:15 +02:00
3a71cca202 Move logging code to its own folder 2021-07-30 14:39:13 +02:00
2505d00dfb Replace dart:io with universal_io
Platform from dart:io cannot be used on the web for reasons. And this
way we get a fake File/Directory class which we can use for atleast
running the web version, even if it won't work.
2021-07-30 11:39:26 +02:00
c66eaf1052 NotesFolderConfig: Read directly from the SharedPref
It's super annoying that we have this class which reading from the
settings, so adding any new value involves updating some 12 new things.
2021-07-27 16:33:16 +02:00
d6e2f09a72 Move all settings code to its own folder
Jumping around between the widgets / screens and outside is bit
confusing. Also this way, I can add the stories right here.
2021-06-05 12:23:28 +02:00
73f9db5fab Core: Null Safety++
This is a rather huge change. I hope I haven't broken anything.
2021-05-17 18:15:47 +02:00
d008f0d982 First version of dart migrate
Most of the files haven't been migrated. Lets work on this bit by bit
2021-04-10 22:18:35 +02:00
e9c7adafd1 Add useful debug statement 2021-02-04 12:00:47 +01:00
608a613757 Add a hack of ignoring folders with a '.gjignore' file
In the future we should open this file and ignore paths similar to how
.gitignore does it. For now, lets use this hack.

Requested by a friend
2021-02-04 10:59:04 +01:00
a2e8f629df Always sort the tags
Fixes #373
2020-12-27 11:00:20 +01:00
03e3d1f1c5 Remove verbose logging 2020-11-18 16:08:46 +01:00
aaf96c82d1 Convert IgnoreReason to an enum 2020-11-09 12:10:38 +01:00
63cc668db2 Improve log messages
* Remove one annoying one
* Event is an enum and prints a 'Event.'
2020-11-09 11:35:46 +01:00
ee34e2f628 Avoid annoying log statement
The reason should be saved in some other place so the user can know what
is going on. The debug logs get cluttered with this and this would leak
the folder names.
2020-11-08 10:36:29 +01:00
7be85bf569 Avoid using tr inside NotesFolderFS
Not sure why it doesn't work.

Fixes APP-F4
2020-11-03 13:44:58 +01:00
c86e0d278c Remove verbose logs
These make reading the log files in bug reports really hard. Also it
contains some personal info, so I rather not have them.

I can look into another way of showing the user why certain files were
ignored.
2020-10-21 17:08:31 +02:00
9499cea164 Remove Settings global
Stop it being a singleton. This means it needs to be passed around a
lot. This sucks, but it's how it should be. I shouldn't be using a
global variable to get around this.

This is needed as Settings will soon become repo specific when we
support multiple repos.

This breaks saving the settings in a file, that feature was toggled off
anyway. It needs to be thought over again.
2020-10-09 00:59:19 +02:00
82db15128b NoteFileFormat: Refactor
Get all the allowed extensions in one place. Currently the code is
scattered all over the place.
2020-09-26 19:19:26 +02:00
ec91a784de NotesFolderFS: Remove any notes which failed to load 2020-09-03 13:42:54 +02:00
074e918db4 Implement basic inline tags
Fixes #44
2020-09-02 17:24:34 +02:00
6d101ad5c4 Remove flutter crashlytics
Sentry is being used instead, and it's working out quite well.
2020-07-26 19:05:52 +02:00
9d00fdac06 Use import_sorter
flutter pub run import_sorter:main --no-comments

The code feels much cleaner
2020-07-24 12:43:28 +02:00
267ecb7499 Implement a very basic file system view
This will show all the files and not just the "notes". This way the user
can easily figure out why a file isn't included in the list of notes.

It's currently disabled by default as it clearly needs a lot more work.
2020-06-10 00:54:15 +02:00
42d6386096 Add basic txt file support
With this 'txt' files are now read and written. However, they don't have
any metadata so they don't show up correctly in the sort order and
currently the Markdown Editor is still available for them.

Related to #55
2020-06-02 00:15:18 +02:00
fb5ab57fe0 Folder.removeFolder: Remove listeners recursively
Ideally when removing a folder one shouldn't have any notes, but
sometimes we do allow an entire folder to be reset.

Related to #36
2020-05-31 03:38:24 +02:00
96ed70f023 Show the backlinks of a Note
This is the initial proof of concept and doesn't look very pretty. It's
also not very efficient.

Related to #141
2020-05-26 15:37:09 +02:00
4c56ddc4df Allow the default Image location to be configured
Fixes #10
2020-05-20 00:32:13 +02:00
26ed82fdbc Make "Root Folder" translatable
It was earlier duplicated all over the place.
2020-05-18 00:26:00 +02:00
816cb0c3ed Reduce code duplication
Avoid code for determining the publicName of a folder.
2020-05-18 00:23:14 +02:00
a324d0f755 Logging: Allow logging structured fields
Display this in the Debug Screen app. Additionally, add a reason why a
file was not loaded.
2020-05-17 19:47:11 +02:00
7ef9cfe60f Minor refactor 2020-05-14 13:03:12 +02:00
600738fc0e FolderLoading: Output loading info to logs as verbose
The most common issue is why a certain file is not being loaded. This
isn't the ideal way, but it's a quick fix in order to diagnose what is
going on.
2020-05-08 10:35:45 +02:00
77e67fca11 Rename Folders properly
1. Actually rename the folder instead of calling rename with the oldPath
2. Inform the parentFolder that a sub-folder has been renamed so it can
accordingly update its mapping.

Fixes #108
2020-04-20 02:11:42 +02:00
5784399ac6 Remove NotesFolderFS::insert
The position of the note in the folder doesn't matter as Virtual folders
on top of this sort it according to how to how the user wants them to be
sorted.
2020-04-20 01:56:32 +02:00