Revert DEX container format for API level 36

Generating DEX container format can only be enabled with
system property com.android.tools.r8.dexContainerExperiment.

Bug: b/413085713
Bug: b/399482296
Change-Id: Ibbbb21a268d61f32a23c1a29dab905adec0c1c36
diff --git a/src/main/java/com/android/tools/r8/dex/FileWriter.java b/src/main/java/com/android/tools/r8/dex/FileWriter.java
index 478d724..bf40e33 100644
--- a/src/main/java/com/android/tools/r8/dex/FileWriter.java
+++ b/src/main/java/com/android/tools/r8/dex/FileWriter.java
@@ -837,14 +837,11 @@
         && options.getMinApiLevel().isGreaterThanOrEqualTo(AndroidApiLevel.R)) {
       return DexVersion.V40.getBytes();
     }
-    assert !layoutType.isContainer()
-        || options.getMinApiLevel().isGreaterThanOrEqualTo(InternalOptions.containerDexApiLevel());
+    assert !layoutType.isContainer() || options.canUseContainerDex();
     DexVersion dexVersion =
         layoutType.isContainer()
             ? DexVersion.getDexVersion(options.getMinApiLevel())
-            : options
-                    .getMinApiLevel()
-                    .isGreaterThanOrEqualTo(InternalOptions.containerDexApiLevel())
+            : options.canUseContainerDex()
                 ? DexVersion.V39
                 : DexVersion.getDexVersion(options.getMinApiLevel());
     return options.testing.forceDexVersionBytes != null
diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
index 579d7f2..21e75da 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -2750,7 +2750,7 @@
 
   public boolean canUseContainerDex() {
     assert isGeneratingDex();
-    return hasMinApi(containerDexApiLevel());
+    return false;
   }
 
   public boolean canUseJavaLangVarHandleStoreStoreFence(DexDefinitionSupplier definitions) {
diff --git a/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatBasicTest.java b/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatBasicTest.java
index 752bc8e..96621f9 100644
--- a/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatBasicTest.java
+++ b/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatBasicTest.java
@@ -33,7 +33,7 @@
   public static List<Object[]> data() {
     return buildParameters(
         getTestParameters().withNoneRuntime().withPartialCompilation().build(),
-        BooleanUtils.values());
+        BooleanUtils.falseValues());
   }
 
   private static Path inputA;
diff --git a/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatDexFilePerClassFileTest.java b/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatDexFilePerClassFileTest.java
index be16bea..fccee3d 100644
--- a/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatDexFilePerClassFileTest.java
+++ b/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatDexFilePerClassFileTest.java
@@ -28,7 +28,8 @@
 
   @Parameters(name = "{0}, useContainerDexApiLevel = {1}")
   public static List<Object[]> data() {
-    return buildParameters(getTestParameters().withNoneRuntime().build(), BooleanUtils.values());
+    return buildParameters(
+        getTestParameters().withNoneRuntime().build(), BooleanUtils.falseValues());
   }
 
   @Test
diff --git a/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatDexFilePerClassTest.java b/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatDexFilePerClassTest.java
index af4bf2d..941c42a 100644
--- a/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatDexFilePerClassTest.java
+++ b/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatDexFilePerClassTest.java
@@ -28,7 +28,8 @@
 
   @Parameters(name = "{0}, useContainerDexApiLevel = {1}")
   public static List<Object[]> data() {
-    return buildParameters(getTestParameters().withNoneRuntime().build(), BooleanUtils.values());
+    return buildParameters(
+        getTestParameters().withNoneRuntime().build(), BooleanUtils.falseValues());
   }
 
   @Test
diff --git a/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatEmptyTest.java b/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatEmptyTest.java
index 10925a9..02438ec 100644
--- a/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatEmptyTest.java
+++ b/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatEmptyTest.java
@@ -31,7 +31,7 @@
   public static List<Object[]> data() {
     return buildParameters(
         getTestParameters().withNoneRuntime().withPartialCompilation().build(),
-        BooleanUtils.values());
+        BooleanUtils.falseValues());
   }
 
   @Test
diff --git a/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatFeatureSplitTest.java b/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatFeatureSplitTest.java
index 729e16f..b2c40b3 100644
--- a/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatFeatureSplitTest.java
+++ b/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatFeatureSplitTest.java
@@ -29,7 +29,7 @@
   public static List<Object[]> data() {
     return buildParameters(
         getTestParameters().withNoneRuntime().withPartialCompilation().build(),
-        BooleanUtils.values());
+        BooleanUtils.falseValues());
   }
 
   private static Path inputBase;
diff --git a/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatGlobalSyntheticsTest.java b/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatGlobalSyntheticsTest.java
index fbaa954..ac7adf7 100644
--- a/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatGlobalSyntheticsTest.java
+++ b/src/test/java/com/android/tools/r8/dex/container/DexContainerFormatGlobalSyntheticsTest.java
@@ -39,7 +39,7 @@
   public static List<Object[]> data() {
     return buildParameters(
         getTestParameters().withNoneRuntime().withPartialCompilation().build(),
-        BooleanUtils.values());
+        BooleanUtils.falseValues());
   }
 
   private void configure(TestCompilerBuilder<?, ?, ?, ?, ?> builder) {
diff --git a/src/test/java/com/android/tools/r8/dex/container/LegacyResourceShrinkerTest.java b/src/test/java/com/android/tools/r8/dex/container/LegacyResourceShrinkerTest.java
index 74d519c..0f57998 100644
--- a/src/test/java/com/android/tools/r8/dex/container/LegacyResourceShrinkerTest.java
+++ b/src/test/java/com/android/tools/r8/dex/container/LegacyResourceShrinkerTest.java
@@ -11,7 +11,6 @@
 import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.utils.BooleanUtils;
 import com.android.tools.r8.utils.IntBox;
-import com.android.tools.r8.utils.InternalOptions;
 import java.nio.file.Path;
 import java.util.List;
 import org.junit.BeforeClass;
@@ -37,7 +36,7 @@
   public static List<Object[]> data() {
     return buildParameters(
         getTestParameters().withNoneRuntime().withPartialCompilation().build(),
-        BooleanUtils.values());
+        BooleanUtils.falseValues());
   }
 
   @BeforeClass
@@ -56,7 +55,7 @@
     Path outputBoth =
         testForD8(Backend.DEX, parameters)
             .addProgramFiles(inputA, inputB)
-            .setMinApi(InternalOptions.containerDexApiLevel())
+            .apply(b -> enableContainer(b, useContainerDexApiLevel))
             .compile()
             .writeToZip();
     validateSingleContainerDex(outputBoth);
diff --git a/src/test/java17/com/android/tools/r8/jdk17/records/dex/container/DexContainerFormatRecordTest.java b/src/test/java17/com/android/tools/r8/jdk17/records/dex/container/DexContainerFormatRecordTest.java
index f3015ce..fdc16fb 100644
--- a/src/test/java17/com/android/tools/r8/jdk17/records/dex/container/DexContainerFormatRecordTest.java
+++ b/src/test/java17/com/android/tools/r8/jdk17/records/dex/container/DexContainerFormatRecordTest.java
@@ -33,7 +33,7 @@
   public static List<Object[]> data() {
     return buildParameters(
         getTestParameters().withNoneRuntime().withPartialCompilation().build(),
-        BooleanUtils.values());
+        BooleanUtils.falseValues());
   }
 
   @Test