diff --git a/app/src/main/java/no/iktdev/demoapplication/MainActivity.kt b/app/src/main/java/no/iktdev/demoapplication/MainActivity.kt index af906d6..6bc5a91 100644 --- a/app/src/main/java/no/iktdev/demoapplication/MainActivity.kt +++ b/app/src/main/java/no/iktdev/demoapplication/MainActivity.kt @@ -1,14 +1,46 @@ package no.iktdev.demoapplication +import android.net.nsd.NsdServiceInfo import android.os.Bundle import android.view.LayoutInflater import androidx.appcompat.app.AppCompatActivity +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.Job +import kotlinx.coroutines.launch import no.iktdev.demoapplication.databinding.ActivityMainBinding +import no.iktdev.networking.mdns.ndsDiscovery +import no.iktdev.networking.mdns.ndsDiscoveryListener +import java.net.InetAddress + class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val binding = ActivityMainBinding.inflate(LayoutInflater.from(this)) setContentView(binding.root) + val ioScope = CoroutineScope(Job() + Dispatchers.IO) + + ioScope.launch { + val discovery = ndsDiscovery(this@MainActivity, "_streamit._tcp", object: ndsDiscoveryListener { + override fun onResolveFailed(info: NsdServiceInfo, errorCode: Int) { + TODO("Not yet implemented") + } + + override fun onResolved(info: NsdServiceInfo) { + TODO("Not yet implemented") + } + + override fun onLost(hostAddress: InetAddress, serviceName: String) { + TODO("Not yet implemented") + } + + override fun onStartFailed(serviceType: String, errorCode: Int) { + TODO("Not yet implemented") + } + + }) + discovery.startDiscovery() + } } } \ No newline at end of file diff --git a/library/networking/src/main/java/no/iktdev/networking/mdns/ndsData.kt b/library/networking/src/main/java/no/iktdev/networking/mdns/ndsData.kt deleted file mode 100644 index fac031a..0000000 --- a/library/networking/src/main/java/no/iktdev/networking/mdns/ndsData.kt +++ /dev/null @@ -1,20 +0,0 @@ -package no.iktdev.networking.mdns - -import no.iktdev.networking.isIPv4 -import no.iktdev.networking.isIPv6 -import java.net.InetAddress - -data class ndsData( - val name: String, - val url: String, - val ip: String, - val port: Int -) { - fun isV4(): Boolean { - return InetAddress.getByName(ip).isIPv4() - } - - fun isV6(): Boolean { - return InetAddress.getByName(ip).isIPv6() - } -} diff --git a/library/networking/src/main/java/no/iktdev/networking/mdns/ndsDiscovery.kt b/library/networking/src/main/java/no/iktdev/networking/mdns/ndsDiscovery.kt index 9eaaed0..126fdd7 100644 --- a/library/networking/src/main/java/no/iktdev/networking/mdns/ndsDiscovery.kt +++ b/library/networking/src/main/java/no/iktdev/networking/mdns/ndsDiscovery.kt @@ -28,21 +28,7 @@ class ndsDiscovery(context: Context, val serviceName: String, var listener: ndsD } override fun onServiceResolved(resolvedServiceInfo: NsdServiceInfo) { - val name = resolvedServiceInfo.serviceName - val host = resolvedServiceInfo.host?.hostAddress - val port = resolvedServiceInfo.port ?: 80 - val attrs = resolvedServiceInfo.attributes.mapValues { String(it.value) } - val url = attrs["url"] ?: "" - Log.d("NsdHelper", "Service resolved: ${resolvedServiceInfo.host}") - - host?.let { - ndsData( - name = name, - ip = it, - port = port, - url = url - ) - }?.also { listener.onResolved(it) } + listener.onResolved(resolvedServiceInfo) } }) } diff --git a/library/networking/src/main/java/no/iktdev/networking/mdns/ndsDiscoveryListener.kt b/library/networking/src/main/java/no/iktdev/networking/mdns/ndsDiscoveryListener.kt index 472f0fb..443e2f0 100644 --- a/library/networking/src/main/java/no/iktdev/networking/mdns/ndsDiscoveryListener.kt +++ b/library/networking/src/main/java/no/iktdev/networking/mdns/ndsDiscoveryListener.kt @@ -6,7 +6,7 @@ import java.net.InetAddress interface ndsDiscoveryListener { fun onResolveFailed(info: NsdServiceInfo, errorCode: Int) - fun onResolved(ndsData: ndsData) + fun onResolved(info: NsdServiceInfo) fun onLost(hostAddress: InetAddress, serviceName: String) fun onStartFailed(serviceType: String, errorCode: Int) } \ No newline at end of file