96 Commits

Author SHA1 Message Date
9859aa6106 Allow custom metadata to be specifiec for any note
This way we can add 'draft: true' to all new notes.

Fixes #168
2020-08-18 10:47:26 +02:00
7936cc70b8 Analytics: Make all events into enums
No more random strings
2020-08-17 15:29:38 +02:00
d94a1e1630 Remove another use of Settings.instance
I really want to remove this global variable, and only access it through
the Provider.
2020-08-16 15:51:53 +02:00
4bcbf8226a Move onBoardingCompleted from AppState to Settings
I want to get rid of the AppState entirely. It serves exactly the same
purpose as Settings.
2020-08-16 15:29:49 +02:00
2bc9e8deaf More removals of Settings.instance 2020-08-09 01:59:07 +02:00
9d55b449d3 Settings: Access it through the Provider
Make it a ChageNotifier and try to access it through the Provider
instead of like a global variable. This way, the state is better
managed and it'll be easier to split out Settings into smaller classes.
2020-08-09 01:29:22 +02:00
98e0bead90 Revert "Make sure local git repo always exists"
This reverts commit 42d755be1d3333a374b53274236eb75718c8d265.
2020-07-30 12:05:04 +02:00
db93d5ab27 Revert "Fix the case when the repo folder disappears"
This reverts commit 2ee25e0b8ff7d0715ce419e044649980ab6c6e31.
2020-07-30 12:04:00 +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
2ee25e0b8f Fix the case when the repo folder disappears
In that case we should treat it as though the app is being freshly
launched.

Fixes APP-43
2020-07-23 17:31:58 +02:00
42d755be1d Make sure local git repo always exists
There are some cases when upgrading from a really old version that the
journal_local no longer exists.
2020-07-21 11:19:27 +02:00
a6fba3d2e7 IAP: Do not check for pro mode on boot
If the user has freshly installed the app, they can click on the
Purchase Pro Mode button and that will put them in Pro mode if already
bought.

This is being done, because otherwise the experience in ios is shitty as
the moment the app is launched, the user is asked for their iTunes
password.
2020-07-21 10:37:01 +02:00
b5f933637a Android QuickActions: Add images to the launcher
Add the svg images from FontAwesome. These look a bit ugly to be honest,
and maybe we should change them for conventional pngs.
2020-07-06 18:50:57 +02:00
bb8cb5e442 IAP: Always check
Disable the optimization of not checking for pro mode on boot. The
optimization fails and pro members cannot always get the pro features.
This is not good.

As a workaround, opening the but pro mode page also checks if already
purchased.
2020-07-05 20:38:06 +02:00
1d767f1f4d Remove flutter_runtime_env env
flutter_sentry provides the same feature. I prefer having the minimum
amount of external dependencies.
2020-06-20 07:56:32 +02:00
97812e1501 Convert more prints to logs
This way they will show up in the LogViewer
2020-06-10 13:25:22 +02:00
03b20b274b Add Helpfull comment for the future 2020-06-10 10:49:59 +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
9cb810f41d Handle case where documents path changes
It seems sometimes when an app is updated their documents path changes.
So our cached version of it is now incorrect and needs to be refreshed -

Fixes #159
2020-06-09 17:44:04 +02:00
ef29186677 Remove getGitBaseDirectory function
Instead lets just use the path_provider. This was being used as for some
reason I wanted the files to reside inside the 'files' folder and not in
the 'app_flutter' directory.

However, that requires maintaining a fork of path_provider, which I no
longer want to do.
2020-05-31 09:29:15 +02:00
e5d904b2a7 Use git init from dart_git
One less dependency on git_bindings. Also, this way the app at least
somewhat starts on osx.
2020-05-31 09:03:37 +02:00
ee1009b087 Avoid hardcoding the git repo folder's name everywhere
This way, in the future we can support multiple repos, and more
importantly it will be easier to reconfigure the git host.
2020-05-26 23:49:57 +02:00
8b4fa886ba Add a CustomRouteObserver
This basically asserts if we move to a route without a name. This way
I'll always catch when a route doesn't have a name, and I can start
getting better analytics on which screens are used most frequently.
2020-05-26 13:43:41 +02:00
c62d5e469f Remove some logging 2020-05-17 19:51:26 +02:00
5c04bf204e Add Tags sidebar
Fixes #114

