package com.margelo.nitro.progressandmodal import android.app.Activity import com.facebook.proguard.annotations.DoNotStrip import com.margelo.nitro.NitroModules @DoNotStrip class ProgressAndModal : HybridProgressAndModalSpec() { // ─── Managers ─────────────────────────────────────────────────────────────── private val loadingManager = PAMLoadingManager { getActivity() } private val lottieManager = PAMLottieManager { getActivity() } private val toastManager = PAMToastManager { getActivity() } // ─── Helpers ───────────────────────────────────────────────────────────────── private fun getActivity(): Activity? { val context = NitroModules.applicationContext ?: return null return context.currentActivity } // ─── Native API ────────────────────────────────────────────────────────────── override fun configure(params: PAM_ConfigParams) { val bgAlpha = params.backgroundAlpha?.let { alpha -> val alphaValue = (alpha * 255).toInt() "#${String.format("%02X", alphaValue)}000000" } loadingManager.setConfig(bgAlpha, params.indicatorColor) lottieManager.setConfig(bgAlpha) toastManager.configure() } override fun showLoading() = loadingManager.showLoading() override fun hideLoading() = loadingManager.hideLoading() override fun forceHideLoading() = loadingManager.forceHideLoading() override fun showLottie(params: PAM_LottieLoadingParams) = lottieManager.showLottie(params) override fun hideLottie(params: PAM_LottieLoadingParams) = lottieManager.hideLottie(params) override fun showToast(params: PAM_ToastParams) = toastManager.showToast(params) }