1b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann/* 2b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann * Copyright (C) 2017 The Android Open Source Project 3b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann * 4b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann * Licensed under the Apache License, Version 2.0 (the "License"); 5b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann * you may not use this file except in compliance with the License. 6b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann * You may obtain a copy of the License at 7b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann * 8b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann * http://www.apache.org/licenses/LICENSE-2.0 9b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann * 10b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann * Unless required by applicable law or agreed to in writing, software 11b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann * distributed under the License is distributed on an "AS IS" BASIS, 12b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann * See the License for the specific language governing permissions and 14b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann * limitations under the License. 15b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann */ 16b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann 17b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmannpackage android.view.autofill; 18b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann 19b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmannimport android.os.Parcel; 20b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmannimport android.os.Parcelable; 21b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann 22b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmannimport java.util.HashMap; 23b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmannimport java.util.Map; 24b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann 25b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann/** 26b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann * A parcelable HashMap for {@link AutofillId} and {@link AutofillValue} 27b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann * 28b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann * {@hide} 29b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann */ 30b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmannclass ParcelableMap extends HashMap<AutofillId, AutofillValue> implements Parcelable { 31b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann ParcelableMap(int size) { 32b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann super(size); 33b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann } 34b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann 35b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann @Override 36b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann public int describeContents() { 37b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann return 0; 38b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann } 39b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann 40b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann @Override 41b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann public void writeToParcel(Parcel dest, int flags) { 42b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann dest.writeInt(size()); 43b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann 44b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann for (Map.Entry<AutofillId, AutofillValue> entry : entrySet()) { 45b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann dest.writeParcelable(entry.getKey(), 0); 46b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann dest.writeParcelable(entry.getValue(), 0); 47b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann } 48b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann } 49b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann 50b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann public static final Parcelable.Creator<ParcelableMap> CREATOR = 51b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann new Parcelable.Creator<ParcelableMap>() { 52b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann @Override 53b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann public ParcelableMap createFromParcel(Parcel source) { 54b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann int size = source.readInt(); 55b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann 56b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann ParcelableMap map = new ParcelableMap(size); 57b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann 58b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann for (int i = 0; i < size; i++) { 59b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann AutofillId key = source.readParcelable(null); 60b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann AutofillValue value = source.readParcelable(null); 61b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann 62b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann map.put(key, value); 63b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann } 64b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann 65b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann return map; 66b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann } 67b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann 68b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann @Override 69b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann public ParcelableMap[] newArray(int size) { 70b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann return new ParcelableMap[size]; 71b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann } 72b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann }; 73b42d133c8b7f4af04d3a4349c952d437769f14e1Philip P. Moltmann} 74