This was there because I couldn't figure out how to configure Billing in
iOS, now that it is done, I can have the pro mode in iOS as well.
2020-05-14 16:09:22 +02:00
867f6df14c [Android] Implement sharing images to GitJournal
Fixes #38
2020-05-13 18:30:33 +02:00
1d68d3a4a5 [Android] Implement sharing text to GitJournal
Related to #38
2020-05-13 17:40:23 +02:00
b3facb16de Minor refactor 2020-05-13 17:31:43 +02:00
6857047f36 Add App Shorcuts
I've added 3 app shortcuts -

* New Note
* New Checklist
* New Journal Entry

The icons for these shortcuts are horrible, and I cannot seem to make it
prettier, so this will have to do for now. It's also a bit slow as first
the home screen in built and then a NoteEditor is shown.

Fixes #134
2020-05-13 16:56:25 +02:00
faf561f104 Allow configuring the Home Screen
It can either be the Folders view or the All Notes view.
2020-05-08 19:30:53 +02:00
cc45894a07 Simplify page transition code
This way each time we can just use pushNamed instead of having to
construct the MaterialPageRoute each time.
2020-05-08 17:53:59 +02:00
ea733aacb5 Add a very simple Debug screen
This will show all the debug messages, which include when a file is
being ignored and not loaded, and hopefully all the exceptions. So the
user should be able to better understand why a file has been ignored.

It's not an ideal solution, but it's a quick fix.

Fixes #122
2020-05-06 01:09:57 +02:00
efec0500f3 Add basic scaffolding for translations
I still need to go through all the public string and document them.
2020-05-05 17:16:07 +02:00
c0623d1c3c Sentry: Add error breadcrumbs
This way we will have some context as to why an error happened.
2020-04-22 01:31:32 +02:00
d511dab346 Abstract out the analytics class 2020-04-22 00:51:25 +02:00
84a7812f0b Log Settings and AppState
Not as debug messages. This is very important when receiving a bug
report.
2020-04-16 11:50:18 +02:00
c14ffda409 App: Store the gitBasePath in the settings
This is the folder where the git repo should be stored.

By storing it, we can easily change it later. Also it allows us to
reduce of our custom platform code.
2020-04-15 14:25:40 +02:00
fa63c98d6d Add a basic Purchase Thank you screen 2020-04-14 15:35:37 +02:00
49f4e334dc Add a very basic purchase screen
Along with a 'Go Pro' option in the sidebar. This is extremely ugly and
is therefore disabled by default right now.
2020-04-06 19:26:09 +02:00
bb0e574495 Abstract out the logging
This way moving away from Fimber will be much easier.
2020-04-04 11:50:57 +02:00
98fb1ccff5 Move git host setup files to setup folder 2020-02-17 16:51:52 +01:00
3a3ec76529 StateContainer: Use Provider
This way we can avoid listening for changes in many places.
2020-02-11 19:10:34 +01:00
6986b314ff Fix logic of enabling analytics in test lab
We were only enabling analytics when running the device in the test lab.
No wonder all the metrics were so strange!
2020-01-04 14:30:54 +01:00
760659495a Print the device fingerprint
For debugging purposes
2019-12-26 20:56:30 +01:00
cdd3f8d86c Use flutter_runtime_env
Now almost all of the custom Java/iOS code has been moved to plugins.
2019-12-26 17:00:57 +01:00
757bf0b7ac Update dependencies and gradle 2019-12-23 12:25:31 +01:00
63170445d7 Move libgit2 code to git_bindings repo
We now have a much clearer separation between Git code and this app
specific code. This is awesome, it will allow other people to easily
integrate Git within their apps. Also, eventually it will be trivial to
switch to another implemention of Git (via JGit or a git client written
completely in Dart)

This breaks the iOS version as I haven't moved the code to build the ios
version. Maybe this will be a good excuse for me to setup a proper CI/CD
system for ios builds.

There is also a chance this breaks Crashalytics NDK symbols :(
2019-12-21 01:06:15 +01:00
70877438eb Git: Take the folderPath instead of folderName
The Git Api was strange and took a foldeName and it would only allow you
to access git operations in a particular path. This has now been fixed,
and now it can operate in any path.

This was the first step to moving the git api into its own library.
2019-12-20 20:40:00 +01:00
8a49d948f0 StateContainer: Do not call setState when the notesFolder changes
The NotesFolder is now a listenable and is always accessed via Provider,
and therefore doesn't need setState to be called when it is modified.
2019-12-08 02:58:56 +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