From a94f31f4f49652685e9ef06f170b6824f295256a Mon Sep 17 00:00:00 2001 From: Matthias Urhahn <matthias.urhahn@sap.com> Date: Fri, 23 Apr 2021 14:54:46 +0200 Subject: [PATCH] Catch unexpected SecurityException on Samsung devices. (#2926) Co-authored-by: harambasicluka <64483219+harambasicluka@users.noreply.github.com> --- .../util/network/NetworkStateProvider.kt | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/network/NetworkStateProvider.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/network/NetworkStateProvider.kt index 3d9820149..347550766 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/network/NetworkStateProvider.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/network/NetworkStateProvider.kt @@ -49,7 +49,23 @@ class NetworkStateProvider @Inject constructor( val request = networkRequestBuilderProvider.get() .addCapability(NET_CAPABILITY_INTERNET) .build() - manager.registerNetworkCallback(request, callback) + + try { + /** + * This may throw java.lang.SecurityException on Samsung devices + * java.lang.SecurityException: + * at android.os.Parcel.createExceptionOrNull (Parcel.java:2385) + * at android.net.ConnectivityManager.registerNetworkCallback (ConnectivityManager.java:4564) + */ + manager.registerNetworkCallback(request, callback) + } catch (e: SecurityException) { + Timber.e(e, "registerNetworkCallback() threw an undocumented SecurityException, Just Samsung Thingsâ„¢ï¸") + State( + activeNetwork = null, + capabilities = null, + linkProperties = null, + ).run { send(this) } + } val fakeConnectionSubscriber = launch { testSettings.fakeMeteredConnection.flow.drop(1) -- GitLab