30 lines
977 B
Kotlin
30 lines
977 B
Kotlin
package co.electriccoin.lightwallet.client.internal
|
|
|
|
import android.util.Log
|
|
import co.electriccoin.lightwallet.client.model.LightWalletEndpoint
|
|
import io.grpc.ManagedChannel
|
|
import io.grpc.android.AndroidChannelBuilder
|
|
|
|
internal interface ChannelFactory {
|
|
fun newChannel(endpoint: LightWalletEndpoint): ManagedChannel
|
|
}
|
|
|
|
internal class AndroidChannelFactory(context: android.content.Context) : ChannelFactory {
|
|
private val context = context.applicationContext
|
|
|
|
override fun newChannel(endpoint: LightWalletEndpoint): ManagedChannel {
|
|
return AndroidChannelBuilder
|
|
.forAddress(endpoint.host, endpoint.port)
|
|
.context(context)
|
|
.apply {
|
|
if (endpoint.isSecure) {
|
|
useTransportSecurity()
|
|
} else {
|
|
Log.w(Constants.LOG_TAG, "WARNING Using plaintext connection")
|
|
usePlaintext()
|
|
}
|
|
}
|
|
.build()
|
|
}
|
|
}
|