Skip to content

Commit

Permalink
fix: process resolve value type
Browse files Browse the repository at this point in the history
  • Loading branch information
LichKing-2234 committed Dec 28, 2020
1 parent bfe8327 commit d28c79d
Showing 1 changed file with 20 additions and 15 deletions.
35 changes: 20 additions & 15 deletions android/src/main/java/io/agora/rtc/react/PromiseCallback.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,28 @@ import com.facebook.react.bridge.Promise
import io.agora.rtc.base.Callback

class PromiseCallback(
private val promise: Promise?
private val promise: Promise?
) : Callback() {
override fun success(data: Any?) {
if (data is Map<*, *>) {
val map = mutableMapOf<String, Any?>()
data.forEach {
if (it.key is String) {
map[it.key as String] = it.value
}
}
promise?.resolve(Arguments.makeNativeMap(map))
} else {
promise?.resolve(data)
override fun success(data: Any?) {
when (data) {
null, is Boolean, is Int, is String -> promise?.resolve(data)
is Number -> promise?.resolve(data.toDouble())
is Array<*> -> promise?.resolve(Arguments.makeNativeArray<Any>(arrayOf(data)))
is List<*> -> promise?.resolve(Arguments.makeNativeArray(data))
is Map<*, *> -> {
val map = mutableMapOf<String, Any?>()
data.forEach {
if (it.key is String) {
map[it.key as String] = it.value
}
}
promise?.resolve(Arguments.makeNativeMap(map))
}
else -> promise?.reject(IllegalArgumentException("Could not convert " + data.javaClass))
}
}

override fun failure(code: String, message: String) {
promise?.reject(code, message)
}
override fun failure(code: String, message: String) {
promise?.reject(code, message)
}
}

0 comments on commit d28c79d

Please sign in to comment.