Expose `optimizePackage` and fix API lint errors.

Changes:
1. Rename `OptimizeOptions` to `OptimizeParams` (enforced by
   https://cs.android.com/android/platform/superproject/+/master:tools/metalava/src/main/java/com/android/tools/metalava/ApiLint.kt;l=2405;drc=26ec88f1d22ddd33c30aec46b1a5a50339e3c159)
2. Change the backing type of `PriorityClass` from `byte` to `int`.
3. Duplicate the keys of `PriorityClass` as `PriorityClassApi` to be
   exposed as API.
4. Use a bit field `OptimizeParams.mFlags` instead of booleans and
   change flag handling.

Bug: 229268202
Test: m update-api
Ignore-AOSP-First: ART Services
Change-Id: I12e497c46ec68f347b76b34920ba2f7405263aa9
diff --git a/libartservice/service/java/com/android/server/art/DexOptHelper.java b/libartservice/service/java/com/android/server/art/DexOptHelper.java
index f6df0c3..e73abcb 100644
--- a/libartservice/service/java/com/android/server/art/DexOptHelper.java
+++ b/libartservice/service/java/com/android/server/art/DexOptHelper.java
@@ -28,7 +28,8 @@
 import android.os.WorkSource;
 
 import com.android.internal.annotations.VisibleForTesting;
-import com.android.server.art.model.OptimizeOptions;
+import com.android.server.art.model.ArtFlags;
+import com.android.server.art.model.OptimizeParams;
 import com.android.server.art.model.OptimizeResult;
 import com.android.server.art.wrapper.AndroidPackageApi;
 import com.android.server.art.wrapper.PackageState;
@@ -67,16 +68,16 @@
 
     /**
      * DO NOT use this method directly. Use {@link
-     * ArtManagerLocal#optimizePackage(PackageDataSnapshot, String, OptimizeOptions)}.
+     * ArtManagerLocal#optimizePackage(PackageDataSnapshot, String, OptimizeParams)}.
      */
     @NonNull
     public OptimizeResult dexopt(@NonNull PackageDataSnapshot snapshot,
             @NonNull PackageState pkgState, @NonNull AndroidPackageApi pkg,
-            @NonNull OptimizeOptions options) throws RemoteException {
+            @NonNull OptimizeParams params) throws RemoteException {
         List<DexFileOptimizeResult> results = new ArrayList<>();
         Supplier<OptimizeResult> createResult = ()
-                -> new OptimizeResult(pkgState.getPackageName(), options.getCompilerFilter(),
-                        options.getReason(), results);
+                -> new OptimizeResult(pkgState.getPackageName(), params.getCompilerFilter(),
+                        params.getReason(), results);
 
         if (!canOptimizePackage(pkgState, pkg)) {
             return createResult.get();
@@ -96,17 +97,17 @@
                 wakeLock.acquire(WAKE_LOCK_TIMEOUT_MS);
             }
 
-            if (options.isForPrimaryDex()) {
-                results.addAll(mInjector.getPrimaryDexOptimizer().dexopt(pkgState, pkg, options));
+            if ((params.getFlags() & ArtFlags.FLAG_FOR_PRIMARY_DEX) != 0) {
+                results.addAll(mInjector.getPrimaryDexOptimizer().dexopt(pkgState, pkg, params));
             }
 
-            if (options.isForSecondaryDex()) {
+            if ((params.getFlags() & ArtFlags.FLAG_FOR_SECONDARY_DEX) != 0) {
                 // TODO(jiakaiz): Implement this.
                 throw new UnsupportedOperationException(
                         "Optimizing secondary dex'es is not implemented yet");
             }
 
-            if (options.getIncludesDependencies()) {
+            if ((params.getFlags() & ArtFlags.FLAG_SHOULD_INCLUDE_DEPENDENCIES) != 0) {
                 // TODO(jiakaiz): Implement this.
                 throw new UnsupportedOperationException(
                         "Optimizing dependencies is not implemented yet");