Commit Graph
21 Commits
Author SHA1 Message Date
KremeCN 1c5caf5a6b fix: enforce provider availability on restore 2026-08-24 00:33:21 +08:00
KremeCN 03bf28afbc fix: preserve session storage through transient failures 2026-08-24 00:06:59 +08:00
KremeCN 8788fe6ec5 fix: secure login route lifecycle 2026-08-23 23:45:39 +08:00
KremeCN 7cb0480a7a fix: harden provider session restoration 2026-08-23 23:30:11 +08:00
KremeCN 344fa6dafa fix: preserve login input during preference load 2026-08-23 23:02:01 +08:00
KremeCN 3764acb7ec fix: isolate login credentials across providers 2026-08-23 22:25:21 +08:00
KremeCN cc8eeebdc4 feat: add provider login flow 2026-08-23 21:58:04 +08:00
KremeCN 6f7d3248b0 feat: add ABSDK 0630 bridge (#3)
## Summary

- add a pure Kotlin/JVM anti-corruption layer for ABSDK 0630
- serialize blocking SDK calls and enforce one provider-scoped session
- map `ABRet`, raw maps, SDK exceptions, and error codes into typed domain results
- implement session, socket, temperature/humidity, and infrared gateways
- document bytecode-confirmed protocol facts, SDK limitations, and unresolved behavior
- align JVM module bytecode with the Android Java 17 target

## Scope boundaries

- the bridge is not wired into the Android app in this PR; debug continues using Fakes
- `setHostInfo` is intentionally not called or implemented as a provider flow
- logout clears only the bridge-local session because the JAR exposes no logout or token setter
- no real credentials, network calls, or hardware were used in tests
- `docs/requirement_spec.md` and `docs/project_plan.md` are unchanged

## Verification

```text
gradlew.bat --stop
gradlew.bat clean :absdk-bridge:test :domain:test :testing:fakes:test :android:app:lintDebug :android:app:assembleDebug :android:app:assembleRelease build
```

Result: `BUILD SUCCESSFUL`

The public JAR API was also rechecked with `javap`, including the actual `getThStatus(String)` method, absence of a public logout API, `ABRet.getDicDatas()`, `IrInfo.getStatus()`, and `downloadIrCodes(List<IrInfo>)`.
Reviewed-on: #3
Co-authored-by: KremeCN <3265494849@qq.com>
2026-08-23 07:19:05 +08:00
KremeCN e45de7fefe docs: define ABSDK device name identity 2026-08-22 22:29:25 +08:00
KremeCN ca0703a9a3 fix: make infrared downloads provider scoped 2026-08-22 22:21:34 +08:00
KremeCN cbc2dc7ec5 fix: redact passwords from credential strings 2026-08-22 22:14:47 +08:00
KremeCN 117f87f735 feat: establish Android project foundation 2026-08-22 22:06:50 +08:00
KremeCN 0b8c54bd21 docs: update package name to com.flagship.abox.manager 2026-08-22 17:12:49 +08:00
KremeCN 66334cf18e docs: add ABox Manager project plan 2026-08-22 16:04:45 +08:00
KremeCN 6f6f3755b5 docs: archive ABSDK Android sample 2026-08-22 15:48:16 +08:00
KremeCN 3c7c6002df docs: add LoginAsyncTaskDemo layout example 2026-08-22 14:19:11 +08:00
KremeCN 2954b56193 docs: document protected main branch workflow 2026-08-22 14:15:09 +08:00
KremeCN 519e865726 chore: add .gitignore 2026-08-22 14:03:57 +08:00
KremeCN 091103586a chore: add AGENTS.md rule hub with CLAUDE.md and .trae/rules/all.md entrypoints 2026-08-22 13:56:18 +08:00
KremeCN 4ba2508778 docs: add AsyncTask demo for ABSDK login 2026-08-22 12:13:24 +08:00
KremeCN 48f26e8ef8 chore: initial commit 2026-08-22 12:02:45 +08:00