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

Commit 70bcf38e authored by Felipe Leme's avatar Felipe Leme
Browse files

Moved Content Capture settings to DeviceConfig.

To test, manually played with 'adb shell device_config'. Examples:

$ adb shell device_config list content_capture
$ adb shell device_config delete content_capture enable_contentcapture
$ adb shell stop && adb shell start
$ adb shell service check content_capture
Service content_capture: not found

$ adb shell device_config put content_capture enable_contentcapture always
$ adb shell stop && adb shell start
$ adb shell service check content_capture
Service content_capture: found

Then ran CTS and FrameworkCoreTests below...

Test: atest CtsContentCaptureServiceTestCases \
      FrameworksCoreTests:android.provider.SettingsBackupTest#secureSettingsBackedUpOrBlacklisted
Test: m update-api

Bug: 121037717
Bug: 121153631

Change-Id: Ib93bf8181253228ccbdb3edbd84c5d0431c84eb4
parent d45ffc79
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -5749,6 +5749,10 @@ package android.provider {
    field public static final String PROPERTY_SERVICE_ENABLED = "service_enabled";
  }
  public static interface DeviceConfig.ContentCapture {
    field public static final String NAMESPACE = "content_capture";
  }
  public static interface DeviceConfig.FsiBoot {
    field public static final String NAMESPACE = "fsi_boot";
    field public static final String OOB_ENABLED = "oob_enabled";
+33 −0
Original line number Diff line number Diff line
@@ -69,6 +69,39 @@ public final class DeviceConfig {
    @SystemApi
    public static final String NAMESPACE_AUTOFILL = "autofill";

    /**
     * ContentCapture-related properties definitions.
     *
     * @hide
     */
    @SystemApi
    public interface ContentCapture {
        String NAMESPACE = "content_capture";

        /**
         * Property used by {@code com.android.server.SystemServer} on start to decide whether
         * the Content Capture service should be created or not.
         *
         * <p>Possible values are:
         *
         * <ul>
         *   <li>If set to {@code default}, it will only be set if the OEM provides and defines the
         *   service name by overlaying {@code config_defaultContentCaptureService} (this is the
         *   "default" mode)
         *   <li>If set to {@code always}, it will always be enabled, even when the resource is not
         *   overlaid (this is useful during development and to run the CTS tests on AOSP builds).
         *   <li>Otherwise, it's explicitly disabled (this could work as a "kill switch" so OEMs
         *   can disable it remotely in case of emergency by setting to something else (like
         *   {@code "false"}); notice that it's also disabled if the OEM doesn't explicitly set one
         *   of the values above).
         * </ul>
         *
         * @hide
         */
        // TODO(b/121153631): revert back to SERVICE_EXPLICITLY_ENABLED approach
        String PROPERTY_CONTENTCAPTURE_ENABLED = "enable_contentcapture";
    }

    /**
     * Namespace for content capture feature used by on-device machine intelligence
     * to provide suggestions in a privacy-safe manner.
+0 −23
Original line number Diff line number Diff line
@@ -13261,29 +13261,6 @@ public final class Settings {
        public static final String MAX_SOUND_TRIGGER_DETECTION_SERVICE_OPS_PER_DAY =
                "max_sound_trigger_detection_service_ops_per_day";
        /**
         * Property used by {@code com.android.server.SystemServer} on start to decide whether
         * the Content Capture service should be created or not.
         *
         * <p>Possible values are:
         *
         * <ul>
         *   <li>If set to {@code default}, it will only be set if the OEM provides and defines the
         *   service name by overlaying {@code config_defaultContentCaptureService} (this is the
         *   "default" mode)
         *   <li>If set to {@code always}, it will always be enabled, even when the resource is not
         *   overlaid (this is useful during development and to run the CTS tests on AOSP builds).
         *   <li>Otherwise, it's explicitly disabled (this could work as a "kill switch" so OEMs
         *   can disable it remotely in case of emergency by setting to something else (like
         *   {@code "false"}); notice that it's also disabled if the OEM doesn't explicitly set one
         *   of the values above).
         * </ul>
         *
         * @hide
         */
        public static final String CONTENT_CAPTURE_SERVICE_EXPLICITLY_ENABLED =
                "content_capture_service_explicitly_enabled";
        /** {@hide} */
        public static final String ISOLATED_STORAGE_LOCAL = "isolated_storage_local";
        /** {@hide} */
+1 −6
Original line number Diff line number Diff line
@@ -230,12 +230,7 @@ message GlobalSettingsProto {
    }
    optional Connectivity connectivity = 32;

    message ContentCapture {
      option (android.msg_privacy).dest = DEST_EXPLICIT;

      optional SettingProto service_explicitly_enabled = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
    }
    optional ContentCapture content_capture = 145;
    reserved 145; // Used to be ContentCapture, which moved to DeviceConfig

    optional SettingProto contact_metadata_sync_enabled = 33 [ (android.privacy).dest = DEST_AUTOMATIC ];
    optional SettingProto contacts_database_wal_enabled = 34 [ (android.privacy).dest = DEST_AUTOMATIC ];
+0 −1
Original line number Diff line number Diff line
@@ -192,7 +192,6 @@ public class SettingsBackupTest {
                    Settings.Global.CONNECTIVITY_METRICS_BUFFER_SIZE,
                    Settings.Global.CONNECTIVITY_SAMPLING_INTERVAL_IN_SECONDS,
                    Settings.Global.CONTACT_METADATA_SYNC_ENABLED,
                    Settings.Global.CONTENT_CAPTURE_SERVICE_EXPLICITLY_ENABLED,
                    Settings.Global.CONVERSATION_ACTIONS_UPDATE_CONTENT_URL,
                    Settings.Global.CONVERSATION_ACTIONS_UPDATE_METADATA_URL,
                    Settings.Global.CONTACTS_DATABASE_WAL_ENABLED,
Loading