Android SDK

Android SDK

Receive decision requests in your Android app

Download

Installation


  dependencies {
    implementation("com.github.noxy-network:android-sdk:2.0.1")
  }
  
Code

Quick Start


  import network.noxy.sdk.*
  import network.noxy.sdk.identity.*
  import network.noxy.sdk.network.NoxyDecisionChoice
  
  val identity = NoxyIdentity.Eoa(NoxyEoaWalletIdentity(
      address = "0x...",
      signer = { data ->
          val sig = wallet.signMessage(data)
          Signature(bytes = sig)
      }
  ))
  
  val client = createNoxyClient(
      context = context,
      identity = identity,
      network = NoxyNetworkOptions(
          appId = "your-app-id",
          relayUrl = "https://relay.noxy.network"
      )
  )
  
  lifecycleScope.launch {
      client.initialize()
  }
  
  lifecycleScope.launch {
      client.on { relayMessageId, decision ->
          val title = decision["title"] as? String
          val summary = decision["summary"] as? String
          val decisionId = NoxyClient.resolveDecisionId(decision, relayMessageId)
              ?: return@on
          // Show UI (e.g. dialog or full-screen Activity)
      }
  }
  
  // In your Activity, Fragment, or notification receiver — wire this to Approve / Reject taps:
  fun onApproveOrRejectClick(approve: Boolean) {
      lifecycleScope.launch {
          client.sendDecisionOutcome(
              decisionId,
              if (approve) NoxyDecisionChoice.Approve else NoxyDecisionChoice.Reject
          )
      }
  }
  
  lifecycleScope.launch {
      client.close()
  }