Commit Graph
6 Commits
Author SHA1 Message Date
KremeCN ae5bc871e8 fix: address final review findings for provider migration
- Add SessionCoordinator regression test covering switch from an
  authenticated ABox profile to Local experience: remote session is
  logged out and cleared, only Local is the active/observable session,
  credentials are cleared, auto-login disabled, and gateway state stays
  isolated (verified to fail when switch cleanup is removed).
- Replace if/else provider dispatch with exhaustive when over
  ProviderType in all three routing gateways so future enum additions
  fail compilation.
- Silence the known ExperimentalCoroutinesApi opt-in warning in
  ProviderSelectionViewModelTest with a class-level @OptIn.
2026-08-24 23:28:48 +08:00
KremeCN 45f768208f feat: route provider sessions to ABSDK and simulation 2026-08-24 19:10:46 +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 ca0703a9a3 fix: make infrared downloads provider scoped 2026-08-22 22:21:34 +08:00
KremeCN 117f87f735 feat: establish Android project foundation 2026-08-22 22:06:50 +08:00