Update framework from jetpack.

Changes included:
*7535e73: Populate the flags for IcingSearchEngineOptions.

Bug: 193919210
Test: presubmit
Change-Id: Iee220d2d4c10c7da230b19c605aa5cf5817f0ac8
diff --git a/service/java/com/android/server/appsearch/FrameworkIcingOptionsConfig.java b/service/java/com/android/server/appsearch/FrameworkIcingOptionsConfig.java
index 5ea9a04..fec5688 100644
--- a/service/java/com/android/server/appsearch/FrameworkIcingOptionsConfig.java
+++ b/service/java/com/android/server/appsearch/FrameworkIcingOptionsConfig.java
@@ -35,6 +35,9 @@
             "icing_optimize_rebuild_index_threshold";
     static final String KEY_ICING_COMPRESSION_LEVEL = "icing_compression_level";
     static final String KEY_ICING_USE_READ_ONLY_SEARCH = "icing_use_read_only_search";
+    static final String KEY_ICING_USE_PRE_MAPPING_WITH_FILE_BACKED_VECTOR =
+            "icing_use_pre_mapping_with_file_backed_vector";
+    static final String KEY_ICING_USE_PERSISTENT_HASHMAP = "icing_use_persistent_hashmap";
 
     @Override
     public int getMaxTokenLength() {
@@ -79,4 +82,17 @@
         return DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_APPSEARCH,
                 KEY_ICING_USE_READ_ONLY_SEARCH, true);
     }
+
+    @Override
+    public boolean getUsePreMappingWithFileBackedVector() {
+        return DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_APPSEARCH,
+                KEY_ICING_USE_PRE_MAPPING_WITH_FILE_BACKED_VECTOR,
+                DEFAULT_USE_PREMAPPING_WITH_FILE_BACKED_VECTOR);
+    }
+
+    @Override
+    public boolean getUsePersistentHashMap() {
+        return DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_APPSEARCH,
+                KEY_ICING_USE_PERSISTENT_HASHMAP, DEFAULT_USE_PERSISTENT_HASH_MAP);
+    }
 }
diff --git a/service/java/com/android/server/appsearch/external/localstorage/AppSearchImpl.java b/service/java/com/android/server/appsearch/external/localstorage/AppSearchImpl.java
index d05fc01..8a792dd 100644
--- a/service/java/com/android/server/appsearch/external/localstorage/AppSearchImpl.java
+++ b/service/java/com/android/server/appsearch/external/localstorage/AppSearchImpl.java
@@ -318,6 +318,9 @@
                             .setCompressionLevel(icingOptionsConfig.getCompressionLevel())
                             .setAllowCircularSchemaDefinitions(
                                     icingOptionsConfig.getAllowCircularSchemaDefinitions())
+                            .setPreMappingFbv(
+                                    icingOptionsConfig.getUsePreMappingWithFileBackedVector())
+                            .setUsePersistentHashMap(icingOptionsConfig.getUsePersistentHashMap())
                             .build();
             LogUtil.piiTrace(TAG, "Constructing IcingSearchEngine, request", options);
             mIcingSearchEngineLocked = new IcingSearchEngine(options);
diff --git a/service/java/com/android/server/appsearch/external/localstorage/IcingOptionsConfig.java b/service/java/com/android/server/appsearch/external/localstorage/IcingOptionsConfig.java
index 21906b4..cf371f9 100644
--- a/service/java/com/android/server/appsearch/external/localstorage/IcingOptionsConfig.java
+++ b/service/java/com/android/server/appsearch/external/localstorage/IcingOptionsConfig.java
@@ -40,6 +40,10 @@
      */
     int DEFAULT_COMPRESSION_LEVEL = 3;
 
+    boolean DEFAULT_USE_PREMAPPING_WITH_FILE_BACKED_VECTOR = false;
+
+    boolean DEFAULT_USE_PERSISTENT_HASH_MAP = false;
+
     /**
      * The maximum allowable token length. All tokens in excess of this size will be truncated to
      * max_token_length before being indexed.
@@ -109,4 +113,21 @@
      * around code paths that write changes to Icing during Search.
      */
     boolean getUseReadOnlySearch();
