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>
This commit was merged in pull request #3.
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
plugins {
|
||||
alias(libs.plugins.kotlin.jvm)
|
||||
}
|
||||
|
||||
kotlin {
|
||||
jvmToolchain(17)
|
||||
}
|
||||
|
||||
dependencies {
|
||||
api(project(":domain"))
|
||||
implementation(
|
||||
fileTree("../samples/abox-sdk-sample/login-mac/libs") {
|
||||
include("*.jar")
|
||||
},
|
||||
)
|
||||
implementation(libs.kotlinx.coroutines.core)
|
||||
|
||||
testImplementation(libs.junit)
|
||||
testImplementation(libs.kotlinx.coroutines.test)
|
||||
}
|
||||
Reference in New Issue
Block a user