Merge "Delete the unused HotwordTraining{Data, Audio}." into main
diff --git a/core/api/system-current.txt b/core/api/system-current.txt
index af5ea21..77a66ce 100644
--- a/core/api/system-current.txt
+++ b/core/api/system-current.txt
@@ -13390,43 +13390,6 @@
     method @NonNull public android.service.voice.HotwordRejectedResult.Builder setConfidenceLevel(int);
   }
 
-  @FlaggedApi("android.service.voice.flags.allow_training_data_egress_from_hds") public final class HotwordTrainingAudio implements android.os.Parcelable {
-    method public int describeContents();
-    method @NonNull public android.media.AudioFormat getAudioFormat();
-    method @NonNull public int getAudioType();
-    method @NonNull public byte[] getHotwordAudio();
-    method public int getHotwordOffsetMillis();
-    method public void writeToParcel(@NonNull android.os.Parcel, int);
-    field @NonNull public static final android.os.Parcelable.Creator<android.service.voice.HotwordTrainingAudio> CREATOR;
-    field public static final int HOTWORD_OFFSET_UNSET = -1; // 0xffffffff
-  }
-
-  @FlaggedApi("android.service.voice.flags.allow_training_data_egress_from_hds") public static final class HotwordTrainingAudio.Builder {
-    ctor public HotwordTrainingAudio.Builder(@NonNull byte[], @NonNull android.media.AudioFormat);
-    method @NonNull public android.service.voice.HotwordTrainingAudio build();
-    method @NonNull public android.service.voice.HotwordTrainingAudio.Builder setAudioFormat(@NonNull android.media.AudioFormat);
-    method @NonNull public android.service.voice.HotwordTrainingAudio.Builder setAudioType(@NonNull int);
-    method @NonNull public android.service.voice.HotwordTrainingAudio.Builder setHotwordAudio(@NonNull byte[]);
-    method @NonNull public android.service.voice.HotwordTrainingAudio.Builder setHotwordOffsetMillis(int);
-  }
-
-  @FlaggedApi("android.service.voice.flags.allow_training_data_egress_from_hds") public final class HotwordTrainingData implements android.os.Parcelable {
-    method public int describeContents();
-    method public static int getMaxTrainingDataBytes();
-    method public int getTimeoutStage();
-    method @NonNull public java.util.List<android.service.voice.HotwordTrainingAudio> getTrainingAudioList();
-    method public void writeToParcel(@NonNull android.os.Parcel, int);
-    field @NonNull public static final android.os.Parcelable.Creator<android.service.voice.HotwordTrainingData> CREATOR;
-  }
-
-  @FlaggedApi("android.service.voice.flags.allow_training_data_egress_from_hds") public static final class HotwordTrainingData.Builder {
-    ctor public HotwordTrainingData.Builder();
-    method @NonNull public android.service.voice.HotwordTrainingData.Builder addTrainingAudio(@NonNull android.service.voice.HotwordTrainingAudio);
-    method @NonNull public android.service.voice.HotwordTrainingData build();
-    method @NonNull public android.service.voice.HotwordTrainingData.Builder setTimeoutStage(int);
-    method @NonNull public android.service.voice.HotwordTrainingData.Builder setTrainingAudioList(@NonNull java.util.List<android.service.voice.HotwordTrainingAudio>);
-  }
-
   public interface SandboxedDetectionInitializer {
     method public static int getMaxCustomInitializationStatus();
     method public void onUpdateState(@Nullable android.os.PersistableBundle, @Nullable android.os.SharedMemory, long, @Nullable java.util.function.IntConsumer);
diff --git a/core/java/android/service/voice/HotwordTrainingAudio.aidl b/core/java/android/service/voice/HotwordTrainingAudio.aidl
deleted file mode 100644
index 4dd2289..0000000
--- a/core/java/android/service/voice/HotwordTrainingAudio.aidl
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.service.voice;
-
-parcelable HotwordTrainingAudio;
\ No newline at end of file
diff --git a/core/java/android/service/voice/HotwordTrainingAudio.java b/core/java/android/service/voice/HotwordTrainingAudio.java
deleted file mode 100644
index 916fa36b..0000000
--- a/core/java/android/service/voice/HotwordTrainingAudio.java
+++ /dev/null
@@ -1,388 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.service.voice;
-
-import android.annotation.FlaggedApi;
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.annotation.SuppressLint;
-import android.annotation.SystemApi;
-import android.media.AudioFormat;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.service.voice.flags.Flags;
-
-import com.android.internal.util.DataClass;
-
-import java.util.Objects;
-
-/**
- * Represents audio supporting hotword model training.
- *
- * @hide
- */
-@FlaggedApi(Flags.FLAG_ALLOW_TRAINING_DATA_EGRESS_FROM_HDS)
-@DataClass(
-        genConstructor = false,
-        genBuilder = true,
-        genEqualsHashCode = true,
-        genHiddenConstDefs = true,
-        genParcelable = true,
-        genToString = true
-)
-@SystemApi
-public final class HotwordTrainingAudio implements Parcelable {
-    /** Represents unset value for the hotword offset. */
-    public static final int HOTWORD_OFFSET_UNSET = -1;
-
-    /**
-     * Buffer of hotword audio data for training models. The data format is expected to match
-     * {@link #getAudioFormat()}.
-     */
-    @NonNull
-    private final byte[] mHotwordAudio;
-
-    private String hotwordAudioToString() {
-        return "length=" + mHotwordAudio.length;
-    }
-
-    /**
-     * The {@link AudioFormat} of the {@link HotwordTrainingAudio#mHotwordAudio}.
-     */
-    @NonNull
-    private final AudioFormat mAudioFormat;
-
-    /**
-     * App-defined identifier to distinguish hotword training audio instances.
-     * <p> Returns -1 if unset. */
-    @NonNull
-    private final int mAudioType;
-
-    private static int defaultAudioType() {
-        return -1;
-    }
-
-    /**
-     * App-defined offset in milliseconds relative to start of
-     * {@link HotwordTrainingAudio#mHotwordAudio}. Default value is
-     * {@link HotwordTrainingAudio#HOTWORD_OFFSET_UNSET}.
-     */
-    private int mHotwordOffsetMillis = HOTWORD_OFFSET_UNSET;
-
-    @DataClass.Suppress("setHotwordAudio")
-    abstract static class BaseBuilder {
-
-        /**
-         * Buffer of hotword audio data for training models. The data format is expected to match
-         * {@link #getAudioFormat()}.
-         */
-        @SuppressLint("UnflaggedApi")
-        public @NonNull HotwordTrainingAudio.Builder setHotwordAudio(@NonNull byte[] value) {
-            Objects.requireNonNull(value, "value should not be null");
-            final HotwordTrainingAudio.Builder builder = (HotwordTrainingAudio.Builder) this;
-            // If the code gen flag in build() is changed, we must update the flag e.g. 0x1 here.
-            builder.mBuilderFieldsSet |= 0x1;
-            builder.mHotwordAudio = value;
-            return builder;
-        }
-    }
-
-
-
-    // Code below generated by codegen v1.0.23.
-    //
-    // DO NOT MODIFY!
-    // CHECKSTYLE:OFF Generated code
-    //
-    // To regenerate run:
-    // $ codegen $ANDROID_BUILD_TOP/frameworks/base/core/java/android/service/voice/HotwordTrainingAudio.java
-    //
-    // To exclude the generated code from IntelliJ auto-formatting enable (one-time):
-    //   Settings > Editor > Code Style > Formatter Control
-    //@formatter:off
-
-
-    @DataClass.Generated.Member
-    /* package-private */ HotwordTrainingAudio(
-            @NonNull byte[] hotwordAudio,
-            @NonNull AudioFormat audioFormat,
-            @NonNull int audioType,
-            int hotwordOffsetMillis) {
-        this.mHotwordAudio = hotwordAudio;
-        com.android.internal.util.AnnotationValidations.validate(
-                NonNull.class, null, mHotwordAudio);
-        this.mAudioFormat = audioFormat;
-        com.android.internal.util.AnnotationValidations.validate(
-                NonNull.class, null, mAudioFormat);
-        this.mAudioType = audioType;
-        com.android.internal.util.AnnotationValidations.validate(
-                NonNull.class, null, mAudioType);
-        this.mHotwordOffsetMillis = hotwordOffsetMillis;
-
-        // onConstructed(); // You can define this method to get a callback
-    }
-
-    /**
-     * Buffer of hotword audio data for training models. The data format is expected to match
-     * {@link #getAudioFormat()}.
-     */
-    @DataClass.Generated.Member
-    public @NonNull byte[] getHotwordAudio() {
-        return mHotwordAudio;
-    }
-
-    /**
-     * The {@link AudioFormat} of the {@link HotwordTrainingAudio#mHotwordAudio}.
-     */
-    @DataClass.Generated.Member
-    public @NonNull AudioFormat getAudioFormat() {
-        return mAudioFormat;
-    }
-
-    /**
-     * App-defined identifier to distinguish hotword training audio instances.
-     * <p> Returns -1 if unset.
-     */
-    @DataClass.Generated.Member
-    public @NonNull int getAudioType() {
-        return mAudioType;
-    }
-
-    /**
-     * App-defined offset in milliseconds relative to start of
-     * {@link HotwordTrainingAudio#mHotwordAudio}. Default value is
-     * {@link HotwordTrainingAudio#HOTWORD_OFFSET_UNSET}.
-     */
-    @DataClass.Generated.Member
-    public int getHotwordOffsetMillis() {
-        return mHotwordOffsetMillis;
-    }
-
-    @Override
-    @DataClass.Generated.Member
-    public String toString() {
-        // You can override field toString logic by defining methods like:
-        // String fieldNameToString() { ... }
-
-        return "HotwordTrainingAudio { " +
-                "hotwordAudio = " + hotwordAudioToString() + ", " +
-                "audioFormat = " + mAudioFormat + ", " +
-                "audioType = " + mAudioType + ", " +
-                "hotwordOffsetMillis = " + mHotwordOffsetMillis +
-        " }";
-    }
-
-    @Override
-    @DataClass.Generated.Member
-    public boolean equals(@Nullable Object o) {
-        // You can override field equality logic by defining either of the methods like:
-        // boolean fieldNameEquals(HotwordTrainingAudio other) { ... }
-        // boolean fieldNameEquals(FieldType otherValue) { ... }
-
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-        @SuppressWarnings("unchecked")
-        HotwordTrainingAudio that = (HotwordTrainingAudio) o;
-        //noinspection PointlessBooleanExpression
-        return true
-                && java.util.Arrays.equals(mHotwordAudio, that.mHotwordAudio)
-                && Objects.equals(mAudioFormat, that.mAudioFormat)
-                && mAudioType == that.mAudioType
-                && mHotwordOffsetMillis == that.mHotwordOffsetMillis;
-    }
-
-    @Override
-    @DataClass.Generated.Member
-    public int hashCode() {
-        // You can override field hashCode logic by defining methods like:
-        // int fieldNameHashCode() { ... }
-
-        int _hash = 1;
-        _hash = 31 * _hash + java.util.Arrays.hashCode(mHotwordAudio);
-        _hash = 31 * _hash + Objects.hashCode(mAudioFormat);
-        _hash = 31 * _hash + mAudioType;
-        _hash = 31 * _hash + mHotwordOffsetMillis;
-        return _hash;
-    }
-
-    @Override
-    @DataClass.Generated.Member
-    public void writeToParcel(@NonNull Parcel dest, int flags) {
-        // You can override field parcelling by defining methods like:
-        // void parcelFieldName(Parcel dest, int flags) { ... }
-
-        dest.writeByteArray(mHotwordAudio);
-        dest.writeTypedObject(mAudioFormat, flags);
-        dest.writeInt(mAudioType);
-        dest.writeInt(mHotwordOffsetMillis);
-    }
-
-    @Override
-    @DataClass.Generated.Member
-    public int describeContents() { return 0; }
-
-    /** @hide */
-    @SuppressWarnings({"unchecked", "RedundantCast"})
-    @DataClass.Generated.Member
-    /* package-private */ HotwordTrainingAudio(@NonNull Parcel in) {
-        // You can override field unparcelling by defining methods like:
-        // static FieldType unparcelFieldName(Parcel in) { ... }
-
-        byte[] hotwordAudio = in.createByteArray();
-        AudioFormat audioFormat = (AudioFormat) in.readTypedObject(AudioFormat.CREATOR);
-        int audioType = in.readInt();
-        int hotwordOffsetMillis = in.readInt();
-
-        this.mHotwordAudio = hotwordAudio;
-        com.android.internal.util.AnnotationValidations.validate(
-                NonNull.class, null, mHotwordAudio);
-        this.mAudioFormat = audioFormat;
-        com.android.internal.util.AnnotationValidations.validate(
-                NonNull.class, null, mAudioFormat);
-        this.mAudioType = audioType;
-        com.android.internal.util.AnnotationValidations.validate(
-                NonNull.class, null, mAudioType);
-        this.mHotwordOffsetMillis = hotwordOffsetMillis;
-
-        // onConstructed(); // You can define this method to get a callback
-    }
-
-    @DataClass.Generated.Member
-    public static final @NonNull Parcelable.Creator<HotwordTrainingAudio> CREATOR
-            = new Parcelable.Creator<HotwordTrainingAudio>() {
-        @Override
-        public HotwordTrainingAudio[] newArray(int size) {
-            return new HotwordTrainingAudio[size];
-        }
-
-        @Override
-        public HotwordTrainingAudio createFromParcel(@NonNull Parcel in) {
-            return new HotwordTrainingAudio(in);
-        }
-    };
-
-    /**
-     * A builder for {@link HotwordTrainingAudio}
-     */
-    @FlaggedApi(Flags.FLAG_ALLOW_TRAINING_DATA_EGRESS_FROM_HDS)
-    @SuppressWarnings("WeakerAccess")
-    @DataClass.Generated.Member
-    public static final class Builder extends BaseBuilder {
-
-        private @NonNull byte[] mHotwordAudio;
-        private @NonNull AudioFormat mAudioFormat;
-        private @NonNull int mAudioType;
-        private int mHotwordOffsetMillis;
-
-        private long mBuilderFieldsSet = 0L;
-
-        /**
-         * Creates a new Builder.
-         *
-         * @param hotwordAudio
-         *   Buffer of hotword audio data for training models. The data format is expected to match
-         *   {@link #getAudioFormat()}.
-         * @param audioFormat
-         *   The {@link AudioFormat} of the {@link HotwordTrainingAudio#mHotwordAudio}.
-         */
-        public Builder(
-                @NonNull byte[] hotwordAudio,
-                @NonNull AudioFormat audioFormat) {
-            mHotwordAudio = hotwordAudio;
-            com.android.internal.util.AnnotationValidations.validate(
-                    NonNull.class, null, mHotwordAudio);
-            mAudioFormat = audioFormat;
-            com.android.internal.util.AnnotationValidations.validate(
-                    NonNull.class, null, mAudioFormat);
-        }
-
-        /**
-         * The {@link AudioFormat} of the {@link HotwordTrainingAudio#mHotwordAudio}.
-         */
-        @DataClass.Generated.Member
-        public @NonNull Builder setAudioFormat(@NonNull AudioFormat value) {
-            checkNotUsed();
-            mBuilderFieldsSet |= 0x2;
-            mAudioFormat = value;
-            return this;
-        }
-
-        /**
-         * App-defined identifier to distinguish hotword training audio instances.
-         * <p> Returns -1 if unset.
-         */
-        @DataClass.Generated.Member
-        public @NonNull Builder setAudioType(@NonNull int value) {
-            checkNotUsed();
-            mBuilderFieldsSet |= 0x4;
-            mAudioType = value;
-            return this;
-        }
-
-        /**
-         * App-defined offset in milliseconds relative to start of
-         * {@link HotwordTrainingAudio#mHotwordAudio}. Default value is
-         * {@link HotwordTrainingAudio#HOTWORD_OFFSET_UNSET}.
-         */
-        @DataClass.Generated.Member
-        public @NonNull Builder setHotwordOffsetMillis(int value) {
-            checkNotUsed();
-            mBuilderFieldsSet |= 0x8;
-            mHotwordOffsetMillis = value;
-            return this;
-        }
-
-        /** Builds the instance. This builder should not be touched after calling this! */
-        public @NonNull HotwordTrainingAudio build() {
-            checkNotUsed();
-            mBuilderFieldsSet |= 0x10; // Mark builder used
-
-            if ((mBuilderFieldsSet & 0x4) == 0) {
-                mAudioType = defaultAudioType();
-            }
-            if ((mBuilderFieldsSet & 0x8) == 0) {
-                mHotwordOffsetMillis = HOTWORD_OFFSET_UNSET;
-            }
-            HotwordTrainingAudio o = new HotwordTrainingAudio(
-                    mHotwordAudio,
-                    mAudioFormat,
-                    mAudioType,
-                    mHotwordOffsetMillis);
-            return o;
-        }
-
-        private void checkNotUsed() {
-            if ((mBuilderFieldsSet & 0x10) != 0) {
-                throw new IllegalStateException(
-                        "This Builder should not be reused. Use a new Builder instance instead");
-            }
-        }
-    }
-
-    @DataClass.Generated(
-            time = 1697827049629L,
-            codegenVersion = "1.0.23",
-            sourceFile = "frameworks/base/core/java/android/service/voice/HotwordTrainingAudio.java",
-            inputSignatures = "public static final  int HOTWORD_OFFSET_UNSET\nprivate final @android.annotation.NonNull byte[] mHotwordAudio\nprivate final @android.annotation.NonNull android.media.AudioFormat mAudioFormat\nprivate final @android.annotation.NonNull int mAudioType\nprivate  int mHotwordOffsetMillis\nprivate  java.lang.String hotwordAudioToString()\nprivate static  int defaultAudioType()\nclass HotwordTrainingAudio extends java.lang.Object implements [android.os.Parcelable]\npublic @android.annotation.SuppressLint @android.annotation.NonNull android.service.voice.HotwordTrainingAudio.Builder setHotwordAudio(byte[])\nclass BaseBuilder extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genConstructor=false, genBuilder=true, genEqualsHashCode=true, genHiddenConstDefs=true, genParcelable=true, genToString=true)\npublic @android.annotation.SuppressLint @android.annotation.NonNull android.service.voice.HotwordTrainingAudio.Builder setHotwordAudio(byte[])\nclass BaseBuilder extends java.lang.Object implements []")
-    @Deprecated
-    private void __metadata() {}
-
-
-    //@formatter:on
-    // End of generated code
-
-}
diff --git a/core/java/android/service/voice/HotwordTrainingData.aidl b/core/java/android/service/voice/HotwordTrainingData.aidl
deleted file mode 100644
index 03cc841..0000000
--- a/core/java/android/service/voice/HotwordTrainingData.aidl
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.service.voice;
-
-parcelable HotwordTrainingData;
diff --git a/core/java/android/service/voice/HotwordTrainingData.java b/core/java/android/service/voice/HotwordTrainingData.java
deleted file mode 100644
index aa6dab3..0000000
--- a/core/java/android/service/voice/HotwordTrainingData.java
+++ /dev/null
@@ -1,305 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.service.voice;
-
-import android.annotation.FlaggedApi;
-import android.annotation.NonNull;
-import android.annotation.SystemApi;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.service.voice.flags.Flags;
-import android.text.TextUtils;
-
-import com.android.internal.util.DataClass;
-import com.android.internal.util.Preconditions;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * Contains training data related to hotword detection service.
- *
- * <p>The constructed object's size must be within
- * {@link HotwordTrainingData#getMaxTrainingDataBytes()} or an
- * {@link IllegalArgumentException} will be thrown on construction. Size of the object is calculated
- * by converting object to a {@link Parcel} and using the {@link Parcel#dataSize()}.
- *
- * @hide
- */
-@DataClass(
-        genConstructor = false,
-        genBuilder = true,
-        genEqualsHashCode = true,
-        genHiddenConstDefs = true,
-        genParcelable = true,
-        genToString = true)
-@SystemApi
-@FlaggedApi(Flags.FLAG_ALLOW_TRAINING_DATA_EGRESS_FROM_HDS)
-public final class HotwordTrainingData implements Parcelable {
-    /** Max size for hotword training data in bytes. */
-    public static int getMaxTrainingDataBytes() {
-        return 1024 * 1024; // 1 MB;
-    }
-
-    /** The list containing hotword audio that is useful for training. */
-    @NonNull
-    @DataClass.PluralOf("trainingAudio")
-    private final List<HotwordTrainingAudio> mTrainingAudioList;
-
-    private static List<HotwordTrainingAudio> defaultTrainingAudioList() {
-        return Collections.emptyList();
-    }
-
-    /** App-defined stage when hotword model timed-out while running.
-     * <p> Returns -1 if unset. */
-    private final int mTimeoutStage;
-
-    private static int defaultTimeoutStage() {
-        return -1;
-    }
-
-    private void onConstructed() {
-        // Verify size of object is within limit.
-        Parcel parcel = Parcel.obtain();
-        parcel.writeValue(this);
-        int dataSizeBytes = parcel.dataSize();
-        parcel.recycle();
-        Preconditions.checkArgument(
-                dataSizeBytes < getMaxTrainingDataBytes(),
-                TextUtils.formatSimple(
-                        "Hotword training data of size %s exceeds size limit of %s bytes!",
-                        dataSizeBytes, getMaxTrainingDataBytes()));
-    }
-
-
-
-    // Code below generated by codegen v1.0.23.
-    //
-    // DO NOT MODIFY!
-    // CHECKSTYLE:OFF Generated code
-    //
-    // To regenerate run:
-    // $ codegen $ANDROID_BUILD_TOP/frameworks/base/core/java/android/service/voice/HotwordTrainingData.java
-    //
-    // To exclude the generated code from IntelliJ auto-formatting enable (one-time):
-    //   Settings > Editor > Code Style > Formatter Control
-    //@formatter:off
-
-
-    @DataClass.Generated.Member
-    /* package-private */ HotwordTrainingData(
-            @NonNull List<HotwordTrainingAudio> trainingAudioList,
-            int timeoutStage) {
-        this.mTrainingAudioList = trainingAudioList;
-        com.android.internal.util.AnnotationValidations.validate(
-                NonNull.class, null, mTrainingAudioList);
-        this.mTimeoutStage = timeoutStage;
-
-        onConstructed();
-    }
-
-    /**
-     * The list containing hotword audio that is useful for training.
-     */
-    @DataClass.Generated.Member
-    public @NonNull List<HotwordTrainingAudio> getTrainingAudioList() {
-        return mTrainingAudioList;
-    }
-
-    /**
-     * App-defined stage when hotword model timed-out while running.
-     * <p> Returns -1 if unset.
-     */
-    @DataClass.Generated.Member
-    public int getTimeoutStage() {
-        return mTimeoutStage;
-    }
-
-    @Override
-    @DataClass.Generated.Member
-    public String toString() {
-        // You can override field toString logic by defining methods like:
-        // String fieldNameToString() { ... }
-
-        return "HotwordTrainingData { " +
-                "trainingAudioList = " + mTrainingAudioList + ", " +
-                "timeoutStage = " + mTimeoutStage +
-        " }";
-    }
-
-    @Override
-    @DataClass.Generated.Member
-    public boolean equals(@android.annotation.Nullable Object o) {
-        // You can override field equality logic by defining either of the methods like:
-        // boolean fieldNameEquals(HotwordTrainingData other) { ... }
-        // boolean fieldNameEquals(FieldType otherValue) { ... }
-
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-        @SuppressWarnings("unchecked")
-        HotwordTrainingData that = (HotwordTrainingData) o;
-        //noinspection PointlessBooleanExpression
-        return true
-                && java.util.Objects.equals(mTrainingAudioList, that.mTrainingAudioList)
-                && mTimeoutStage == that.mTimeoutStage;
-    }
-
-    @Override
-    @DataClass.Generated.Member
-    public int hashCode() {
-        // You can override field hashCode logic by defining methods like:
-        // int fieldNameHashCode() { ... }
-
-        int _hash = 1;
-        _hash = 31 * _hash + java.util.Objects.hashCode(mTrainingAudioList);
-        _hash = 31 * _hash + mTimeoutStage;
-        return _hash;
-    }
-
-    @Override
-    @DataClass.Generated.Member
-    public void writeToParcel(@NonNull Parcel dest, int flags) {
-        // You can override field parcelling by defining methods like:
-        // void parcelFieldName(Parcel dest, int flags) { ... }
-
-        dest.writeParcelableList(mTrainingAudioList, flags);
-        dest.writeInt(mTimeoutStage);
-    }
-
-    @Override
-    @DataClass.Generated.Member
-    public int describeContents() { return 0; }
-
-    /** @hide */
-    @SuppressWarnings({"unchecked", "RedundantCast"})
-    @DataClass.Generated.Member
-    /* package-private */ HotwordTrainingData(@NonNull Parcel in) {
-        // You can override field unparcelling by defining methods like:
-        // static FieldType unparcelFieldName(Parcel in) { ... }
-
-        List<HotwordTrainingAudio> trainingAudioList = new ArrayList<>();
-        in.readParcelableList(trainingAudioList, HotwordTrainingAudio.class.getClassLoader());
-        int timeoutStage = in.readInt();
-
-        this.mTrainingAudioList = trainingAudioList;
-        com.android.internal.util.AnnotationValidations.validate(
-                NonNull.class, null, mTrainingAudioList);
-        this.mTimeoutStage = timeoutStage;
-
-        onConstructed();
-    }
-
-    @DataClass.Generated.Member
-    public static final @NonNull Parcelable.Creator<HotwordTrainingData> CREATOR
-            = new Parcelable.Creator<HotwordTrainingData>() {
-        @Override
-        public HotwordTrainingData[] newArray(int size) {
-            return new HotwordTrainingData[size];
-        }
-
-        @Override
-        public HotwordTrainingData createFromParcel(@NonNull Parcel in) {
-            return new HotwordTrainingData(in);
-        }
-    };
-
-    /**
-     * A builder for {@link HotwordTrainingData}
-     */
-    @FlaggedApi(Flags.FLAG_ALLOW_TRAINING_DATA_EGRESS_FROM_HDS)
-    @SuppressWarnings("WeakerAccess")
-    @DataClass.Generated.Member
-    public static final class Builder {
-
-        private @NonNull List<HotwordTrainingAudio> mTrainingAudioList;
-        private int mTimeoutStage;
-
-        private long mBuilderFieldsSet = 0L;
-
-        public Builder() {
-        }
-
-        /**
-         * The list containing hotword audio that is useful for training.
-         */
-        @DataClass.Generated.Member
-        public @NonNull Builder setTrainingAudioList(@NonNull List<HotwordTrainingAudio> value) {
-            checkNotUsed();
-            mBuilderFieldsSet |= 0x1;
-            mTrainingAudioList = value;
-            return this;
-        }
-
-        /** @see #setTrainingAudioList */
-        @DataClass.Generated.Member
-        public @NonNull Builder addTrainingAudio(@NonNull HotwordTrainingAudio value) {
-            if (mTrainingAudioList == null) setTrainingAudioList(new ArrayList<>());
-            mTrainingAudioList.add(value);
-            return this;
-        }
-
-        /**
-         * App-defined stage when hotword model timed-out while running.
-         * <p> Returns -1 if unset.
-         */
-        @DataClass.Generated.Member
-        public @NonNull Builder setTimeoutStage(int value) {
-            checkNotUsed();
-            mBuilderFieldsSet |= 0x2;
-            mTimeoutStage = value;
-            return this;
-        }
-
-        /** Builds the instance. This builder should not be touched after calling this! */
-        public @NonNull HotwordTrainingData build() {
-            checkNotUsed();
-            mBuilderFieldsSet |= 0x4; // Mark builder used
-
-            if ((mBuilderFieldsSet & 0x1) == 0) {
-                mTrainingAudioList = defaultTrainingAudioList();
-            }
-            if ((mBuilderFieldsSet & 0x2) == 0) {
-                mTimeoutStage = defaultTimeoutStage();
-            }
-            HotwordTrainingData o = new HotwordTrainingData(
-                    mTrainingAudioList,
-                    mTimeoutStage);
-            return o;
-        }
-
-        private void checkNotUsed() {
-            if ((mBuilderFieldsSet & 0x4) != 0) {
-                throw new IllegalStateException(
-                        "This Builder should not be reused. Use a new Builder instance instead");
-            }
-        }
-    }
-
-    @DataClass.Generated(
-            time = 1697826948280L,
-            codegenVersion = "1.0.23",
-            sourceFile = "frameworks/base/core/java/android/service/voice/HotwordTrainingData.java",
-            inputSignatures = "private final @android.annotation.NonNull @com.android.internal.util.DataClass.PluralOf(\"trainingAudio\") java.util.List<android.service.voice.HotwordTrainingAudio> mTrainingAudioList\nprivate final  int mTimeoutStage\npublic static  int getMaxTrainingDataBytes()\nprivate static  java.util.List<android.service.voice.HotwordTrainingAudio> defaultTrainingAudioList()\nprivate static  int defaultTimeoutStage()\nprivate  void onConstructed()\nclass HotwordTrainingData extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genConstructor=false, genBuilder=true, genEqualsHashCode=true, genHiddenConstDefs=true, genParcelable=true, genToString=true)")
-    @Deprecated
-    private void __metadata() {}
-
-
-    //@formatter:on
-    // End of generated code
-
-}