Skip to content

Commit 55b026f

Browse files
committed
Add version-specific functionality for connections.
AzureAD/azure-activedirectory-library-for-android#1547
1 parent e166a0a commit 55b026f

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

common/src/main/java/com/microsoft/identity/common/adal/internal/net/DefaultConnectionService.java

+11-3
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
import android.annotation.TargetApi;
2626
import android.content.Context;
2727
import android.net.ConnectivityManager;
28+
import android.net.Network;
29+
import android.net.NetworkCapabilities;
2830
import android.net.NetworkInfo;
2931
import android.os.Build;
3032

@@ -62,9 +64,15 @@ public DefaultConnectionService(Context ctx) {
6264
public boolean isConnectionAvailable() {
6365
ConnectivityManager connectivityManager = (ConnectivityManager) mConnectionContext
6466
.getSystemService(Context.CONNECTIVITY_SERVICE);
65-
NetworkInfo activeNetwork = connectivityManager.getActiveNetworkInfo();
66-
@SuppressWarnings("deprecation")
67-
final boolean isConnectionAvailable = activeNetwork != null && activeNetwork.isConnectedOrConnecting();
67+
final boolean isConnectionAvailable;
68+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
69+
final Network activeNetwork = connectivityManager.getActiveNetwork();
70+
final NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(activeNetwork);
71+
isConnectionAvailable = capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
72+
} else {
73+
final NetworkInfo activeNetwork = connectivityManager.getActiveNetworkInfo();
74+
isConnectionAvailable = activeNetwork != null && activeNetwork.isConnected();
75+
}
6876
Telemetry.emit((BaseEvent) new BaseEvent().put(TelemetryEventStrings.Key.NETWORK_CONNECTION, String.valueOf(isConnectionAvailable)));
6977
return isConnectionAvailable;
7078
}

0 commit comments

Comments
 (0)