Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 50c7c5e2 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Migrate to best practise to read network state" into main

parents d62fa446 f9f96b6f
Loading
Loading
Loading
Loading
+13 −5
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@ import android.content.Context;
import android.content.res.Resources;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkInfo;
import android.net.NetworkCapabilities;
import android.net.SntpClient;
import android.os.Build;
import android.os.SystemClock;
@@ -687,8 +687,16 @@ public abstract class NtpTrustedTime implements TrustedTime {
            if (connectivityManager == null) {
                return false;
            }
            final NetworkInfo ni = connectivityManager.getNetworkInfo(network);

            final NetworkCapabilities networkCapabilities =
                    connectivityManager.getNetworkCapabilities(network);
            if (networkCapabilities == null) {
                if (LOGD) Log.d(TAG, "getNetwork: failed to get network capabilities");
                return false;
            }
            final boolean isConnectedToInternet = networkCapabilities.hasCapability(
                    NetworkCapabilities.NET_CAPABILITY_INTERNET)
                    && networkCapabilities.hasCapability(
                    NetworkCapabilities.NET_CAPABILITY_VALIDATED);
            // This connectivity check is to avoid performing a DNS lookup for the time server on a
            // unconnected network. There are races to obtain time in Android when connectivity
            // changes, which means that forceRefresh() can be called by various components before
@@ -698,8 +706,8 @@ public abstract class NtpTrustedTime implements TrustedTime {
            // A side effect of check is that tests that run a fake NTP server on the device itself
            // will only be able to use it if the active network is connected, even though loopback
            // addresses are actually reachable.
            if (ni == null || !ni.isConnected()) {
                if (LOGD) Log.d(TAG, "getNetwork: no connectivity");
            if (!isConnectedToInternet) {
                if (LOGD) Log.d(TAG, "getNetwork: no internet connectivity");
                return false;
            }
            return true;