From b32f969d631cd58534958966bcf9fa1584f34254 Mon Sep 17 00:00:00 2001 From: "Maik.Kluwe.bwi" Date: Fri, 27 Mar 2026 13:28:29 +0100 Subject: [PATCH] Fix EventChannel calls from background thread on Android --- .../ManagedConfigurationsPlugin.kt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/android/src/main/kotlin/io/mway/managed_configurations/ManagedConfigurationsPlugin.kt b/android/src/main/kotlin/io/mway/managed_configurations/ManagedConfigurationsPlugin.kt index 7411502..09249b6 100644 --- a/android/src/main/kotlin/io/mway/managed_configurations/ManagedConfigurationsPlugin.kt +++ b/android/src/main/kotlin/io/mway/managed_configurations/ManagedConfigurationsPlugin.kt @@ -3,6 +3,8 @@ package io.mway.managed_configurations import android.app.Activity import android.content.* import android.util.Log +import android.os.Handler +import android.os.Looper import androidx.annotation.NonNull import androidx.enterprise.feedback.KeyedAppState import androidx.enterprise.feedback.KeyedAppStatesReporter @@ -30,6 +32,7 @@ class ManagedConfigurationsPlugin : FlutterPlugin, MethodCallHandler, ActivityAw private val gson = GsonBuilder().registerTypeAdapterFactory(BundleTypeAdapterFactory()) .create() private val executor = Executors.newSingleThreadExecutor() + private val mainHandler = Handler(Looper.getMainLooper()) private var reporter: KeyedAppStatesReporter? = null @@ -124,10 +127,14 @@ class ManagedConfigurationsPlugin : FlutterPlugin, MethodCallHandler, ActivityAw override fun onReceive(context: Context, intent: Intent) { getApplicationRestrictionsAsync( onSuccess = { result -> - eventSink?.success(result) + mainHandler.post { + eventSink?.success(result) + } }, onError = { e -> - eventSink?.error("restrictionsReceiver", e.message, Log.getStackTraceString(e)) + mainHandler.post { + eventSink?.error("restrictionsReceiver", e.message, Log.getStackTraceString(e)) + } } ) }