diff --git a/core/java/android/view/contentcapture/ContentCaptureManager.java b/core/java/android/view/contentcapture/ContentCaptureManager.java index 336d9979a781d..cdd4f35f538b0 100644 --- a/core/java/android/view/contentcapture/ContentCaptureManager.java +++ b/core/java/android/view/contentcapture/ContentCaptureManager.java @@ -129,6 +129,14 @@ public final class ContentCaptureManager { @TestApi public static final String DEVICE_CONFIG_PROPERTY_LOGGING_LEVEL = "logging_level"; + /** + * Sets how long (in ms) the service is bound while idle. + * + *

Use {@code 0} to keep it permanently bound. + * + * @hide + */ + public static final String DEVICE_CONFIG_PROPERTY_IDLE_UNBIND_TIMEOUT = "idle_unbind_timeout"; /** @hide */ @TestApi diff --git a/core/java/com/android/internal/infra/AbstractRemoteService.java b/core/java/com/android/internal/infra/AbstractRemoteService.java index 732553b5b4793..f4c904dc750ed 100644 --- a/core/java/com/android/internal/infra/AbstractRemoteService.java +++ b/core/java/com/android/internal/infra/AbstractRemoteService.java @@ -67,7 +67,7 @@ public abstract class AbstractRemoteService { private final IBinder mServerCallback; + private final int mIdleUnbindTimeoutMs; RemoteContentCaptureService(Context context, String serviceInterface, ComponentName serviceComponentName, IContentCaptureServiceCallback callback, int userId, ContentCaptureServiceCallbacks callbacks, boolean bindInstantServiceAllowed, - boolean verbose) { + boolean verbose, int idleUnbindTimeoutMs) { super(context, serviceInterface, serviceComponentName, userId, callbacks, bindInstantServiceAllowed, verbose, /* initialCapacity= */ 2); mServerCallback = callback.asBinder(); + mIdleUnbindTimeoutMs = idleUnbindTimeoutMs; // Bind right away, which will trigger a onConnected() on service's scheduleBind(); @@ -58,8 +60,7 @@ final class RemoteContentCaptureService @Override // from AbstractRemoteService protected long getTimeoutIdleBindMillis() { - // TODO(b/111276913): read from Settings so it can be changed in the field - return PERMANENT_BOUND_TIMEOUT_MS; + return mIdleUnbindTimeoutMs; } @Override // from RemoteService