Commit 46922705911dd28e462a605401837c64f7bbe943

Authored by 权海
1 parent bbe2b7ca

feat(ui):传输表盘修改为异步回调

fx
... ... @@ -141,7 +141,7 @@ interface WearEngineHostApi {
fun checkConnectedDevice(): WearDeviceInfo?
fun registerMessageReceiver(): Boolean
fun sendTextMessage(message: String): Boolean
fun sendWatchSyncPayload(jsonPayload: String): Boolean
fun sendWatchSyncPayload(jsonPayload: String, callback: (Result<Boolean>) -> Unit)
/**
* Opens the system photo picker and returns a local PNG file path after
* removing the image background on the host platform.
... ... @@ -227,12 +227,15 @@ interface WearEngineHostApi {
channel.setMessageHandler { message, reply ->
val args = message as List<Any?>
val jsonPayloadArg = args[0] as String
val wrapped: List<Any?> = try {
listOf(api.sendWatchSyncPayload(jsonPayloadArg))
} catch (exception: Throwable) {
WearEngineApiPigeonUtils.wrapError(exception)
api.sendWatchSyncPayload(jsonPayloadArg) { result: Result<Boolean> ->
val error = result.exceptionOrNull()
if (error != null) {
reply.reply(WearEngineApiPigeonUtils.wrapError(error))
} else {
val data = result.getOrNull()
reply.reply(WearEngineApiPigeonUtils.wrapResult(data))
}
}
reply.reply(wrapped)
}
} else {
channel.setMessageHandler(null)
... ...
... ... @@ -188,7 +188,7 @@ protocol WearEngineHostApi {
func checkConnectedDevice() throws -> WearDeviceInfo?
func registerMessageReceiver() throws -> Bool
func sendTextMessage(message: String) throws -> Bool
func sendWatchSyncPayload(jsonPayload: String) throws -> Bool
func sendWatchSyncPayload(jsonPayload: String, completion: @escaping (Result<Bool, Error>) -> Void)
/// Opens the system photo picker and returns a local PNG file path after
/// removing the image background on the host platform.
func removeBackground(originImagePath: String, completion: @escaping (Result<String?, Error>) -> Void)
... ... @@ -261,11 +261,13 @@ class WearEngineHostApiSetup {
sendWatchSyncPayloadChannel.setMessageHandler { message, reply in
let args = message as! [Any?]
let jsonPayloadArg = args[0] as! String
do {
let result = try api.sendWatchSyncPayload(jsonPayload: jsonPayloadArg)
reply(wrapResult(result))
} catch {
reply(wrapError(error))
api.sendWatchSyncPayload(jsonPayload: jsonPayloadArg) { result in
switch result {
case .success(let res):
reply(wrapResult(res))
case .failure(let error):
reply(wrapError(error))
}
}
}
} else {
... ...
... ... @@ -36,8 +36,9 @@ final class WearEngineHostApiImpl: WearEngineHostApi {
watchService.sendTextMessage(message)
}
func sendWatchSyncPayload(jsonPayload: String) throws -> Bool {
WatchConnectivityService.shared.sendWatchThemeChangedMessage(json: jsonPayload)
func sendWatchSyncPayload(jsonPayload: String, completion: @escaping (Result<Bool, any Error>) -> Void) {
let success = WatchConnectivityService.shared.sendWatchThemeChangedMessage(json: jsonPayload)
completion(.success(success))
}
func removeBackground(originImagePath: String, completion: @escaping (Result<String?, any Error>) -> Void) {
... ...
... ... @@ -38,6 +38,7 @@ abstract class WearEngineHostApi {
bool sendTextMessage(String message);
@async
bool sendWatchSyncPayload(String jsonPayload);
/// Opens the system photo picker and returns a local PNG file path after
... ...