Repository navigation
Commit b3b601f
authored
refactor!: rebuild SamsungHealthReporter on the Samsung Health Data SDK (#3)
## Summary
Rebuilds the library on the Samsung Health Data SDK 1.1.0 (the old
Samsung Health SDK for Android was deprecated on 31.07.2025) with the
HealthKitReporter architecture: one `SamsungHealthReporter` with a
reader, writer, observer and manager, library-owned types and
`@Serializable` payloads, suspend API, no SDK types in the public API.
Breaking: releases as 1.0.0.
## Changes
- `library/`: facade, services, 25 `HealthType`s, 20 `Aggregation`s, 15
sample payloads + `UserProfile`, 67 unit tests, `api/library.api`
- `samsung-health-data-stub/`: never-published stand-in for the
login-gated, non-redistributable SDK AAR
- `app/`: Jetpack Compose demo with a row per public call, plus
permission diagnostics
- Build: Gradle 8.14, AGP 8.13.2, Kotlin 2.2.21, ktlint, detekt, Kover,
binary-compatibility-validator; CI + release-please; CI fetches the real
AAR from the private `kvs-coder/samsung-health-sdk` repo with a
read-only deploy key
- Docs: `AGENTS.md` (+ `CLAUDE.md`), README with migration table,
CONTRIBUTING, ADRs 0001–0003, `ISSUE-*.md`
- Removed the 0.0.x sources, the 1.4.0 SDK jar and tracked `.idea/`
## Tests
- Unit tests: 67 executed, 0 failed, against the real SDK AAR and the
stub; coverage 98.3% (Kover gate 98)
- ktlint / detekt / Android lint: clean
- apiCheck: passes, `library.api` committed
- Example app build: passes; on a Pixel 7a (Samsung Health 7.00.6,
developer mode) all 25 read permissions are granted and device/profile
reads return real data; writes fail with SDK error 2003 until Samsung's
partnership access code is entered
🤖 Generated with [Claude Code](https://claude.com/claude-code)1 parent dc0985f commit b3b601f
199 files changed
Lines changed: 12918 additions & 4520 deletions
File tree
- .github
- workflows
- .idea
- codeStyles
- dictionaries
- app
- src
- androidTest/java/com/kvs/samsunghealthreporter/example
- main
- java/com/kvs/samsunghealthreporter/example
- kotlin/com/kvs/samsunghealthreporter/example
- demo
- service
- res
- layout
- values
- test/java/com/kvs/samsunghealthreporter/example
- docs
- adr
- arc42
- gradle
- wrapper
- library
- api
- libs
- src
- androidTest/java/com/kvs/samsunghealthreporter
- main
- java/com/kvs/samsunghealthreporter
- decorator
- manager
- model
- discrete
- session
- observer
- resolver
- kotlin/com/kvs/samsunghealthreporter
- decorator
- model
- payload
- type
- service
- test
- java/com/kvs/samsunghealthreporter
- kotlin/com/kvs/samsunghealthreporter
- decorator
- payload
- service
- type
- samsung-health-data-stub
- src/main/kotlin/com/samsung/android/sdk/health/data
- data
- entries
- device
- error
- permission
- request
- response
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
| 1 | + | |
| 2 | + | |
3 | 3 | | |
4 | | - | |
5 | | - | |
| 4 | + | |
| 5 | + | |
6 | 6 | | |
7 | | - | |
8 | | - | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
9 | 12 | | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
| 13 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
0 commit comments