Loading packages/ExtServices/src/android/ext/services/watchdog/ExplicitHealthCheckServiceImpl.java +17 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.ext.services.watchdog; import android.content.ComponentName; import android.content.Intent; import android.provider.DeviceConfig; import android.service.watchdog.ExplicitHealthCheckService; import android.service.watchdog.PackageInfo; import android.util.Log; Loading @@ -27,6 +28,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; /** * Routes explicit health check requests to the appropriate {@link ExplicitHealthChecker}. Loading @@ -36,6 +38,10 @@ public final class ExplicitHealthCheckServiceImpl extends ExplicitHealthCheckSer // TODO: Add build dependency on NetworkStack stable AIDL so we can stop hard coding class name private static final String NETWORK_STACK_CONNECTOR_CLASS = "android.net.INetworkStackConnector"; private static final String PROPERTY_WATCHDOG_REQUEST_TIMEOUT_MILLIS = "watchdog_request_timeout_millis"; private static final long DEFAULT_REQUEST_TIMEOUT_MILLIS = TimeUnit.HOURS.toMillis(1); // Modified only #onCreate, using concurrent collection to ensure thread visibility private final Map<String, ExplicitHealthChecker> mSupportedCheckers = new ConcurrentHashMap<>(); Loading Loading @@ -70,8 +76,17 @@ public final class ExplicitHealthCheckServiceImpl extends ExplicitHealthCheckSer @Override public List<PackageInfo> onGetSupportedPackages() { List<PackageInfo> packages = new ArrayList<>(); long requestTimeoutMillis = DeviceConfig.getLong( DeviceConfig.NAMESPACE_ROLLBACK, PROPERTY_WATCHDOG_REQUEST_TIMEOUT_MILLIS, DEFAULT_REQUEST_TIMEOUT_MILLIS); if (requestTimeoutMillis <= 0) { requestTimeoutMillis = DEFAULT_REQUEST_TIMEOUT_MILLIS; } for (ExplicitHealthChecker checker : mSupportedCheckers.values()) { packages.add(checker.getSupportedPackage()); PackageInfo pkg = new PackageInfo(checker.getSupportedPackageName(), requestTimeoutMillis); packages.add(pkg); } return packages; } Loading @@ -87,7 +102,7 @@ public final class ExplicitHealthCheckServiceImpl extends ExplicitHealthCheckSer while (it.hasNext()) { ExplicitHealthChecker checker = it.next(); if (checker.isPending()) { packages.add(checker.getSupportedPackage().getPackageName()); packages.add(checker.getSupportedPackageName()); } } return packages; Loading packages/ExtServices/src/android/ext/services/watchdog/ExplicitHealthChecker.java +2 −4 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ package android.ext.services.watchdog; import android.service.watchdog.PackageInfo; /** * A type of explicit health check that can be performed on a device, e.g network health check */ Loading @@ -40,7 +38,7 @@ interface ExplicitHealthChecker { boolean isPending(); /** * Returns the {@link PackageInfo} object this checker can make requests for. * Returns the name of the package this checker can make requests for. */ PackageInfo getSupportedPackage(); String getSupportedPackageName(); } packages/ExtServices/src/android/ext/services/watchdog/NetworkChecker.java +2 −5 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ import android.net.Network; import android.net.NetworkCapabilities; import android.net.NetworkRequest; import android.service.watchdog.ExplicitHealthCheckService; import android.service.watchdog.PackageInfo; import com.android.internal.annotations.GuardedBy; Loading @@ -35,8 +34,6 @@ final class NetworkChecker extends ConnectivityManager.NetworkCallback private final Object mLock = new Object(); private final ExplicitHealthCheckService mService; private final String mPackageName; // TODO: Receive from DeviceConfig flag private final long mRequestDurationMillis = 0; @GuardedBy("mLock") private boolean mIsPending; Loading Loading @@ -76,8 +73,8 @@ final class NetworkChecker extends ConnectivityManager.NetworkCallback } @Override public PackageInfo getSupportedPackage() { return new PackageInfo(mPackageName, mRequestDurationMillis); public String getSupportedPackageName() { return mPackageName; } // TODO(b/120598832): Also monitor NetworkCallback#onAvailable to see if we have any Loading Loading
packages/ExtServices/src/android/ext/services/watchdog/ExplicitHealthCheckServiceImpl.java +17 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.ext.services.watchdog; import android.content.ComponentName; import android.content.Intent; import android.provider.DeviceConfig; import android.service.watchdog.ExplicitHealthCheckService; import android.service.watchdog.PackageInfo; import android.util.Log; Loading @@ -27,6 +28,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; /** * Routes explicit health check requests to the appropriate {@link ExplicitHealthChecker}. Loading @@ -36,6 +38,10 @@ public final class ExplicitHealthCheckServiceImpl extends ExplicitHealthCheckSer // TODO: Add build dependency on NetworkStack stable AIDL so we can stop hard coding class name private static final String NETWORK_STACK_CONNECTOR_CLASS = "android.net.INetworkStackConnector"; private static final String PROPERTY_WATCHDOG_REQUEST_TIMEOUT_MILLIS = "watchdog_request_timeout_millis"; private static final long DEFAULT_REQUEST_TIMEOUT_MILLIS = TimeUnit.HOURS.toMillis(1); // Modified only #onCreate, using concurrent collection to ensure thread visibility private final Map<String, ExplicitHealthChecker> mSupportedCheckers = new ConcurrentHashMap<>(); Loading Loading @@ -70,8 +76,17 @@ public final class ExplicitHealthCheckServiceImpl extends ExplicitHealthCheckSer @Override public List<PackageInfo> onGetSupportedPackages() { List<PackageInfo> packages = new ArrayList<>(); long requestTimeoutMillis = DeviceConfig.getLong( DeviceConfig.NAMESPACE_ROLLBACK, PROPERTY_WATCHDOG_REQUEST_TIMEOUT_MILLIS, DEFAULT_REQUEST_TIMEOUT_MILLIS); if (requestTimeoutMillis <= 0) { requestTimeoutMillis = DEFAULT_REQUEST_TIMEOUT_MILLIS; } for (ExplicitHealthChecker checker : mSupportedCheckers.values()) { packages.add(checker.getSupportedPackage()); PackageInfo pkg = new PackageInfo(checker.getSupportedPackageName(), requestTimeoutMillis); packages.add(pkg); } return packages; } Loading @@ -87,7 +102,7 @@ public final class ExplicitHealthCheckServiceImpl extends ExplicitHealthCheckSer while (it.hasNext()) { ExplicitHealthChecker checker = it.next(); if (checker.isPending()) { packages.add(checker.getSupportedPackage().getPackageName()); packages.add(checker.getSupportedPackageName()); } } return packages; Loading
packages/ExtServices/src/android/ext/services/watchdog/ExplicitHealthChecker.java +2 −4 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ package android.ext.services.watchdog; import android.service.watchdog.PackageInfo; /** * A type of explicit health check that can be performed on a device, e.g network health check */ Loading @@ -40,7 +38,7 @@ interface ExplicitHealthChecker { boolean isPending(); /** * Returns the {@link PackageInfo} object this checker can make requests for. * Returns the name of the package this checker can make requests for. */ PackageInfo getSupportedPackage(); String getSupportedPackageName(); }
packages/ExtServices/src/android/ext/services/watchdog/NetworkChecker.java +2 −5 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ import android.net.Network; import android.net.NetworkCapabilities; import android.net.NetworkRequest; import android.service.watchdog.ExplicitHealthCheckService; import android.service.watchdog.PackageInfo; import com.android.internal.annotations.GuardedBy; Loading @@ -35,8 +34,6 @@ final class NetworkChecker extends ConnectivityManager.NetworkCallback private final Object mLock = new Object(); private final ExplicitHealthCheckService mService; private final String mPackageName; // TODO: Receive from DeviceConfig flag private final long mRequestDurationMillis = 0; @GuardedBy("mLock") private boolean mIsPending; Loading Loading @@ -76,8 +73,8 @@ final class NetworkChecker extends ConnectivityManager.NetworkCallback } @Override public PackageInfo getSupportedPackage() { return new PackageInfo(mPackageName, mRequestDurationMillis); public String getSupportedPackageName() { return mPackageName; } // TODO(b/120598832): Also monitor NetworkCallback#onAvailable to see if we have any Loading