Commit graph

19 commits

Author SHA1 Message Date
Adam Brown
a2998adcba
Re-enable public-storage projects on F-Droid builds (#568)
Restores the "store projects in public storage" feature, gated to F-Droid builds (the required MANAGE_EXTERNAL_STORAGE permission is disallowed on Google Play).

- Expose the build channel at runtime via BuildConfig.FDROID in the common module.
- Declare the storage permissions only in src/fdroid/AndroidManifest.xml, swapped in for F-Droid builds.
- Restore the storage-location toggle + file-access UI, gated on BuildConfig.FDROID; reconcile the toggle with the real location on open.
- Build the GitHub release APK as the F-Droid flavor.
- Extract the directory move into a tested FileSystem.moveDirectory() helper (fixes the same-path data-loss crash; runs off the UI thread).
- Read the fdroid flag consistently across settings.gradle.kts and module scripts.
- Document the F-Droid build flag in DEVELOPMENT.md.
2026-06-07 19:16:42 -07:00
Adam Brown
6acd022c78
Unblock F-Droid builds while keeping JBR for desktop (#490)
When -Pfdroid=true (or FDROID_BUILD env var) is set:
  - skip the foojay-resolver-convention plugin
  - exclude :desktop from the build (its eager jbrLauncher.get()
    needs JBR, which F-Droid can't provide)
2026-05-16 20:49:53 -07:00
Adam Brown
4fda8d495a
Add round-trip sync integration test suite
Spins up a real Jetty server and a real headless client in the same JVM,
runs the actual sync protocol over HTTP, and asserts against the shared
FakeFileSystem. Covers seven scenarios: smoke (handshake), client upload,
server download, independent edits, conflict resolved to server, conflict
resolved to client, and client delete.

- New :integrationTests Gradle module with the RoundTripTestBase harness,
  HeadlessClient driver, and seven scenario tests.
- :server enables java-test-fixtures so EndToEndTest, E2eTestData, and
  SqliteTestDatabase are shared with the new module instead of duplicated.
- CI: build.yml runs the suite on every PR/develop push; prepare-release.yml
  adds an integration-tests job that gates all seven package jobs, so a
  broken sync protocol blocks the release before any artifact is built.
2026-05-13 22:28:19 -07:00
Adam Brown
1e0050aff3
Switch to the JBR runtime 2026-05-13 20:42:51 -07:00
Adam Brown
9d7b73c2d8
Updates 2026-04-24 00:03:13 -07:00
Wavesonics
3ca4b7b9f1 Remove repo
This is no longer needed as CfD is in maven central now
2023-08-21 23:30:29 -07:00
Wavesonics
f3e38a7c61 Move more versions to cataloge 2023-07-27 22:50:46 -07:00
Wavesonics
6bd949b96d Lots of progress on updating build files 2023-07-27 22:50:46 -07:00
Adam Brown
5ee38413e6 version catalogue
android versions
2023-07-16 22:45:03 -07:00
Adam Brown
c573be3e19 version catalogue
jvm, app
2023-07-16 21:58:36 -07:00
Adam Brown
b2dafb3f0b version catalogue
kotlin
2023-07-16 21:39:49 -07:00
Adam Brown
13271e0698 Added Android Add Note widget
Lots of work for setting up and tearing down Project Scope
2023-04-17 23:01:40 -07:00
Adam Brown
dee4906196
Began implementing the Server
* Added server module
* Token auth is working!
* Added new Base module which is shared by common and server
* Added AccountRepository
2023-03-11 13:00:49 -08:00
Adam Brown
20322f3cc4 Moko is integrated and working 2023-02-26 17:10:21 -08:00
Wavesonics
782709bf47 Decompose upgrade 2022-12-13 21:05:41 -08:00
Adam Brown
75e5f9adca Serialization is compiling in now 2022-06-15 21:03:53 -07:00
Adam Brown
9e87ff3ffc Build file work 2022-06-14 17:52:54 -07:00
Wavesonics
41df095717 iOS target added
Holy crap that was not fun...
2022-06-04 02:44:52 -07:00
Adam Brown
a30817a109 Initial commit 2022-05-30 23:16:54 -07:00