hammer-editor/settings.gradle.kts
Adam Brown 6738235141
Some checks are pending
Build CI / build (push) Waiting to run
Build CI / static-analysis (push) Waiting to run
Build CI / android-instrumented-tests (push) Waiting to run
Build CI / iOS compile & test (push) Waiting to run
Build CI / iOS UI tests (push) Waiting to run
PublishInternal / publish-google-play (push) Waiting to run
Wear OS app: capture notes and story ideas from the wrist (#950)
A standalone watch client that dictates notes into subscribed projects
and story ideas, then syncs them on its own session.

- New :wear module: capture activity, tile and complication, project
  subscriptions, sync log, and a WorkManager periodic plus
  after-capture sync behind a single SyncCoordinator
- Pairing over the Wearable Data Layer: the phone confirms the request
  and mints a session for the watch's install via the new
  /api/account/pair_install endpoint. Play Services builds only; the
  F-Droid build ships without it
- Manual sign-in on the watch, with an Android 17 local network
  permission check before contacting a LAN server
- Plaintext sync is opt-in: typing an http:// URL selects it, with a
  warning in server setup. HTTPS stays the default, and legacy
  settings always restore as HTTPS
- Account sync extracted into SyncAccountUseCase, shared by the phone
  project list and the watch
- temporaryProjectTask ref-counts concurrent users so one task no
  longer closes a scope another is still using
- Wear version codes are offset from phone codes so both can ship in
  one Play listing
- Crash handler and FileLogger moved into common for reuse
2026-09-19 10:58:19 -07:00

33 lines
1.2 KiB
Kotlin

// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
pluginManagement {
repositories {
google()
gradlePluginPortal()
mavenCentral()
}
}
// F-Droid can't reach foojay, so skip the toolchain resolver for F-Droid builds.
// The flag is honoured from -Pfdroid=true, an `fdroid` entry in gradle.properties,
// or the FDROID_BUILD environment variable - the same sources the module build
// scripts read, so a single gradle.properties line drives the whole build.
plugins {
val isFDroid = providers.gradleProperty("fdroid").orNull?.isNotEmpty() == true ||
System.getenv("FDROID_BUILD") != null
if (!isFDroid) {
id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0"
}
}
rootProject.name = "hammer"
val isFDroidBuild = providers.gradleProperty("fdroid").orNull?.isNotEmpty() == true ||
System.getenv("FDROID_BUILD") != null
val modules = mutableListOf(":base", ":android", ":composeUi", ":common", ":server", ":integrationTests")
if (!isFDroidBuild) {
modules += ":desktop"
// Depends on Google Play services for phone pairing, so it is not an F-Droid module.
modules += ":wear"
}
include(*modules.toTypedArray())