@@ -47,29 +47,35 @@ private void startNetworkCallback(Context context) {
47
47
NetworkRequest .Builder networkBuilder = new NetworkRequest .Builder ();
48
48
49
49
if (connectivityManager != null ) {
50
- connectivityManager .registerNetworkCallback (networkBuilder .build (), new ConnectivityManager .NetworkCallback () {
51
- @ Override
52
- public void onAvailable (@ NonNull Network network ) {
53
- super .onAvailable (network );
54
- IterableLogger .v (TAG , "Network Connected" );
55
- isConnected = true ;
56
- ArrayList <IterableNetworkMonitorListener > networkListenersCopy = new ArrayList <>(networkMonitorListeners );
57
- for (IterableNetworkMonitorListener listener : networkListenersCopy ) {
58
- listener .onNetworkConnected ();
50
+ try {
51
+ connectivityManager .registerNetworkCallback (networkBuilder .build (), new ConnectivityManager .NetworkCallback () {
52
+ @ Override
53
+ public void onAvailable (@ NonNull Network network ) {
54
+ super .onAvailable (network );
55
+ IterableLogger .v (TAG , "Network Connected" );
56
+ isConnected = true ;
57
+ ArrayList <IterableNetworkMonitorListener > networkListenersCopy = new ArrayList <>(networkMonitorListeners );
58
+ for (IterableNetworkMonitorListener listener : networkListenersCopy ) {
59
+ listener .onNetworkConnected ();
60
+ }
59
61
}
60
- }
61
-
62
- @ Override
63
- public void onLost ( @ NonNull Network network ) {
64
- super . onLost ( network );
65
- IterableLogger . v ( TAG , "Network Disconnected" ) ;
66
- isConnected = false ;
67
- ArrayList < IterableNetworkMonitorListener > networkListenersCopy = new ArrayList <>( networkMonitorListeners );
68
- for ( IterableNetworkMonitorListener listener : networkListenersCopy ) {
69
- listener . onNetworkDisconnected ();
62
+
63
+ @ Override
64
+ public void onLost ( @ NonNull Network network ) {
65
+ super . onLost ( network );
66
+ IterableLogger . v ( TAG , "Network Disconnected" );
67
+ isConnected = false ;
68
+ ArrayList < IterableNetworkMonitorListener > networkListenersCopy = new ArrayList <>( networkMonitorListeners ) ;
69
+ for ( IterableNetworkMonitorListener listener : networkListenersCopy ) {
70
+ listener . onNetworkDisconnected ();
71
+ }
70
72
}
71
- }
72
- });
73
+ });
74
+ } catch (SecurityException e ) {
75
+ // This security exception seems to be affecting few devices.
76
+ // More information here: https://issuetracker.google.com/issues/175055271?pli=1
77
+ IterableLogger .e (TAG , e .getLocalizedMessage ());
78
+ }
73
79
}
74
80
}
75
81
0 commit comments