Revert "Update Kotlin Metadata library to versin 0.9.0"

This reverts commit 519b6a2ec3d8abe919cc1454f562626bf0d27e65.

This has to wait until the Metadata library has been updated in
downstream repositories.

Change-Id: I761727bc7e79a7b430d993801e63341eb4dd411d
Bug: b/315252098
diff --git a/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt b/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
index effc693..fe9bd92 100644
--- a/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
+++ b/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
@@ -356,7 +356,7 @@
   const val javassist = "3.29.2-GA"
   const val junitVersion = "4.13-beta-2"
   const val kotlinVersion = "1.9.0"
-  const val kotlinMetadataVersion = "0.9.0"
+  const val kotlinMetadataVersion = "0.7.0"
   const val mockito = "2.10.0"
   const val smaliVersion = "3.0.3"
 }
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinClassMetadataReader.java b/src/main/java/com/android/tools/r8/kotlin/KotlinClassMetadataReader.java
index 7ade086..91d36c7 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinClassMetadataReader.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinClassMetadataReader.java
@@ -25,7 +25,7 @@
 import java.util.function.Consumer;
 import java.util.function.Supplier;
 import kotlin.Metadata;
-import kotlinx.metadata.jvm.JvmMetadataVersion;
+import kotlinx.metadata.InconsistentKotlinMetadataException;
 import kotlinx.metadata.jvm.KotlinClassMetadata;
 import kotlinx.metadata.jvm.KotlinClassMetadata.FileFacade;
 import kotlinx.metadata.jvm.KotlinClassMetadata.MultiFileClassFacade;
@@ -181,9 +181,9 @@
     Integer xi = extraInt == null ? null : (Integer) extraInt.value.getBoxedValue();
 
     try {
-      return KotlinClassMetadata.readStrict(
+      return KotlinClassMetadata.read(
           new KotlinMetadataAnnotationWrapper(k, mv, d1, d2, xs, pn, xi));
-    } catch (ClassCastException | IllegalArgumentException | MetadataError e) {
+    } catch (ClassCastException | InconsistentKotlinMetadataException | MetadataError e) {
       throw new KotlinMetadataException(e);
     }
   }
@@ -196,29 +196,15 @@
     return (Integer) kind.value.getBoxedValue();
   }
 
