Bundle.java revision 7410fb4b394c46fcaa195ba1071750469f776c80
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.os; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 19c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedyimport android.annotation.Nullable; 20b87655b3e551c6a32f34084c8533800bbd1aff7dDianne Hackbornimport android.util.ArrayMap; 215ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkeyimport android.util.Size; 225ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkeyimport android.util.SizeF; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.SparseArray; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.Serializable; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.ArrayList; 27aeb16e2435f9975b9fa1fc4b747796647a21292eJeff Sharkeyimport java.util.List; 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 30d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey * A mapping from String keys to various {@link Parcelable} values. 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 32d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey * @see PersistableBundle 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 340a8e160eb56f3b8f504b37349a79ec4edb7e5039Craig Mautnerpublic final class Bundle extends BaseBundle implements Cloneable, Parcelable { 35d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey private static final int FLAG_HAS_FDS = 1 << 8; 36d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey private static final int FLAG_HAS_FDS_KNOWN = 1 << 9; 37d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey private static final int FLAG_ALLOW_FDS = 1 << 10; 38d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final Bundle EMPTY; 40d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey 418aee64d18b6b90e46e886a80d8de0467d682ddc4Dianne Hackborn static final Parcel EMPTY_PARCEL; 42e784d1e4cfeaf3a9accd7caa33c087abd8f39040Dianne Hackborn 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project static { 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project EMPTY = new Bundle(); 45b87655b3e551c6a32f34084c8533800bbd1aff7dDianne Hackborn EMPTY.mMap = ArrayMap.EMPTY; 460a8e160eb56f3b8f504b37349a79ec4edb7e5039Craig Mautner EMPTY_PARCEL = BaseBundle.EMPTY_PARCEL; 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Constructs a new, empty Bundle. 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Bundle() { 53719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super(); 547410fb4b394c46fcaa195ba1071750469f776c80Jeff Sharkey mFlags = FLAG_HAS_FDS_KNOWN | FLAG_ALLOW_FDS; 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Constructs a Bundle whose data is stored as a Parcel. The data 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * will be unparcelled on first contact, using the assigned ClassLoader. 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param parcelledData a Parcel containing a Bundle 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Bundle(Parcel parcelledData) { 64719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super(parcelledData); 657410fb4b394c46fcaa195ba1071750469f776c80Jeff Sharkey mFlags = FLAG_HAS_FDS_KNOWN | FLAG_ALLOW_FDS; 66d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey if (mParcelledData.hasFileDescriptors()) { 67d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags |= FLAG_HAS_FDS; 68d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey } 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 716aff905048ba3b03724f17e2aba9089872e14cd2Dianne Hackborn /* package */ Bundle(Parcel parcelledData, int length) { 72719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super(parcelledData, length); 737410fb4b394c46fcaa195ba1071750469f776c80Jeff Sharkey mFlags = FLAG_HAS_FDS_KNOWN | FLAG_ALLOW_FDS; 74d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey if (mParcelledData.hasFileDescriptors()) { 75d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags |= FLAG_HAS_FDS; 76d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey } 776aff905048ba3b03724f17e2aba9089872e14cd2Dianne Hackborn } 786aff905048ba3b03724f17e2aba9089872e14cd2Dianne Hackborn 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Constructs a new, empty Bundle that uses a specific ClassLoader for 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * instantiating Parcelable and Serializable objects. 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param loader An explicit ClassLoader to use when instantiating objects 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * inside of the Bundle. 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Bundle(ClassLoader loader) { 87719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super(loader); 887410fb4b394c46fcaa195ba1071750469f776c80Jeff Sharkey mFlags = FLAG_HAS_FDS_KNOWN | FLAG_ALLOW_FDS; 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Constructs a new, empty Bundle sized to hold the given number of 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * elements. The Bundle will grow as needed. 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param capacity the initial capacity of the Bundle 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Bundle(int capacity) { 98719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super(capacity); 997410fb4b394c46fcaa195ba1071750469f776c80Jeff Sharkey mFlags = FLAG_HAS_FDS_KNOWN | FLAG_ALLOW_FDS; 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Constructs a Bundle containing a copy of the mappings from the given 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Bundle. 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param b a Bundle to be copied. 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Bundle(Bundle b) { 109719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super(b); 110d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags = b.mFlags; 111719e6b167041ffaffc2245f692714c8de191863fCraig Mautner } 112719e6b167041ffaffc2245f692714c8de191863fCraig Mautner 113719e6b167041ffaffc2245f692714c8de191863fCraig Mautner /** 114719e6b167041ffaffc2245f692714c8de191863fCraig Mautner * Constructs a Bundle containing a copy of the mappings from the given 115719e6b167041ffaffc2245f692714c8de191863fCraig Mautner * PersistableBundle. 116719e6b167041ffaffc2245f692714c8de191863fCraig Mautner * 117719e6b167041ffaffc2245f692714c8de191863fCraig Mautner * @param b a Bundle to be copied. 118719e6b167041ffaffc2245f692714c8de191863fCraig Mautner */ 119719e6b167041ffaffc2245f692714c8de191863fCraig Mautner public Bundle(PersistableBundle b) { 120719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super(b); 1217410fb4b394c46fcaa195ba1071750469f776c80Jeff Sharkey mFlags = FLAG_HAS_FDS_KNOWN | FLAG_ALLOW_FDS; 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1251877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick * Make a Bundle for a single key/value pair. 1261877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick * 1271877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick * @hide 1281877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick */ 1291877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick public static Bundle forPair(String key, String value) { 1301877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick Bundle b = new Bundle(1); 1311877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick b.putString(key, value); 1321877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick return b; 1331877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick } 1341877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick 1351877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick /** 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Changes the ClassLoader this Bundle uses when instantiating objects. 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param loader An explicit ClassLoader to use when instantiating objects 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * inside of the Bundle. 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 141719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setClassLoader(ClassLoader loader) { 143719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.setClassLoader(loader); 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1475164246d7e47b9c995ca1e1587f3056eb777f60bDianne Hackborn * Return the ClassLoader currently associated with this Bundle. 1485164246d7e47b9c995ca1e1587f3056eb777f60bDianne Hackborn */ 149719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 1505164246d7e47b9c995ca1e1587f3056eb777f60bDianne Hackborn public ClassLoader getClassLoader() { 151719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getClassLoader(); 1525164246d7e47b9c995ca1e1587f3056eb777f60bDianne Hackborn } 1539ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn 154d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey /** {@hide} */ 1559ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn public boolean setAllowFds(boolean allowFds) { 156d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey final boolean orig = (mFlags & FLAG_ALLOW_FDS) != 0; 157d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey if (allowFds) { 158d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags |= FLAG_ALLOW_FDS; 159d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey } else { 160d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags &= ~FLAG_ALLOW_FDS; 161d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey } 1629ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn return orig; 1639ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn } 1649ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn 1655164246d7e47b9c995ca1e1587f3056eb777f60bDianne Hackborn /** 166d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey * Mark if this Bundle is okay to "defuse." That is, it's okay for system 167d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey * processes to ignore any {@link BadParcelableException} encountered when 168d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey * unparceling it, leaving an empty bundle in its place. 169d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey * <p> 170d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey * This should <em>only</em> be set when the Bundle reaches its final 171d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey * destination, otherwise a system process may clobber contents that were 172d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey * destined for an app that could have unparceled them. 173d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey * 174d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey * @hide 175d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey */ 176d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey public void setDefusable(boolean defusable) { 177d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey if (defusable) { 178d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags |= FLAG_DEFUSABLE; 179d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey } else { 180d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags &= ~FLAG_DEFUSABLE; 181d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey } 182d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey } 183d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey 184d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey /** 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Clones the current Bundle. The internal map is cloned, but the keys and 1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * values to which it refers are copied by reference. 1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Object clone() { 1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new Bundle(this); 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Removes all elements from the mapping of this Bundle. 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 196719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void clear() { 198719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.clear(); 1997410fb4b394c46fcaa195ba1071750469f776c80Jeff Sharkey mFlags = FLAG_HAS_FDS_KNOWN | FLAG_ALLOW_FDS; 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts all mappings from the given Bundle into this Bundle. 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 205719e6b167041ffaffc2245f692714c8de191863fCraig Mautner * @param bundle a Bundle 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 207719e6b167041ffaffc2245f692714c8de191863fCraig Mautner public void putAll(Bundle bundle) { 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 209719e6b167041ffaffc2245f692714c8de191863fCraig Mautner bundle.unparcel(); 210719e6b167041ffaffc2245f692714c8de191863fCraig Mautner mMap.putAll(bundle.mMap); 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 212d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey // FD state is now known if and only if both bundles already knew 213d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey if ((bundle.mFlags & FLAG_HAS_FDS) != 0) { 214d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags |= FLAG_HAS_FDS; 215d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey } 216d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey if ((bundle.mFlags & FLAG_HAS_FDS_KNOWN) == 0) { 217d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags &= ~FLAG_HAS_FDS_KNOWN; 218d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey } 219719e6b167041ffaffc2245f692714c8de191863fCraig Mautner } 220719e6b167041ffaffc2245f692714c8de191863fCraig Mautner 221719e6b167041ffaffc2245f692714c8de191863fCraig Mautner /** 2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Reports whether the bundle contains any parcelled file descriptors. 2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean hasFileDescriptors() { 225d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey if ((mFlags & FLAG_HAS_FDS_KNOWN) == 0) { 2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean fdFound = false; // keep going until we find one or run out of data 227719e6b167041ffaffc2245f692714c8de191863fCraig Mautner 2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mParcelledData != null) { 2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mParcelledData.hasFileDescriptors()) { 2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project fdFound = true; 2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // It's been unparcelled, so we need to walk the map 234b87655b3e551c6a32f34084c8533800bbd1aff7dDianne Hackborn for (int i=mMap.size()-1; i>=0; i--) { 235b87655b3e551c6a32f34084c8533800bbd1aff7dDianne Hackborn Object obj = mMap.valueAt(i); 2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (obj instanceof Parcelable) { 2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if ((((Parcelable)obj).describeContents() 2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project & Parcelable.CONTENTS_FILE_DESCRIPTOR) != 0) { 2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project fdFound = true; 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project break; 2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (obj instanceof Parcelable[]) { 2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcelable[] array = (Parcelable[]) obj; 2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int n = array.length - 1; n >= 0; n--) { 245e58c7858a39d58a222fe8302dc5ffbe4a25c5bf1Taiju Tsuiki Parcelable p = array[n]; 246e58c7858a39d58a222fe8302dc5ffbe4a25c5bf1Taiju Tsuiki if (p != null && ((p.describeContents() 247e58c7858a39d58a222fe8302dc5ffbe4a25c5bf1Taiju Tsuiki & Parcelable.CONTENTS_FILE_DESCRIPTOR) != 0)) { 2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project fdFound = true; 2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project break; 2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (obj instanceof SparseArray) { 2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SparseArray<? extends Parcelable> array = 2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project (SparseArray<? extends Parcelable>) obj; 2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int n = array.size() - 1; n >= 0; n--) { 256ecd21848731f55978cdac739e6d4460a83449202Taiju Tsuiki Parcelable p = array.valueAt(n); 257ecd21848731f55978cdac739e6d4460a83449202Taiju Tsuiki if (p != null && (p.describeContents() 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project & Parcelable.CONTENTS_FILE_DESCRIPTOR) != 0) { 2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project fdFound = true; 2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project break; 2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (obj instanceof ArrayList) { 2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ArrayList array = (ArrayList) obj; 2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // an ArrayList here might contain either Strings or 2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Parcelables; only look inside for Parcelables 267719e6b167041ffaffc2245f692714c8de191863fCraig Mautner if (!array.isEmpty() && (array.get(0) instanceof Parcelable)) { 2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int n = array.size() - 1; n >= 0; n--) { 2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcelable p = (Parcelable) array.get(n); 2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (p != null && ((p.describeContents() 2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project & Parcelable.CONTENTS_FILE_DESCRIPTOR) != 0)) { 2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project fdFound = true; 2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project break; 2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 281d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey if (fdFound) { 282d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags |= FLAG_HAS_FDS; 283d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey } 284d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags |= FLAG_HAS_FDS_KNOWN; 2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 286d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey return (mFlags & FLAG_HAS_FDS) != 0; 2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 288719e6b167041ffaffc2245f692714c8de191863fCraig Mautner 2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 290a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn * Filter values in Bundle to only basic types. 291a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn * @hide 292a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn */ 293a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn public void filterValues() { 294a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn unparcel(); 295a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn if (mMap != null) { 296a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn for (int i = mMap.size() - 1; i >= 0; i--) { 297a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn Object value = mMap.valueAt(i); 298a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn if (PersistableBundle.isValidType(value)) { 299a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn continue; 300a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn } 301a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn if (value instanceof Bundle) { 302a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn ((Bundle)value).filterValues(); 303a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn } 304a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn if (value.getClass().getName().startsWith("android.")) { 305a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn continue; 306a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn } 307a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn mMap.removeAt(i); 308a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn } 309a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn } 310a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn } 311a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn 312a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn /** 3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a byte value into the mapping of this Bundle, replacing 3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. 3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a byte 3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 319719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 320c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putByte(@Nullable String key, byte value) { 321719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putByte(key, value); 3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a char value into the mapping of this Bundle, replacing 3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. 3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 329c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy * @param value a char 3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 331719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 332c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putChar(@Nullable String key, char value) { 333719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putChar(key, value); 3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a short value into the mapping of this Bundle, replacing 3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. 3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a short 3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 343719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 344c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putShort(@Nullable String key, short value) { 345719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putShort(key, value); 3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a float value into the mapping of this Bundle, replacing 3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. 3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a float 3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 355719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 356c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putFloat(@Nullable String key, float value) { 357719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putFloat(key, value); 3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a CharSequence value into the mapping of this Bundle, replacing 3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a CharSequence, or null 3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 367719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 368c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putCharSequence(@Nullable String key, @Nullable CharSequence value) { 369719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putCharSequence(key, value); 3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a Parcelable value into the mapping of this Bundle, replacing 3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a Parcelable object, or null 3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 379c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putParcelable(@Nullable String key, @Nullable Parcelable value) { 3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 3819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMap.put(key, value); 382d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags &= ~FLAG_HAS_FDS_KNOWN; 3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3865ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * Inserts a Size value into the mapping of this Bundle, replacing 3875ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * any existing value for the given key. Either key or value may be null. 3885ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * 3895ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * @param key a String, or null 3905ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * @param value a Size object, or null 3915ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey */ 392c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putSize(@Nullable String key, @Nullable Size value) { 3935ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey unparcel(); 3945ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey mMap.put(key, value); 3955ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey } 3965ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey 3975ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey /** 3985ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * Inserts a SizeF value into the mapping of this Bundle, replacing 3995ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * any existing value for the given key. Either key or value may be null. 4005ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * 4015ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * @param key a String, or null 4025ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * @param value a SizeF object, or null 4035ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey */ 404c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putSizeF(@Nullable String key, @Nullable SizeF value) { 4055ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey unparcel(); 4065ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey mMap.put(key, value); 4075ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey } 4085ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey 4095ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey /** 4109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts an array of Parcelable values into the mapping of this Bundle, 4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * replacing any existing value for the given key. Either key or value may 4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * be null. 4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value an array of Parcelable objects, or null 4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 417c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putParcelableArray(@Nullable String key, @Nullable Parcelable[] value) { 4189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMap.put(key, value); 420d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags &= ~FLAG_HAS_FDS_KNOWN; 4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a List of Parcelable values into the mapping of this Bundle, 4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * replacing any existing value for the given key. Either key or value may 4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * be null. 4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 4299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value an ArrayList of Parcelable objects, or null 4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 431c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putParcelableArrayList(@Nullable String key, 432c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable ArrayList<? extends Parcelable> value) { 4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 4349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMap.put(key, value); 435d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags &= ~FLAG_HAS_FDS_KNOWN; 4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 438aeb16e2435f9975b9fa1fc4b747796647a21292eJeff Sharkey /** {@hide} */ 439aeb16e2435f9975b9fa1fc4b747796647a21292eJeff Sharkey public void putParcelableList(String key, List<? extends Parcelable> value) { 440aeb16e2435f9975b9fa1fc4b747796647a21292eJeff Sharkey unparcel(); 441aeb16e2435f9975b9fa1fc4b747796647a21292eJeff Sharkey mMap.put(key, value); 442d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags &= ~FLAG_HAS_FDS_KNOWN; 443aeb16e2435f9975b9fa1fc4b747796647a21292eJeff Sharkey } 444aeb16e2435f9975b9fa1fc4b747796647a21292eJeff Sharkey 4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a SparceArray of Parcelable values into the mapping of this 4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Bundle, replacing any existing value for the given key. Either key 4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * or value may be null. 4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a SparseArray of Parcelable objects, or null 4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 453c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putSparseParcelableArray(@Nullable String key, 454c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable SparseArray<? extends Parcelable> value) { 4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMap.put(key, value); 457d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags &= ~FLAG_HAS_FDS_KNOWN; 4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts an ArrayList<Integer> value into the mapping of this Bundle, replacing 4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value an ArrayList<Integer> object, or null 4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 467719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 468c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putIntegerArrayList(@Nullable String key, @Nullable ArrayList<Integer> value) { 469719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putIntegerArrayList(key, value); 4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts an ArrayList<String> value into the mapping of this Bundle, replacing 4749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 4779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value an ArrayList<String> object, or null 4789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 479719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 480c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putStringArrayList(@Nullable String key, @Nullable ArrayList<String> value) { 481719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putStringArrayList(key, value); 4829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 48508bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * Inserts an ArrayList<CharSequence> value into the mapping of this Bundle, replacing 48608bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * any existing value for the given key. Either key or value may be null. 48708bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * 48808bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * @param key a String, or null 48908bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * @param value an ArrayList<CharSequence> object, or null 49008bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert */ 491719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 492c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putCharSequenceArrayList(@Nullable String key, 493c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable ArrayList<CharSequence> value) { 494719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putCharSequenceArrayList(key, value); 49508bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert } 49608bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert 49708bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert /** 4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a Serializable value into the mapping of this Bundle, replacing 4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 5009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a Serializable object, or null 5039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 504719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 505c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putSerializable(@Nullable String key, @Nullable Serializable value) { 506719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putSerializable(key, value); 5079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a byte array value into the mapping of this Bundle, replacing 5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a byte array object, or null 5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 516719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 517c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putByteArray(@Nullable String key, @Nullable byte[] value) { 518719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putByteArray(key, value); 5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a short array value into the mapping of this Bundle, replacing 5239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 5249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 5269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a short array object, or null 5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 528719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 529c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putShortArray(@Nullable String key, @Nullable short[] value) { 530719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putShortArray(key, value); 5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a char array value into the mapping of this Bundle, replacing 5359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a char array object, or null 5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 540719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 541c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putCharArray(@Nullable String key, @Nullable char[] value) { 542719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putCharArray(key, value); 5439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a float array value into the mapping of this Bundle, replacing 5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 5489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a float array object, or null 5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 552719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 553c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putFloatArray(@Nullable String key, @Nullable float[] value) { 554719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putFloatArray(key, value); 5559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 55808bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * Inserts a CharSequence array value into the mapping of this Bundle, replacing 55908bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * any existing value for the given key. Either key or value may be null. 56008bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * 56108bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * @param key a String, or null 56208bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * @param value a CharSequence array object, or null 56308bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert */ 564719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 565c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putCharSequenceArray(@Nullable String key, @Nullable CharSequence[] value) { 566719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putCharSequenceArray(key, value); 56708bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert } 56808bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert 56908bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert /** 5709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a Bundle value into the mapping of this Bundle, replacing 5719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 5729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 5749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a Bundle object, or null 5759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 576c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putBundle(@Nullable String key, @Nullable Bundle value) { 5779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 5789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMap.put(key, value); 5799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5823cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * Inserts an {@link IBinder} value into the mapping of this Bundle, replacing 5833cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * any existing value for the given key. Either key or value may be null. 5843cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * 5853cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * <p class="note">You should be very careful when using this function. In many 5863cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * places where Bundles are used (such as inside of Intent objects), the Bundle 5873cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * can live longer inside of another process than the process that had originally 5883cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * created it. In that case, the IBinder you supply here will become invalid 5893cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * when your process goes away, and no longer usable, even if a new process is 5903cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * created for you later on.</p> 5913cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * 5923cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * @param key a String, or null 5933cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * @param value an IBinder object, or null 5943cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn */ 595c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putBinder(@Nullable String key, @Nullable IBinder value) { 5963cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn unparcel(); 5973cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn mMap.put(key, value); 5983cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn } 5993cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn 6003cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn /** 6019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts an IBinder value into the mapping of this Bundle, replacing 6029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 6039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 6059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value an IBinder object, or null 6069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @deprecated 6083cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * @hide This is the old name of the function. 6099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Deprecated 611c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putIBinder(@Nullable String key, @Nullable IBinder value) { 6129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 6139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMap.put(key, value); 6149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or (byte) 0 if 6189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key. 6199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String 6219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a byte value 6229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 623719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 6249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public byte getByte(String key) { 625719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getByte(key); 6269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or defaultValue if 6309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key. 6319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String 6339f6cb87522d395eacd87dff1da525f4dc9809d27Nicolas Klein * @param defaultValue Value to return if key does not exist 6349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a byte value 6359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 636719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 6379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Byte getByte(String key, byte defaultValue) { 638719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getByte(key, defaultValue); 6399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6429f6cb87522d395eacd87dff1da525f4dc9809d27Nicolas Klein * Returns the value associated with the given key, or (char) 0 if 6439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key. 6449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String 6469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a char value 6479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 648719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 6499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public char getChar(String key) { 650719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getChar(key); 6519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6549f6cb87522d395eacd87dff1da525f4dc9809d27Nicolas Klein * Returns the value associated with the given key, or defaultValue if 6559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key. 6569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String 6589f6cb87522d395eacd87dff1da525f4dc9809d27Nicolas Klein * @param defaultValue Value to return if key does not exist 6599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a char value 6609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 661719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 6629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public char getChar(String key, char defaultValue) { 663719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getChar(key, defaultValue); 6649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or (short) 0 if 6689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key. 6699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String 6719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a short value 6729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 673719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 6749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public short getShort(String key) { 675719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getShort(key); 6769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or defaultValue if 6809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key. 6819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String 6839f6cb87522d395eacd87dff1da525f4dc9809d27Nicolas Klein * @param defaultValue Value to return if key does not exist 6849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a short value 6859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 686719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 6879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public short getShort(String key, short defaultValue) { 688719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getShort(key, defaultValue); 6899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or 0.0f if 6939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key. 6949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String 6969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a float value 6979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 698719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 6999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public float getFloat(String key) { 700719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getFloat(key); 7019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or defaultValue if 7059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key. 7069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String 7089f6cb87522d395eacd87dff1da525f4dc9809d27Nicolas Klein * @param defaultValue Value to return if key does not exist 7099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a float value 7109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 711719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 7129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public float getFloat(String key, float defaultValue) { 713719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getFloat(key, defaultValue); 7149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 7189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 7199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 7209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 7229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a CharSequence value, or null 7239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 724719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 725c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 726c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public CharSequence getCharSequence(@Nullable String key) { 727719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getCharSequence(key); 7289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 731e3a7f628c6d9fef42be24999b3137ebe5c6f3525Dianne Hackborn * Returns the value associated with the given key, or defaultValue if 732ca2197b0457b1626b95a053d835ceaca43ac0286Narayan Kamath * no mapping of the desired type exists for the given key or if a null 733ca2197b0457b1626b95a053d835ceaca43ac0286Narayan Kamath * value is explicitly associatd with the given key. 734e3a7f628c6d9fef42be24999b3137ebe5c6f3525Dianne Hackborn * 735e3a7f628c6d9fef42be24999b3137ebe5c6f3525Dianne Hackborn * @param key a String, or null 736ca2197b0457b1626b95a053d835ceaca43ac0286Narayan Kamath * @param defaultValue Value to return if key does not exist or if a null 737ca2197b0457b1626b95a053d835ceaca43ac0286Narayan Kamath * value is associated with the given key. 738116751d84f6d276f2cac7074abd9f8ba23742958Christopher Tate * @return the CharSequence value associated with the given key, or defaultValue 739116751d84f6d276f2cac7074abd9f8ba23742958Christopher Tate * if no valid CharSequence object is currently mapped to that key. 740e3a7f628c6d9fef42be24999b3137ebe5c6f3525Dianne Hackborn */ 741719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 742c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public CharSequence getCharSequence(@Nullable String key, CharSequence defaultValue) { 743719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getCharSequence(key, defaultValue); 744e3a7f628c6d9fef42be24999b3137ebe5c6f3525Dianne Hackborn } 745e3a7f628c6d9fef42be24999b3137ebe5c6f3525Dianne Hackborn 746e3a7f628c6d9fef42be24999b3137ebe5c6f3525Dianne Hackborn /** 7479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 7489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 7499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 7509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 7525ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * @return a Size value, or null 7535ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey */ 754c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 755c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public Size getSize(@Nullable String key) { 7565ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey unparcel(); 7575ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey final Object o = mMap.get(key); 7585ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey try { 7595ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey return (Size) o; 7605ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey } catch (ClassCastException e) { 7615ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey typeWarning(key, o, "Size", e); 7625ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey return null; 7635ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey } 7645ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey } 7655ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey 7665ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey /** 7675ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * Returns the value associated with the given key, or null if 7685ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * no mapping of the desired type exists for the given key or a null 7695ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * value is explicitly associated with the key. 7705ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * 7715ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * @param key a String, or null 7725ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * @return a Size value, or null 7735ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey */ 774c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 775c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public SizeF getSizeF(@Nullable String key) { 7765ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey unparcel(); 7775ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey final Object o = mMap.get(key); 7785ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey try { 7795ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey return (SizeF) o; 7805ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey } catch (ClassCastException e) { 7815ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey typeWarning(key, o, "SizeF", e); 7825ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey return null; 7835ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey } 7845ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey } 7855ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey 7865ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey /** 7875ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * Returns the value associated with the given key, or null if 7885ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * no mapping of the desired type exists for the given key or a null 7895ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * value is explicitly associated with the key. 7905ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * 7915ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * @param key a String, or null 7929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a Bundle value, or null 7939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 794c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 795c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public Bundle getBundle(@Nullable String key) { 7969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 7979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object o = mMap.get(key); 7989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (o == null) { 7999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 8009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 8029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (Bundle) o; 8039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 8049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project typeWarning(key, o, "Bundle", e); 8059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 8069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 8119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 8129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 8139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 8159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a Parcelable value, or null 8169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 817c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 818c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public <T extends Parcelable> T getParcelable(@Nullable String key) { 8199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 8209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object o = mMap.get(key); 8219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (o == null) { 8229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 8239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 8259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (T) o; 8269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 8279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project typeWarning(key, o, "Parcelable", e); 8289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 8299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 8349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 8359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 8369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 8389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a Parcelable[] value, or null 8399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 840c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 841c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public Parcelable[] getParcelableArray(@Nullable String key) { 8429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 8439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object o = mMap.get(key); 8449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (o == null) { 8459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 8469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 8489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (Parcelable[]) o; 8499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 8509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project typeWarning(key, o, "Parcelable[]", e); 8519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 8529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 8579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 8589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 8599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 8619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return an ArrayList<T> value, or null 8629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 863c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 864c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public <T extends Parcelable> ArrayList<T> getParcelableArrayList(@Nullable String key) { 8659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 8669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object o = mMap.get(key); 8679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (o == null) { 8689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 8699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 8719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (ArrayList<T>) o; 8729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 8739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project typeWarning(key, o, "ArrayList", e); 8749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 8759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 8809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 8819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 8829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 8849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a SparseArray of T values, or null 8869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 887c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 888c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public <T extends Parcelable> SparseArray<T> getSparseParcelableArray(@Nullable String key) { 8899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 8909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object o = mMap.get(key); 8919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (o == null) { 8929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 8939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 8959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (SparseArray<T>) o; 8969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 8979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project typeWarning(key, o, "SparseArray", e); 8989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 8999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 9049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 9059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 9069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 9089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a Serializable value, or null 9099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 910719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 911c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 912c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public Serializable getSerializable(@Nullable String key) { 913719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getSerializable(key); 9149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 9189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 9199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 9209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 9229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return an ArrayList<String> value, or null 9239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 924719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 925c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 926c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public ArrayList<Integer> getIntegerArrayList(@Nullable String key) { 927719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getIntegerArrayList(key); 9289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 9329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 9339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 9349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 9369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return an ArrayList<String> value, or null 9379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 938719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 939c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 940c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public ArrayList<String> getStringArrayList(@Nullable String key) { 941719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getStringArrayList(key); 9429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 9469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 9479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 9489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 95008bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * @return an ArrayList<CharSequence> value, or null 95108bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert */ 952719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 953c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 954c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public ArrayList<CharSequence> getCharSequenceArrayList(@Nullable String key) { 955719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getCharSequenceArrayList(key); 95608bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert } 95708bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert 95808bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert /** 95908bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * Returns the value associated with the given key, or null if 96008bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * no mapping of the desired type exists for the given key or a null 9619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 9629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 9649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a byte[] value, or null 9659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 966719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 967c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 968c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public byte[] getByteArray(@Nullable String key) { 969719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getByteArray(key); 9709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 9749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 9759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 9769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 9789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a short[] value, or null 9799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 980719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 981c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 982c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public short[] getShortArray(@Nullable String key) { 983719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getShortArray(key); 9849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 9889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 9899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 9909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 9929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a char[] value, or null 9939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 994719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 995c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 996c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public char[] getCharArray(@Nullable String key) { 997719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getCharArray(key); 9989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 10029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 10039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 10049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 10069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a float[] value, or null 10079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1008719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 1009c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 1010c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public float[] getFloatArray(@Nullable String key) { 1011719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getFloatArray(key); 10129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 10169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 10179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 10189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 102008bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * @return a CharSequence[] value, or null 102108bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert */ 1022719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 1023c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 1024c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public CharSequence[] getCharSequenceArray(@Nullable String key) { 1025719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getCharSequenceArray(key); 102608bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert } 102708bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert 102808bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert /** 102908bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * Returns the value associated with the given key, or null if 103008bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * no mapping of the desired type exists for the given key or a null 103108bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * value is explicitly associated with the key. 103208bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * 103308bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * @param key a String, or null 10349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return an IBinder value, or null 10353cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn */ 1036c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 1037c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public IBinder getBinder(@Nullable String key) { 10383cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn unparcel(); 10393cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn Object o = mMap.get(key); 10403cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn if (o == null) { 10413cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn return null; 10423cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn } 10433cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn try { 10443cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn return (IBinder) o; 10453cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn } catch (ClassCastException e) { 10463cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn typeWarning(key, o, "IBinder", e); 10473cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn return null; 10483cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn } 10493cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn } 10503cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn 10513cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn /** 10523cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * Returns the value associated with the given key, or null if 10533cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * no mapping of the desired type exists for the given key or a null 10543cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * value is explicitly associated with the key. 10553cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * 10563cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * @param key a String, or null 10573cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * @return an IBinder value, or null 10589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @deprecated 10603cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * @hide This is the old name of the function. 10619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 10629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Deprecated 1063c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 1064c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public IBinder getIBinder(@Nullable String key) { 10659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 10669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object o = mMap.get(key); 10679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (o == null) { 10689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 10699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 10719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (IBinder) o; 10729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 10739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project typeWarning(key, o, "IBinder", e); 10749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 10759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final Parcelable.Creator<Bundle> CREATOR = 10799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project new Parcelable.Creator<Bundle>() { 1080719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 10819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Bundle createFromParcel(Parcel in) { 10829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return in.readBundle(); 10839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1085719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 10869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Bundle[] newArray(int size) { 10879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new Bundle[size]; 10889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }; 10909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Report the nature of this Parcelable's contents 10939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1094719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 10959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int describeContents() { 10969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int mask = 0; 10979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (hasFileDescriptors()) { 10989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mask |= Parcelable.CONTENTS_FILE_DESCRIPTOR; 10999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mask; 11019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1102719e6b167041ffaffc2245f692714c8de191863fCraig Mautner 11039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 11049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Writes the Bundle contents to a Parcel, typically in order for 11059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * it to be passed through an IBinder connection. 11069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param parcel The parcel to copy this bundle to. 11079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1108719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 11099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void writeToParcel(Parcel parcel, int flags) { 1110d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey final boolean oldAllowFds = parcel.pushAllowFds((mFlags & FLAG_ALLOW_FDS) != 0); 11119ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn try { 1112719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.writeToParcelInner(parcel, flags); 11139ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn } finally { 1114c04db7e06737c5b9bae276ac462858d44002672eDianne Hackborn parcel.restoreAllowFds(oldAllowFds); 11156aff905048ba3b03724f17e2aba9089872e14cd2Dianne Hackborn } 11169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 11199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Reads the Parcel contents into this Bundle, typically in order for 11209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * it to be passed through an IBinder connection. 11219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param parcel The parcel to overwrite this bundle from. 11229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 11239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void readFromParcel(Parcel parcel) { 1124719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.readFromParcelInner(parcel); 11257410fb4b394c46fcaa195ba1071750469f776c80Jeff Sharkey mFlags = FLAG_HAS_FDS_KNOWN | FLAG_ALLOW_FDS; 1126d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey if (mParcelledData.hasFileDescriptors()) { 1127d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags |= FLAG_HAS_FDS; 1128d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey } 11299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 11329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized String toString() { 11339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mParcelledData != null) { 11348aee64d18b6b90e46e886a80d8de0467d682ddc4Dianne Hackborn if (mParcelledData == EMPTY_PARCEL) { 11358aee64d18b6b90e46e886a80d8de0467d682ddc4Dianne Hackborn return "Bundle[EMPTY_PARCEL]"; 11368aee64d18b6b90e46e886a80d8de0467d682ddc4Dianne Hackborn } else { 11378aee64d18b6b90e46e886a80d8de0467d682ddc4Dianne Hackborn return "Bundle[mParcelledData.dataSize=" + 11388aee64d18b6b90e46e886a80d8de0467d682ddc4Dianne Hackborn mParcelledData.dataSize() + "]"; 11398aee64d18b6b90e46e886a80d8de0467d682ddc4Dianne Hackborn } 11409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return "Bundle[" + mMap.toString() + "]"; 11429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 1144