From c66b2b011caeb92a5c5d409e4a382bf747b1c5b5 Mon Sep 17 00:00:00 2001 From: Kyrylo Borodin Date: Tue, 16 Sep 2025 20:17:13 +0300 Subject: [PATCH 1/3] feat(connectivity): improve network callback unregistration handling --- .../ConnectivityBroadcastReceiver.java | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/packages/connectivity_plus/connectivity_plus/android/src/main/java/dev/fluttercommunity/plus/connectivity/ConnectivityBroadcastReceiver.java b/packages/connectivity_plus/connectivity_plus/android/src/main/java/dev/fluttercommunity/plus/connectivity/ConnectivityBroadcastReceiver.java index 324d3d234d..2a3b108e18 100644 --- a/packages/connectivity_plus/connectivity_plus/android/src/main/java/dev/fluttercommunity/plus/connectivity/ConnectivityBroadcastReceiver.java +++ b/packages/connectivity_plus/connectivity_plus/android/src/main/java/dev/fluttercommunity/plus/connectivity/ConnectivityBroadcastReceiver.java @@ -14,7 +14,11 @@ import android.os.Build; import android.os.Handler; import android.os.Looper; + +import androidx.annotation.RequiresApi; + import io.flutter.plugin.common.EventChannel; + import java.util.List; /** @@ -86,19 +90,33 @@ public void onLost(Network network) { @Override public void onCancel(Object arguments) { if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - if (networkCallback != null) { - connectivity.getConnectivityManager().unregisterNetworkCallback(networkCallback); - networkCallback = null; - } + safelyUnregisterNetworkCallback(); } else { + safelyUnregisterReceiver(); + } + } + + @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) + void safelyUnregisterNetworkCallback() { + if (networkCallback != null) { try { - context.unregisterReceiver(this); + connectivity.getConnectivityManager().unregisterNetworkCallback(networkCallback); } catch (Exception e) { - // listen never called, ignore the error + // ignore the error + } finally { + networkCallback = null; } } } + void safelyUnregisterReceiver() { + try { + context.unregisterReceiver(this); + } catch (Exception e) { + // listen never called, ignore the error + } + } + @Override public void onReceive(Context context, Intent intent) { if (events != null) { From bea24470b669fa22e70c34224199cfcb9c21341c Mon Sep 17 00:00:00 2001 From: Kyrylo Borodin Date: Tue, 16 Sep 2025 20:47:22 +0300 Subject: [PATCH 2/3] feat(connectivity): fixed imports formatting --- .../plus/connectivity/ConnectivityBroadcastReceiver.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/connectivity_plus/connectivity_plus/android/src/main/java/dev/fluttercommunity/plus/connectivity/ConnectivityBroadcastReceiver.java b/packages/connectivity_plus/connectivity_plus/android/src/main/java/dev/fluttercommunity/plus/connectivity/ConnectivityBroadcastReceiver.java index 2a3b108e18..66114326c7 100644 --- a/packages/connectivity_plus/connectivity_plus/android/src/main/java/dev/fluttercommunity/plus/connectivity/ConnectivityBroadcastReceiver.java +++ b/packages/connectivity_plus/connectivity_plus/android/src/main/java/dev/fluttercommunity/plus/connectivity/ConnectivityBroadcastReceiver.java @@ -16,9 +16,7 @@ import android.os.Looper; import androidx.annotation.RequiresApi; - import io.flutter.plugin.common.EventChannel; - import java.util.List; /** From 6db894a8c038f8f566c36ce4d349563df0aa0eb2 Mon Sep 17 00:00:00 2001 From: Kyrylo Borodin Date: Tue, 16 Sep 2025 20:52:01 +0300 Subject: [PATCH 3/3] feat(connectivity): removed empty space in import --- .../plus/connectivity/ConnectivityBroadcastReceiver.java | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/connectivity_plus/connectivity_plus/android/src/main/java/dev/fluttercommunity/plus/connectivity/ConnectivityBroadcastReceiver.java b/packages/connectivity_plus/connectivity_plus/android/src/main/java/dev/fluttercommunity/plus/connectivity/ConnectivityBroadcastReceiver.java index 66114326c7..55439bc5d6 100644 --- a/packages/connectivity_plus/connectivity_plus/android/src/main/java/dev/fluttercommunity/plus/connectivity/ConnectivityBroadcastReceiver.java +++ b/packages/connectivity_plus/connectivity_plus/android/src/main/java/dev/fluttercommunity/plus/connectivity/ConnectivityBroadcastReceiver.java @@ -14,7 +14,6 @@ import android.os.Build; import android.os.Handler; import android.os.Looper; - import androidx.annotation.RequiresApi; import io.flutter.plugin.common.EventChannel; import java.util.List;