Logger.kt

package io.github.tritbool.euc.ble.core

/**
 * Simple logging interface to avoid external dependencies
 */
interface Logger {
    fun verbose(tag: String, message: String)
    fun debug(tag: String, message: String)
    fun info(tag: String, message: String)
    fun warn(tag: String, message: String)
    fun error(tag: String, message: String)
    fun error(tag: String, message: String, throwable: Throwable)
}

/**
 * Default logger implementation using Android logging
 */
class AndroidLogger : Logger {
    override fun verbose(tag: String, message: String) {
        android.util.Log.v(tag, message)
    }

    override fun debug(tag: String, message: String) {
        android.util.Log.d(tag, message)
    }

    override fun info(tag: String, message: String) {
        android.util.Log.i(tag, message)
    }

    override fun warn(tag: String, message: String) {
        android.util.Log.w(tag, message)
    }

    override fun error(tag: String, message: String) {
        android.util.Log.e(tag, message)
    }

    override fun error(tag: String, message: String, throwable: Throwable) {
        android.util.Log.e(tag, message, throwable)
    }
}

/**
 * No-op logger for testing or environments without logging
 */
class NoOpLogger : Logger {
    override fun verbose(tag: String, message: String) {}
    override fun debug(tag: String, message: String) {}
    override fun info(tag: String, message: String) {}
    override fun warn(tag: String, message: String) {}
    override fun error(tag: String, message: String) {}
    override fun error(tag: String, message: String, throwable: Throwable) {}
}