733 Commits

Author SHA1 Message Date
e543e976ea ios: Enable flutter_email_sender
It needed the SWIFT_VERSION variable to be set, and for it to be set to
a version that exists on my system. I'm pasting the error over here so
maybe I google search will help a lost soul in the future -

`flutter_email_sender` does not specify a Swift version and none of the targets (`Runner`) integrating it have the `SWIFT_VERSION` attribute set. Please contact the author or set the `SWIFT_VERSION` attribute in at least one of the targets that integrate this pod.

https://github.com/sidlatau/flutter_email_sender/issues/8
2019-05-20 20:44:30 +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
be4e6f32eb ios update
The Podfile and lockfile have all changed since the dependnecies have
changed so much (because of the AndroidX update). I've had to comment
out the flutter_email_sender for now, since I just cannot seem to get
it to work, in fact, even the current build is a hit and miss.
2019-05-20 20:10:50 +02:00
7a7ca048e3 build.gradle: Remove dead code
It's from a time of jgit
2019-05-20 18:44:14 +02:00
0af274be2b FirebaseAnalytics: Stop using deprecated method 2019-05-20 15:19:14 +02:00
efa4db5109 Android: Migrate to AndroidX
The Android Support Library is not androidx

https://developer.android.com/jetpack/androidx

This also required me to update each of the dependencies, as the
androidx migrated has resulted in major version changes in most of the
libraries.
2019-05-20 15:11:39 +02:00
9051d1e7dc Add a 'Report Bug' button
This also attaches the entire 'adb logcat' in Android. This way, we can
hopefully get useful info about why something is not working.

This currently breaks the build as we need to migrate to Android X
2019-05-20 14:35:27 +02:00
ee315a1904 install_latest_artifact script: Allow gitjournal to not be installed 2019-05-20 13:31:44 +02:00
689e783bb3 AppDrawer: Send event per button
This way we can track how many % of the users started the git hosting
setup and did not complete it.
2019-05-19 19:01:11 +02:00
2eed041bfd Scripts: Get the latest successful build
Completed includes failed builds
2019-05-19 14:37:54 +02:00
3ed86fd69b Revert "Android: Allow the release build to be debuggable"
This reverts commit 87aa6f7e5088ecad2c8926855057836891786a85.

Apparently one cannot publish debuggable APKs in the PlayStore. I wanted
this to be able to ask users to send me the logs via 'logcat', but it
seems I will have to figure out some other way.
2019-05-19 14:29:16 +02:00
c1bd7a5225 Android build.gradle: Remove deprecated option
It's enabled by default
2019-05-19 14:28:32 +02:00
87aa6f7e50 Android: Allow the release build to be debuggable 2019-05-19 11:56:09 +02:00
976ce6aeba Android: Try to fix missing "libflutter.so" crash
The apparent fix seems to be to only ship an arm 32bit app, and not arm
arm64.
2019-05-18 12:36:18 +02:00
cb9cc3b1a7 ios: Implement getBaseDirectory in the platform-channel
This is one of the many platform-channels that needs to be implemented
for ios. We may as well get started.
2019-05-17 17:54:46 +02:00
071f9962ba CI: Add missing jq 2019-05-17 17:24:49 +02:00
a775c31b5f ios: Give the app a proper name 2019-05-17 17:21:25 +02:00
058831a38e ios: Use the proper icon 2019-05-17 17:20:27 +02:00
79153d355d Bump version
Since we're now using libgit2, I'm bumping the minor version. This is a
big change.
2019-05-17 17:18:23 +02:00
77d295077f CI: Download the NDK libs
Now I can finally push all these changes, as the CI should also run and
we're ready to try out the new version of the app which uses libgit2
instead of jgit. Hopefully no user will notice anything different.
2019-05-17 17:17:33 +02:00
a11254eab4 ios: Just flutter run
It just seems to make a lot of changes. No idea about half of these. The
ios world is strange and foreign. I have hooked it up to Firebase
Analytics, though.

Also build on all architectures instead of just 64-bit.
2019-05-17 16:24:37 +02:00
7af708116b cLib gitPull: Improve conflict handling
Before it was broken, and we weren't really doing anything. Now, we
commit both versions of the file, so it results in the journal having an
ugly <<<< HEAD === thingy. But this is a start!

We can improve this by choosing which one of the changes to keep.
2019-05-17 11:43:14 +02:00
90c18881a9 cLib: git pull: Perform a fast-forward if possible
This way we don't always get the extra merge commit, if it is not
required.
2019-05-17 11:25:00 +02:00
62c99db1be Remove libssh
libssh is LGPL licensed, which means I would need to re-license the
entire app since we are linking against it statically. I could
dynamically link against it, but since I was only trying to use it for
key-generation and that doesn' seem to be working, I may as well discard
it.

