WormaCeptor

No-Op Behavior

How WormaCeptor safely becomes a no-op in release builds.

No-Op Behavior

WormaCeptor is designed to have zero impact on release builds.

How It Works

  1. The api-client module contains only lightweight API facades and a NoOpProvider
  2. At init() time, it uses reflection to look for ServiceProviderImpl in the classpath
  3. If found (debug build with api-impl-persistence or api-impl-imdb), it delegates to the real implementation
  4. If not found (release build), all API calls silently do nothing

What Happens in Release Builds

API CallRelease Behavior
WormaCeptorApi.init()Initializes NoOpProvider, returns immediately
WormaCeptorInterceptor.intercept()Passes request through unchanged
WormaCeptorKtorPluginPasses request through unchanged
WormaCeptorWebView.createMonitoringClient()Returns the delegate (or a plain WebViewClient)
WormaCeptorWebSocket.wrap()Returns a pass-through wrapper
getLaunchIntent()Returns an empty Intent
startActivityOnShake()No-op (silently fails without debug provider)
showFloatingButton()Returns false
showPerformanceOverlay()Returns false

On this page