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/javatests/com/android/server/art/DexOptHelperTest.java b/libartservice/service/javatests/com/android/server/art/DexOptHelperTest.java
index e68f21b..1b9c852 100644
--- a/libartservice/service/javatests/com/android/server/art/DexOptHelperTest.java
+++ b/libartservice/service/javatests/com/android/server/art/DexOptHelperTest.java
@@ -36,7 +36,7 @@
 
 import androidx.test.filters.SmallTest;
 
-import com.android.server.art.model.OptimizeOptions;
+import com.android.server.art.model.OptimizeParams;
 import com.android.server.art.model.OptimizeResult;
 import com.android.server.art.testing.OnSuccessRule;
 import com.android.server.art.wrapper.AndroidPackageApi;
@@ -71,8 +71,8 @@
         verifyNoMoreInteractions(mPrimaryDexOptimizer);
     });
 
-    private final OptimizeOptions mOptions =
-            new OptimizeOptions.Builder("install").setCompilerFilter("speed-profile").build();
+    private final OptimizeParams mParams =
+            new OptimizeParams.Builder("install").setCompilerFilter("speed-profile").build();
     private final List<DexFileOptimizeResult> mPrimaryResults =
             List.of(new DexFileOptimizeResult("/data/app/foo/base.apk", "arm64", "verify",
                             OptimizeResult.OPTIMIZE_PERFORMED),
@@ -95,11 +95,11 @@
 
     @Test
     public void testDexopt() throws Exception {
-        when(mPrimaryDexOptimizer.dexopt(same(mPkgState), same(mPkg), same(mOptions)))
+        when(mPrimaryDexOptimizer.dexopt(same(mPkgState), same(mPkg), same(mParams)))
                 .thenReturn(mPrimaryResults);
 
         OptimizeResult result =
-                mDexOptHelper.dexopt(mock(PackageDataSnapshot.class), mPkgState, mPkg, mOptions);
+                mDexOptHelper.dexopt(mock(PackageDataSnapshot.class), mPkgState, mPkg, mParams);
 
         assertThat(result.getPackageName()).isEqualTo(PKG_NAME);
         assertThat(result.getRequestedCompilerFilter()).isEqualTo("speed-profile");
@@ -113,7 +113,7 @@
         when(mPkg.isHasCode()).thenReturn(false);
 
         OptimizeResult result =
-                mDexOptHelper.dexopt(mock(PackageDataSnapshot.class), mPkgState, mPkg, mOptions);
+                mDexOptHelper.dexopt(mock(PackageDataSnapshot.class), mPkgState, mPkg, mParams);
 
         assertThat(result.getFinalStatus()).isEqualTo(OptimizeResult.OPTIMIZE_SKIPPED);
         assertThat(result.getDexFileOptimizeResults()).isEmpty();
@@ -125,11 +125,11 @@
         lenient().when(mAhm.isHibernatingGlobally(PKG_NAME)).thenReturn(false);
         lenient().when(mAhm.isOatArtifactDeletionEnabled()).thenReturn(true);
 
-        when(mPrimaryDexOptimizer.dexopt(same(mPkgState), same(mPkg), same(mOptions)))
+        when(mPrimaryDexOptimizer.dexopt(same(mPkgState), same(mPkg), same(mParams)))
                 .thenReturn(mPrimaryResults);
 
         OptimizeResult result =
-                mDexOptHelper.dexopt(mock(PackageDataSnapshot.class), mPkgState, mPkg, mOptions);
+                mDexOptHelper.dexopt(mock(PackageDataSnapshot.class), mPkgState, mPkg, mParams);
 
         assertThat(result.getDexFileOptimizeResults()).containsExactlyElementsIn(mPrimaryResults);
     }
@@ -141,7 +141,7 @@
         lenient().when(mAhm.isOatArtifactDeletionEnabled()).thenReturn(true);
 
         OptimizeResult result =
-                mDexOptHelper.dexopt(mock(PackageDataSnapshot.class), mPkgState, mPkg, mOptions);
+                mDexOptHelper.dexopt(mock(PackageDataSnapshot.class), mPkgState, mPkg, mParams);
 
         assertThat(result.getFinalStatus()).isEqualTo(OptimizeResult.OPTIMIZE_SKIPPED);
         assertThat(result.getDexFileOptimizeResults()).isEmpty();
@@ -153,11 +153,11 @@
         lenient().when(mAhm.isHibernatingGlobally(PKG_NAME)).thenReturn(true);
         lenient().when(mAhm.isOatArtifactDeletionEnabled()).thenReturn(false);
 
-        when(mPrimaryDexOptimizer.dexopt(same(mPkgState), same(mPkg), same(mOptions)))
+        when(mPrimaryDexOptimizer.dexopt(same(mPkgState), same(mPkg), same(mParams)))
                 .thenReturn(mPrimaryResults);
 
         OptimizeResult result =
-                mDexOptHelper.dexopt(mock(PackageDataSnapshot.class), mPkgState, mPkg, mOptions);
+                mDexOptHelper.dexopt(mock(PackageDataSnapshot.class), mPkgState, mPkg, mParams);
 
         assertThat(result.getDexFileOptimizeResults()).containsExactlyElementsIn(mPrimaryResults);
     }
@@ -169,11 +169,11 @@
         when(mPowerManager.newWakeLock(eq(PowerManager.PARTIAL_WAKE_LOCK), any()))
                 .thenReturn(wakeLock);
 
-        when(mPrimaryDexOptimizer.dexopt(same(mPkgState), same(mPkg), same(mOptions)))
+        when(mPrimaryDexOptimizer.dexopt(same(mPkgState), same(mPkg), same(mParams)))
                 .thenReturn(mPrimaryResults);
 
         OptimizeResult result =
-                mDexOptHelper.dexopt(mock(PackageDataSnapshot.class), mPkgState, mPkg, mOptions);
+                mDexOptHelper.dexopt(mock(PackageDataSnapshot.class), mPkgState, mPkg, mParams);
 
         InOrder inOrder = inOrder(mPrimaryDexOptimizer, wakeLock);
         inOrder.verify(wakeLock).acquire(anyLong());
@@ -188,12 +188,12 @@
         when(mPowerManager.newWakeLock(eq(PowerManager.PARTIAL_WAKE_LOCK), any()))
                 .thenReturn(wakeLock);
 
-        when(mPrimaryDexOptimizer.dexopt(same(mPkgState), same(mPkg), same(mOptions)))
+        when(mPrimaryDexOptimizer.dexopt(same(mPkgState), same(mPkg), same(mParams)))
                 .thenThrow(IllegalStateException.class);
 
         try {
-            OptimizeResult result = mDexOptHelper.dexopt(
-                    mock(PackageDataSnapshot.class), mPkgState, mPkg, mOptions);
+            OptimizeResult result =
+                    mDexOptHelper.dexopt(mock(PackageDataSnapshot.class), mPkgState, mPkg, mParams);
         } catch (Exception e) {
         }