For now, I'm going to stick with jsch for the key generation. On ios
side, I'm not sure what I will do. One option could be to compile
openssh and call the ssh-keygen binary.
2019-05-16 17:29:56 +02:00
17e1880c37 cLib: Move keygeneration code over there
This way we can easily test it outside of Android. Strangely enough this
doesn't work on Android or osx for me. It only seems to work in an
ubuntu linux container.
2019-05-16 15:46:40 +02:00
2fa6f9338b Android: Remove the jgit dependency
Finally! We now only rely on libgit2. Unfortunately, we still rely on a
java library for the public key generation.
2019-05-16 12:27:15 +02:00
64c8ddd7b0 Android: Use the c library for git pull
It's not perfect as our implementation of git pull results in an extra
merge commit and doesn't handle conflicts properly, but it is a basic
implementation, so at least we have something.
2019-05-16 12:23:27 +02:00
8b1cafef2f cLib: gitPull: Use the correct annoated_commit
The annotated commit must be created from the remote's branch's ref.
This entire thing is quite confusing, but for now at least git pull's
work properly, though with an extra merge commit.
2019-05-16 12:15:01 +02:00
18a44d257b cLib gitPull: Check if the repo is in a valid state 2019-05-16 11:51:47 +02:00
5a0a26fe37 cLib gitPull: The other parent can be the annotated commit
What is an annotated commit? This library doesn't make much sense to me.
The merge.c example for libgit2 also doesn't make that much sense.
2019-05-16 11:36:48 +02:00
0f63553363 cLib: First kinda working impelmentation of git pull
In order to do a commit, we need the parents for that commit. In the
case of a merge commit - it should be the 'master' and 'origin/master'
(in the case of the master branch). I cannot seem to get the id of the
'origin/master' commit. So, for now it is hardcoded.

But hey, at least this works.
2019-05-16 11:30:18 +02:00
bd67bf65b6 cLib: Use a proper Makefile
Instead of a custom make shell script.
There is no big advantage right now.
2019-05-16 11:05:38 +02:00
f5b98ab9c6 Make the android app use our c-lib for all git operations
* Apart from gitPull which is currently broken
* And the ssh key generation which fails on Android
2019-05-15 19:12:55 +02:00
8748132e70 gj_common: Add const correctness 2019-05-15 18:43:19 +02:00
69b0b2fa19 Update gitignore 2019-05-15 18:29:31 +02:00
7bd9e4fa98 Android JNI GitAdd: Use the c-lib's gitAdd instead
It finally works!
2019-05-15 18:28:02 +02:00
0c6e13c335 cLib: Make the log function easier
Using variable list arguments in c is a pain.
2019-05-15 18:27:04 +02:00
e1e388c161 gj_common: Add missing test file
This was what I was using to try out this library locally. I probably
should have made a proper unit test suite, but this was just so much
faster and easier.
2019-05-15 18:07:28 +02:00
fee7bb80ee Rename git_test to gj_common 2019-05-15 18:07:13 +02:00
76fa521f36 cLib: Allow logging to outsources
This way in Android we can use the proper logging functions to get the
output in logcat. Printf doesn't make sense in that context.
2019-05-15 18:04:52 +02:00
d86a03e974 c lib: Avoid the infinite loop of trying invalid credentials
LibGit2 has been designed in a strange way. It doesn't give us an easy
way of knowing if and why the credentials has failed, it jusst keep
calling the credentials failed method.

We are now working around this.
2019-05-15 17:59:29 +02:00
e8109a20e8 c lib: Allow the ssh keys to be configured 2019-05-15 17:36:07 +02:00
b00a0ca04a GitTest: Create a proper header and implementation file
All these functions are going to be used by both the Android and the iOS
implementation.
2019-05-15 17:28:50 +02:00
4e28a2c63a GitTest: Implement git reset --hard 2019-05-15 17:07:24 +02:00
b3bd01b9bb GitTest: Implement git rm 2019-05-15 16:58:19 +02:00
c230aebcbc GitTest: Refactor git add
This way we avoid any memory leaks and the code is much easier to read.
2019-05-15 16:34:47 +02:00
4750488e0d GitTest: Try to implement a git pull
So far it just does a `git fetch`. I cannot seem to figure out how to
handle merge conflicts or to actually move the HEAD to origin/HEAD.
2019-05-15 16:21:46 +02:00
59005e8d49 GitTest: Implement git push 2019-05-15 13:27:17 +02:00
aa45ab07a8 GitTest: Commit: Do not allow empty commits 2019-05-15 13:07:10 +02:00
6cca6a5c4a GitTest: Simplify git commit code 2019-05-15 12:57:05 +02:00