Change the OptimizeResult API to allow multiple packages.

The API has to handle the case where FLAG_SHOULD_INCLUDE_DEPENDENCIES is
set, in which case more than one package are optimized. Also, the class
can be reused as the result class for batch optimization (optimizing
multiple packages).

Bug: 245301593
Test: atest ArtServiceTests
Ignore-AOSP-First: ART Services.
Change-Id: I5c634e536c9dbdbaedf2f161cbde62467fb27e91
diff --git a/libartservice/service/java/com/android/server/art/DexOptHelper.java b/libartservice/service/java/com/android/server/art/DexOptHelper.java
index 6d9c85a..89bd8f4 100644
--- a/libartservice/service/java/com/android/server/art/DexOptHelper.java
+++ b/libartservice/service/java/com/android/server/art/DexOptHelper.java
@@ -17,6 +17,7 @@
 package com.android.server.art;
 
 import static com.android.server.art.model.OptimizeResult.DexFileOptimizeResult;
+import static com.android.server.art.model.OptimizeResult.PackageOptimizeResult;
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
@@ -76,8 +77,8 @@
             @NonNull OptimizeParams params) throws RemoteException {
         List<DexFileOptimizeResult> results = new ArrayList<>();
         Supplier<OptimizeResult> createResult = ()
-                -> new OptimizeResult(pkgState.getPackageName(), params.getCompilerFilter(),
-                        params.getReason(), results);
+                -> new OptimizeResult(params.getCompilerFilter(), params.getReason(),
+                        List.of(new PackageOptimizeResult(pkgState.getPackageName(), results)));
 
         if (!canOptimizePackage(pkgState, pkg)) {
             return createResult.get();