Loading services/appfunctions/java/com/android/server/appfunctions/AppFunctionDumpHelper.java +11 −9 Original line number Diff line number Diff line Loading @@ -84,8 +84,8 @@ public final class AppFunctionDumpHelper { new FutureGlobalSearchSession(appSearchManager, Runnable::run)) { pw.println(); FutureSearchResults futureSearchResults = searchSession.search("", buildAppFunctionMetadataSearchSpec()).get(); try (FutureSearchResults futureSearchResults = searchSession.search("", buildAppFunctionMetadataSearchSpec()).get(); ) { List<SearchResult> searchResultsList; do { searchResultsList = futureSearchResults.getNextPage().get(); Loading @@ -93,6 +93,8 @@ public final class AppFunctionDumpHelper { dumpAppFunctionMetadata(pw, searchResult); } } while (!searchResultsList.isEmpty()); } } catch (Exception e) { pw.println("Failed to dump AppFunction state: " + e); } Loading services/appfunctions/java/com/android/server/appfunctions/FutureSearchResults.java +5 −1 Original line number Diff line number Diff line Loading @@ -24,11 +24,12 @@ import android.app.appsearch.SearchResults; import com.android.internal.infra.AndroidFuture; import java.io.Closeable; import java.io.IOException; import java.util.List; /** A future API wrapper of {@link android.app.appsearch.SearchResults}. */ public interface FutureSearchResults { public interface FutureSearchResults extends Closeable { /** Converts a failed app search result codes into an exception. */ @NonNull Loading @@ -52,4 +53,7 @@ public interface FutureSearchResults { * there are no more results. */ AndroidFuture<List<SearchResult>> getNextPage(); @Override void close(); } services/appfunctions/java/com/android/server/appfunctions/FutureSearchResultsImpl.java +5 −0 Original line number Diff line number Diff line Loading @@ -54,4 +54,9 @@ public class FutureSearchResultsImpl implements FutureSearchResults { } }); } @Override public void close() { mSearchResults.close(); } } services/appfunctions/java/com/android/server/appfunctions/MetadataSyncAdapter.java +17 −14 Original line number Diff line number Diff line Loading @@ -420,19 +420,21 @@ public class MetadataSyncAdapter { Objects.requireNonNull(propertyPackageName); ArrayMap<String, ArraySet<String>> packageToFunctionIds = new ArrayMap<>(); FutureSearchResults futureSearchResults = try (FutureSearchResults futureSearchResults = searchSession .search( "", buildMetadataSearchSpec( schemaType, propertyFunctionId, propertyPackageName)) .get(); .get(); ) { List<SearchResult> searchResultsList = futureSearchResults.getNextPage().get(); // TODO(b/357551503): This could be expensive if we have more functions while (!searchResultsList.isEmpty()) { for (SearchResult searchResult : searchResultsList) { String packageName = searchResult.getGenericDocument().getPropertyString(propertyPackageName); searchResult .getGenericDocument() .getPropertyString(propertyPackageName); String functionId = searchResult.getGenericDocument().getPropertyString(propertyFunctionId); packageToFunctionIds Loading @@ -441,6 +443,7 @@ public class MetadataSyncAdapter { } searchResultsList = futureSearchResults.getNextPage().get(); } } return packageToFunctionIds; } Loading services/tests/appfunctions/src/com/android/server/appfunctions/MetadataSyncAdapterTest.kt +4 −0 Original line number Diff line number Diff line Loading @@ -391,6 +391,10 @@ class MetadataSyncAdapterTest { return AndroidFuture.completedFuture(mutableListOf()) } } override fun close() { Log.d("FakeRuntimeMetadataSearchSession", "Closing session") } } return AndroidFuture.completedFuture(futureSearchResults) } Loading Loading
services/appfunctions/java/com/android/server/appfunctions/AppFunctionDumpHelper.java +11 −9 Original line number Diff line number Diff line Loading @@ -84,8 +84,8 @@ public final class AppFunctionDumpHelper { new FutureGlobalSearchSession(appSearchManager, Runnable::run)) { pw.println(); FutureSearchResults futureSearchResults = searchSession.search("", buildAppFunctionMetadataSearchSpec()).get(); try (FutureSearchResults futureSearchResults = searchSession.search("", buildAppFunctionMetadataSearchSpec()).get(); ) { List<SearchResult> searchResultsList; do { searchResultsList = futureSearchResults.getNextPage().get(); Loading @@ -93,6 +93,8 @@ public final class AppFunctionDumpHelper { dumpAppFunctionMetadata(pw, searchResult); } } while (!searchResultsList.isEmpty()); } } catch (Exception e) { pw.println("Failed to dump AppFunction state: " + e); } Loading
services/appfunctions/java/com/android/server/appfunctions/FutureSearchResults.java +5 −1 Original line number Diff line number Diff line Loading @@ -24,11 +24,12 @@ import android.app.appsearch.SearchResults; import com.android.internal.infra.AndroidFuture; import java.io.Closeable; import java.io.IOException; import java.util.List; /** A future API wrapper of {@link android.app.appsearch.SearchResults}. */ public interface FutureSearchResults { public interface FutureSearchResults extends Closeable { /** Converts a failed app search result codes into an exception. */ @NonNull Loading @@ -52,4 +53,7 @@ public interface FutureSearchResults { * there are no more results. */ AndroidFuture<List<SearchResult>> getNextPage(); @Override void close(); }
services/appfunctions/java/com/android/server/appfunctions/FutureSearchResultsImpl.java +5 −0 Original line number Diff line number Diff line Loading @@ -54,4 +54,9 @@ public class FutureSearchResultsImpl implements FutureSearchResults { } }); } @Override public void close() { mSearchResults.close(); } }
services/appfunctions/java/com/android/server/appfunctions/MetadataSyncAdapter.java +17 −14 Original line number Diff line number Diff line Loading @@ -420,19 +420,21 @@ public class MetadataSyncAdapter { Objects.requireNonNull(propertyPackageName); ArrayMap<String, ArraySet<String>> packageToFunctionIds = new ArrayMap<>(); FutureSearchResults futureSearchResults = try (FutureSearchResults futureSearchResults = searchSession .search( "", buildMetadataSearchSpec( schemaType, propertyFunctionId, propertyPackageName)) .get(); .get(); ) { List<SearchResult> searchResultsList = futureSearchResults.getNextPage().get(); // TODO(b/357551503): This could be expensive if we have more functions while (!searchResultsList.isEmpty()) { for (SearchResult searchResult : searchResultsList) { String packageName = searchResult.getGenericDocument().getPropertyString(propertyPackageName); searchResult .getGenericDocument() .getPropertyString(propertyPackageName); String functionId = searchResult.getGenericDocument().getPropertyString(propertyFunctionId); packageToFunctionIds Loading @@ -441,6 +443,7 @@ public class MetadataSyncAdapter { } searchResultsList = futureSearchResults.getNextPage().get(); } } return packageToFunctionIds; } Loading
services/tests/appfunctions/src/com/android/server/appfunctions/MetadataSyncAdapterTest.kt +4 −0 Original line number Diff line number Diff line Loading @@ -391,6 +391,10 @@ class MetadataSyncAdapterTest { return AndroidFuture.completedFuture(mutableListOf()) } } override fun close() { Log.d("FakeRuntimeMetadataSearchSession", "Closing session") } } return AndroidFuture.completedFuture(futureSearchResults) } Loading