• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2023 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package android.health.connect.migration;
18 
19 import android.annotation.NonNull;
20 import android.health.connect.internal.ParcelUtils;
21 import android.os.Parcel;
22 import android.os.Parcelable;
23 
24 import java.util.ArrayList;
25 import java.util.List;
26 import java.util.Objects;
27 
28 /** @hide */
29 public final class MigrationEntityParcel implements Parcelable {
30     @NonNull
31     public static final Creator<MigrationEntityParcel> CREATOR =
32             new Creator<>() {
33                 @Override
34                 public MigrationEntityParcel createFromParcel(Parcel in) {
35                     return new MigrationEntityParcel(in);
36                 }
37 
38                 @Override
39                 public MigrationEntityParcel[] newArray(int size) {
40                     return new MigrationEntityParcel[size];
41                 }
42             };
43 
44     private final List<MigrationEntity> mMigrationEntityList;
45 
MigrationEntityParcel(@onNull Parcel in)46     private MigrationEntityParcel(@NonNull Parcel in) {
47         in = ParcelUtils.getParcelForSharedMemoryIfRequired(in);
48         mMigrationEntityList = new ArrayList<>();
49         in.readParcelableList(
50                 mMigrationEntityList,
51                 MigrationEntity.class.getClassLoader(),
52                 MigrationEntity.class);
53     }
54 
MigrationEntityParcel(@onNull List<MigrationEntity> migrationEntities)55     public MigrationEntityParcel(@NonNull List<MigrationEntity> migrationEntities) {
56         Objects.requireNonNull(migrationEntities);
57         mMigrationEntityList = migrationEntities;
58     }
59 
60     @Override
describeContents()61     public int describeContents() {
62         return 0;
63     }
64 
65     @Override
writeToParcel(@onNull Parcel dest, int flags)66     public void writeToParcel(@NonNull Parcel dest, int flags) {
67         ParcelUtils.putToRequiredMemory(dest, flags, this::writeToMigrationEntityParcel);
68     }
69 
writeToMigrationEntityParcel(@onNull Parcel dest)70     private void writeToMigrationEntityParcel(@NonNull Parcel dest) {
71         dest.writeParcelableList(mMigrationEntityList, 0);
72     }
73 
74     @NonNull
getMigrationEntities()75     public List<MigrationEntity> getMigrationEntities() {
76         return mMigrationEntityList;
77     }
78 }
79