64 Commits

Author SHA1 Message Date
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
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
a7aab08c67 Fix flutter analyze
Import ordering
2019-12-04 15:56:04 +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
ffc0af12a3 Enable prefer_const_constructors 2019-10-20 01:11:53 +01:00
0a858756c8 Analytics: Log the settings
This way we can adapt the settings in the future to use the most
commonly changed items first.

We're not logging the 'gitAuthor' or 'gitEmail' as that includes
personally identifyable info.
2019-10-08 23:10:37 +02:00
69003cf0ac Rename package from journal -> gitjournal
It's about time.
2019-10-07 19:30:50 +02:00
c2d7841b32 Move Themes to their own file
I'm just experimenting with having different components more neatly
separated.
2019-10-07 19:18:34 +02:00
8d717cbaeb Allow Analytics collection and Crash report collection to be disabled
As the developer I really don't want users to disable these, but as
a User, I always want the option, so I should include it.
2019-10-06 12:40:49 +02:00
3d8aa2ad70 AppState: Move loading/saving to where the data lies 2019-10-04 04:35:02 +02:00
19df28cd61 Remove usused variable 2019-09-26 17:24:14 +02:00
957e493494 Add a basic dark theme
It's not that pretty, but this adds the scaffolding.
2019-09-25 15:54:37 +02:00
74d7bdd763 Use a proper logger - Fimber
It's time to start using a proper logger so we can control the number of
log messages, also - it helps to have a central configuration point for
the logs, specially since I would like to hook them up to Crashlytics in
the future.
2019-06-19 09:45:15 +02:00
d653663a47 Change Git dart API
Use a class instead of a many functions. This way we avoid passing the
same arguments again and again.
2019-06-17 19:38:56 +02:00
df0d0ed169 ios: Check if running on a physcial device
Accordingly we switch off analytics.
2019-06-14 17:50:08 +02:00
fb2cbbf3ce Decrease app boot time
We don't need to wait for all the futures, and some can be re-used.
2019-06-02 17:29:50 +02:00
f3b73df119 Disable analytics in firebase test lab
I'm also keeping analytics disabled by default.
2019-06-02 17:12:22 +02:00
d518b49623 Print out the settings
It's useful when analyzing the debug log from bug reports.
2019-05-29 11:14:21 +02:00
b07df91aa0 ios: Allow the app to be run
* Implemented a fake gitInit which just created the folder for now
* AndroidDeviceInfo doesn't exist on ios
2019-05-20 20:32:26 +02:00
0af274be2b FirebaseAnalytics: Stop using deprecated method 2019-05-20 15:19:14 +02:00
40a12b8af1 Consider emulated devices to be debug devices
So do not run analytics on them.
2019-02-16 13:56:23 +01:00
29c8da11fb Enable OnBoarding 2019-02-16 13:24:48 +01:00
e97300b7b1 Integration Test: Make it take a few screenshots
* Default value
* App Drawer
* Note Editing
2019-02-16 00:46:03 +01:00
00355c532b Add a trivial integration test which just takes a screenshot
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.
2019-02-16 00:16:32 +01:00
c819f49afe Add a very basic onBoardingScreen 2019-02-14 01:44:57 +01:00
acede95536 Dart: Add analysis_options
For now I've mostly tried to follow the same style guide as the flutter
repository, with many options disabled. Eventually, maybe it would make
sense to be far stricter.
2019-02-13 13:08:15 +01:00
285a900e76 Rename OnBoarding to GitHostSetup
It was either GitHost or GitRemote.
2019-01-25 12:05:32 +01:00
b9b42d950f ListView: Remove the padding
This way it properly aligns up with the hamburger menu.

I also discovered this 'debugShowMaterialGrid' option which makes
working with padding issues much much easier.
2019-01-23 15:19:54 +01:00
e590c3c132 Do not show the 'debug' banner
It's annoying, and does not allow us to easily take screenshots.
Specially since the apps built in release mode cannot be run in an x86
android emulator.
2019-01-23 15:11:01 +01:00
75d86dfa99 Settings: Add 'GitAuthor' and 'Git Author Email'
These are just dummy values for now and cannot be actually changed.
2019-01-23 13:29:26 +01:00
2b1ac6cad7 Hookup onBoarding screen to app
* I should probably stop calling in an onboarding screen, since it's now
just a way to setup sync.

* It overall feels quite ugly, and unpolished.
2019-01-23 12:13:02 +01:00
519de8fcff Remove onboarding screen
For now just create a local git repo and commit all the changes over
there, we're going to allow the user to first see the app and use it
however they want, and later connect it to a remote git repo.

This commit breaks the app, as the on-boarding screen is no longer
connected so you cannot push to a remote app.
2019-01-21 13:43:33 +01:00
4fc8201427 Add an empty Settings page 2019-01-18 13:13:13 +01:00