-  public static Metadata extractMetadataWithPossiblyUnsupportedMetadataVersion(
-      KotlinClassMetadata kMetadata) {
-    JvmMetadataVersion version = kMetadata.getVersion();
-    if (version.getMajor() == 1 && version.getMinor() < 4) {
-      // From version 0.8.0 the kotlin metadata library cannot write metadata below Kotlin version
-      // 1.4. The writer can be tricked by temporarily setting a high enough version.
-      kMetadata.setVersion(KotlinJvmMetadataVersionUtils.MIN_SUPPORTED_VERSION);
-      Metadata metadata = kMetadata.write();
-      kMetadata.setVersion(version);
-      return metadata;
-    }
-    return kMetadata.write();
-  }
-
   public static KotlinClassLevelInfo createKotlinInfo(
       Kotlin kotlin,
       DexClass clazz,
       KotlinClassMetadata kMetadata,
       AppView<?> appView,
       Consumer<DexEncodedMethod> keepByteCode) {
-    Metadata metadata = extractMetadataWithPossiblyUnsupportedMetadataVersion(kMetadata);
+    Metadata metadata = kMetadata.getAnnotationData$kotlinx_metadata_jvm();
     String packageName = metadata.pn();
-    int[] metadataVersion = KotlinJvmMetadataVersionUtils.toIntArray(kMetadata.getVersion());
+    int[] metadataVersion = metadata.mv();
     if (kMetadata instanceof KotlinClassMetadata.Class) {
       return KotlinClassInfo.create(
           (KotlinClassMetadata.Class) kMetadata,
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinJvmMetadataVersionUtils.java b/src/main/java/com/android/tools/r8/kotlin/KotlinJvmMetadataVersionUtils.java
deleted file mode 100644
index acf75d3..0000000
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinJvmMetadataVersionUtils.java
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-package com.android.tools.r8.kotlin;
-
-import kotlinx.metadata.jvm.JvmMetadataVersion;
-
-public class KotlinJvmMetadataVersionUtils {
-
-  public static JvmMetadataVersion MIN_SUPPORTED_VERSION = new JvmMetadataVersion(1, 4, 0);
-
-  public static int[] toIntArray(JvmMetadataVersion version) {
-    return new int[] {version.getMajor(), version.getMinor(), version.getPatch()};
-  }
-}
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataAnnotationWrapper.java b/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataAnnotationWrapper.java
index 149fec9..d34a84f 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataAnnotationWrapper.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataAnnotationWrapper.java
@@ -56,12 +56,10 @@
   }
 
   public static KotlinMetadataAnnotationWrapper wrap(KotlinClassMetadata classMetadata) {
-    Metadata annotationData =
-        KotlinClassMetadataReader.extractMetadataWithPossiblyUnsupportedMetadataVersion(
-            classMetadata);
+    Metadata annotationData = classMetadata.getAnnotationData$kotlinx_metadata_jvm();
     return new KotlinMetadataAnnotationWrapper(
         annotationData.k(),
-        KotlinJvmMetadataVersionUtils.toIntArray(classMetadata.getVersion()),
+        annotationData.mv(),
         annotationData.d1(),
         annotationData.d2(),
         annotationData.xs(),
diff --git a/src/main/java/com/android/tools/r8/naming/KotlinModuleSynthesizer.java b/src/main/java/com/android/tools/r8/naming/KotlinModuleSynthesizer.java
index 76c2314..9504a38 100644
--- a/src/main/java/com/android/tools/r8/naming/KotlinModuleSynthesizer.java
+++ b/src/main/java/com/android/tools/r8/naming/KotlinModuleSynthesizer.java
@@ -24,9 +24,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
-import kotlinx.metadata.jvm.JvmMetadataVersion;
-import kotlinx.metadata.jvm.KmModule;
-import kotlinx.metadata.jvm.KotlinModuleMetadata;
+import kotlinx.metadata.jvm.KotlinModuleMetadata.Writer;
 
 /**
  * The kotlin module synthesizer will scan through all file facades and multiclass files to figure
@@ -157,7 +155,7 @@
         }
       }
       Collections.sort(packagesSorted);
-      KmModule kmModule = new KmModule();
+      Writer writer = new Writer();
       for (String newPackage : packagesSorted) {
         // Calling other visitors than visitPackageParts are currently not supported.
         // https://github.com/JetBrains/kotlin/blob/master/libraries/kotlinx-metadata/
@@ -176,15 +174,14 @@
                             newMultiFiles.put(classPart, rewrittenName);
                           });
                 });
-        kmModule.visitPackageParts(
+        writer.visitPackageParts(
             newPackage,
             newFacades.getOrDefault(newPackage, Collections.emptyList()),
             newMultiFiles);
       }
       return Optional.of(
           DataEntryResource.fromBytes(
-              new KotlinModuleMetadata(kmModule, new JvmMetadataVersion(metadataVersion.get()))
-                  .write(),
+              writer.write(metadataVersion.get()),
               "META-INF/" + moduleName + ".kotlin_module",
               Origin.unknown()));
     }
diff --git a/third_party/dependencies.tar.gz.sha1 b/third_party/dependencies.tar.gz.sha1
index c77fcde..a916904 100644
--- a/third_party/dependencies.tar.gz.sha1
+++ b/third_party/dependencies.tar.gz.sha1
@@ -1 +1 @@
-b1520ee9ab7d1f9f6ce8f264d9b9629dc43222ac
\ No newline at end of file
+b359a23d49694aabe18bf8c47b2bf3e5b1b77322
\ No newline at end of file
diff --git a/tools/create_local_maven_with_dependencies.py b/tools/create_local_maven_with_dependencies.py
index 5ee21aa..c151352 100755
--- a/tools/create_local_maven_with_dependencies.py
+++ b/tools/create_local_maven_with_dependencies.py
@@ -24,7 +24,7 @@
 ASM_VERSION = '9.6' # When updating update tools/asmifier.py and Toolhelper as well.
 ESPRESSO_VERSION = '3.0.0'
 FASTUTIL_VERSION = '7.2.1'
-KOTLIN_METADATA_VERSION = '0.9.0'
+KOTLIN_METADATA_VERSION = '0.7.0'
 KOTLIN_VERSION = '1.9.20'
 GUAVA_VERSION = '32.1.2-jre'
 GSON_VERSION = '2.10.1'