Earlier we used to call 'adb logcat' and get all the logs and send
those. This didn't work on iOS and we wouldn't get all the logs even in
android at times as the logcat buffer can be unreliable.
Since now we log all the messages to a file, we can just send that file.
The disadvtange is that we only get Dart level logs, and not iOS or Java
or NDK or our C libraries logs.
I should really dump libgit2 ASAP.
This is quick and dirty way of fixing the problem. It doesn't migrate
the notes from the previous repo and just discards them, so you cannot
move your notes from one repo to another using GitJournal (for now), but
at least its better than having to re-install the app.
Related to #36
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.
The file is stored in the tmp dir with the filename of
"katex_$HASH$.png" where $HASH$ is the md5 hash of the input string to
be rendered.
The cache isn't ever cleared so far, but maybe the underlying OS will do
that automatically?
Related to #125
Related to #125
This still needs to be integrated into the Flutter Markdown renderer.
But the good news is that this works!
It currently requires network access to download the katex scripts. It
does NOT send the katex string to any server. The rendering is performed
in the app.
Just with a fixed height card. This way we save on lots of code
duplication, specially as each of these views will become more complex
as we add dismissable, animations and selectable notes.
It's strange, but this widget routinely gets constructed twice. So
performing a long async operation (generating the ssh key + adding it as
a deploy key) from initState, results in it being called twice. I'm not
sure where the state is initialized twice.
Even adding a unique key to the widget did not help. In the end, I've
just moved the code to its parent widget.