+
+    /**
+     * Flag for {@link com.google.android.icing.proto.IcingSearchEngineOptions}.
+     *
+     * <p>Whether or not to pre-map the potential memory region used by the PersistentHashMap. This
+     * will avoid the need to re-map the mmapping used by PersistentHashMap whenever the underlying
+     * storage grows.
+     */
+    boolean getUsePreMappingWithFileBackedVector();
+
+    /**
+     * Flag for {@link com.google.android.icing.proto.IcingSearchEngineOptions}.
+     *
+     * <p>Whether or not to use the PersistentHashMap in the QualifiedIdTypeJoinableIndex. If false,
+     * we will use the old IcingDynamicTrie to store key value pairs.
+     */
+    boolean getUsePersistentHashMap();
 }
diff --git a/synced_jetpack_sha.txt b/synced_jetpack_sha.txt
index 00c2b37..7000680 100644
--- a/synced_jetpack_sha.txt
+++ b/synced_jetpack_sha.txt
@@ -1 +1 @@
-91aa5fa159f29a200ce8e1c991bb3b43fcd9d16e
+7535e738afe8f0c0d320e68aa6ac739171c0a468
diff --git a/testing/mockingservicestests/src/com/android/server/appsearch/FrameworkIcingOptionsConfigTest.java b/testing/mockingservicestests/src/com/android/server/appsearch/FrameworkIcingOptionsConfigTest.java
index b2cd34a..d2fcde2 100644
--- a/testing/mockingservicestests/src/com/android/server/appsearch/FrameworkIcingOptionsConfigTest.java
+++ b/testing/mockingservicestests/src/com/android/server/appsearch/FrameworkIcingOptionsConfigTest.java
@@ -46,6 +46,10 @@
         assertThat(icingOptionsConfig.getCompressionLevel()).isEqualTo(
                 IcingOptionsConfig.DEFAULT_COMPRESSION_LEVEL);
         assertThat(icingOptionsConfig.getUseReadOnlySearch()).isEqualTo(true);
+        assertThat(icingOptionsConfig.getUsePreMappingWithFileBackedVector())
+                .isEqualTo(IcingOptionsConfig.DEFAULT_USE_PREMAPPING_WITH_FILE_BACKED_VECTOR);
+        assertThat(icingOptionsConfig.getUsePersistentHashMap())
+                .isEqualTo(IcingOptionsConfig.DEFAULT_USE_PERSISTENT_HASH_MAP);
     }
 
     @Test
@@ -74,6 +78,12 @@
         DeviceConfig.setProperty(DeviceConfig.NAMESPACE_APPSEARCH,
                 FrameworkIcingOptionsConfig.KEY_ICING_USE_READ_ONLY_SEARCH,
                 Boolean.toString(false), false);
+        DeviceConfig.setProperty(DeviceConfig.NAMESPACE_APPSEARCH,
+                    FrameworkIcingOptionsConfig.KEY_ICING_USE_PRE_MAPPING_WITH_FILE_BACKED_VECTOR,
+                Boolean.toString(false), false);
+        DeviceConfig.setProperty(DeviceConfig.NAMESPACE_APPSEARCH,
+                FrameworkIcingOptionsConfig.KEY_ICING_USE_PERSISTENT_HASHMAP,
+                Boolean.toString(false), false);
 
 
         FrameworkIcingOptionsConfig icingOptionsConfig = new FrameworkIcingOptionsConfig();
@@ -89,5 +99,7 @@
         assertThat(icingOptionsConfig.getCompressionLevel()).isEqualTo(
                 IcingOptionsConfig.DEFAULT_COMPRESSION_LEVEL + 1);
         assertThat(icingOptionsConfig.getUseReadOnlySearch()).isEqualTo(false);
+        assertThat(icingOptionsConfig.getUsePreMappingWithFileBackedVector()).isEqualTo(false);
+        assertThat(icingOptionsConfig.getUsePersistentHashMap()).isEqualTo(false);
     }
 }
diff --git a/testing/testutils/src/android/app/appsearch/testutil/external/DefaultIcingOptionsConfig.java b/testing/testutils/src/android/app/appsearch/testutil/external/DefaultIcingOptionsConfig.java
index dcf4242..70a9ea3 100644
--- a/testing/testutils/src/android/app/appsearch/testutil/external/DefaultIcingOptionsConfig.java
+++ b/testing/testutils/src/android/app/appsearch/testutil/external/DefaultIcingOptionsConfig.java
@@ -56,4 +56,14 @@
     public boolean getUseReadOnlySearch() {
         return true;
     }
+
+    @Override
+    public boolean getUsePreMappingWithFileBackedVector() {
+        return true;
+    }
+
+    @Override
+    public boolean getUsePersistentHashMap() {
+        return true;
+    }
 }