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.
It makes the entire code base far more complicated and the round trip to
get the directory really isn't that much. This is a massive
micro-optimization for very little benefit.
This way all the persistant state of the app is managed from the same
place. It makes everything much easier. Also, it's required for when
GitJournal supports multiple repositories.
This way we can more easily diagnose why this fails.
Also increase the timeout - depending on where these tests are running,
everything takes much much longer.
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.
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 :(
This required refactoring the code. With this we can now write an
integration test to test the main parts of the app, but more importantly
we can automate the process of generating the screenshots.