Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 67a36f68 authored by David Zhao's avatar David Zhao Committed by Android (Google) Code Review
Browse files

Merge "Add SignalingDataInfo and SignalingDataResponse" into main

parents 2954353d d81a7bcd
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
package android.media.tv;

parcelable SignalingDataInfo;
+117 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2024 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.media.tv;

import android.annotation.NonNull;
import android.os.Parcelable;

/** @hide */
public class SignalingDataInfo implements Parcelable {
    public static final @NonNull Parcelable.Creator<SignalingDataInfo> CREATOR =
            new Parcelable.Creator<SignalingDataInfo>() {
                @Override
                public SignalingDataInfo[] newArray(int size) {
                    return new SignalingDataInfo[size];
                }

                @Override
                public SignalingDataInfo createFromParcel(@NonNull android.os.Parcel in) {
                    return new SignalingDataInfo(in);
                }
            };

    private int mTableId;
    private @NonNull String mTable;
    private int mMetadataType;
    private int mVersion;
    private int mGroup;
    private @NonNull String mEncoding;

    public SignalingDataInfo(
            int tableId,
            @NonNull String table,
            int metadataType,
            int version,
            int group,
            @NonNull String encoding) {
        this.mTableId = tableId;
        this.mTable = table;
        com.android.internal.util.AnnotationValidations.validate(NonNull.class, null, mTable);
        this.mMetadataType = metadataType;
        this.mVersion = version;
        this.mGroup = group;
        this.mEncoding = encoding;
        com.android.internal.util.AnnotationValidations.validate(NonNull.class, null, mEncoding);
    }

    public int getTableId() {
        return mTableId;
    }

    public @NonNull String getTable() {
        return mTable;
    }

    public int getMetadataType() {
        return mMetadataType;
    }

    public int getVersion() {
        return mVersion;
    }

    public int getGroup() {
        return mGroup;
    }

    public @NonNull String getEncoding() {
        return mEncoding;
    }

    @Override
    public void writeToParcel(@NonNull android.os.Parcel dest, int flags) {
        dest.writeInt(mTableId);
        dest.writeString(mTable);
        dest.writeInt(mMetadataType);
        dest.writeInt(mVersion);
        dest.writeInt(mGroup);
        dest.writeString(mEncoding);
    }

    @Override
    public int describeContents() {
        return 0;
    }

    SignalingDataInfo(@NonNull android.os.Parcel in) {
        int tableId = in.readInt();
        String table = in.readString();
        int metadataType = in.readInt();
        int version = in.readInt();
        int group = in.readInt();
        String encoding = in.readString();

        this.mTableId = tableId;
        this.mTable = table;
        com.android.internal.util.AnnotationValidations.validate(NonNull.class, null, mTable);
        this.mMetadataType = metadataType;
        this.mVersion = version;
        this.mGroup = group;
        this.mEncoding = encoding;
        com.android.internal.util.AnnotationValidations.validate(NonNull.class, null, mEncoding);
    }
}
+3 −0
Original line number Diff line number Diff line
package android.media.tv;

parcelable SignalingDataResponse;
+100 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2024 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.media.tv;

import android.annotation.NonNull;
import android.os.Parcelable;

import java.util.List;

/** @hide */
public class SignalingDataResponse extends BroadcastInfoResponse implements Parcelable {
    public static final @NonNull Parcelable.Creator<SignalingDataResponse> CREATOR =
            new Parcelable.Creator<SignalingDataResponse>() {
                @Override
                public SignalingDataResponse[] newArray(int size) {
                    return new SignalingDataResponse[size];
                }

                @Override
                public SignalingDataResponse createFromParcel(@NonNull android.os.Parcel in) {
                    return new SignalingDataResponse(in);
                }
            };
    private static final @TvInputManager.BroadcastInfoType int RESPONSE_TYPE =
            TvInputManager.BROADCAST_INFO_TYPE_SIGNALING_DATA;
    private final @NonNull int[] mTableIds;
    private final int mMetadataTypes;
    private final @NonNull List<SignalingDataInfo> mSignalingDataInfoList;

    public SignalingDataResponse(
            int requestId,
            int sequence,
            @ResponseResult int responseResult,
            @NonNull int[] tableIds,
            int metadataTypes,
            @NonNull List<SignalingDataInfo> signalingDataInfoList) {
        super(RESPONSE_TYPE, requestId, sequence, responseResult);
        this.mTableIds = tableIds;
        com.android.internal.util.AnnotationValidations.validate(NonNull.class, null, mTableIds);
        this.mMetadataTypes = metadataTypes;
        this.mSignalingDataInfoList = signalingDataInfoList;
        com.android.internal.util.AnnotationValidations.validate(
                NonNull.class, null, mSignalingDataInfoList);
    }

    public @NonNull int[] getTableIds() {
        return mTableIds;
    }

    public int getMetadataTypes() {
        return mMetadataTypes;
    }

    public @NonNull List<SignalingDataInfo> getSignalingDataInfoList() {
        return mSignalingDataInfoList;
    }

    @Override
    public void writeToParcel(@NonNull android.os.Parcel dest, int flags) {
        super.writeToParcel(dest, flags);
        dest.writeIntArray(mTableIds);
        dest.writeInt(mMetadataTypes);
        dest.writeParcelableList(mSignalingDataInfoList, flags);
    }

    @Override
    public int describeContents() {
        return 0;
    }

    SignalingDataResponse(@NonNull android.os.Parcel in) {
        super(RESPONSE_TYPE, in);

        int[] tableIds = in.createIntArray();
        int metadataTypes = in.readInt();
        List<SignalingDataInfo> signalingDataInfoList = new java.util.ArrayList<>();
        in.readParcelableList(signalingDataInfoList, SignalingDataInfo.class.getClassLoader());

        this.mTableIds = tableIds;
        com.android.internal.util.AnnotationValidations.validate(NonNull.class, null, mTableIds);
        this.mMetadataTypes = metadataTypes;
        this.mSignalingDataInfoList = signalingDataInfoList;
        com.android.internal.util.AnnotationValidations.validate(
                NonNull.class, null, mSignalingDataInfoList);
    }
}