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 19b87655b3e551c6a32f34084c8533800bbd1aff7dDianne Hackbornimport android.util.ArrayMap; 205ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkeyimport android.util.Size; 215ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkeyimport android.util.SizeF; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.SparseArray; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.Serializable; 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.ArrayList; 26aeb16e2435f9975b9fa1fc4b747796647a21292eJeff Sharkeyimport java.util.List; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.Set; 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * A mapping from String values to various Parcelable types. 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 330a8e160eb56f3b8f504b37349a79ec4edb7e5039Craig Mautnerpublic final class Bundle extends BaseBundle implements Cloneable, Parcelable { 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final Bundle EMPTY; 358aee64d18b6b90e46e886a80d8de0467d682ddc4Dianne Hackborn static final Parcel EMPTY_PARCEL; 36e784d1e4cfeaf3a9accd7caa33c087abd8f39040Dianne Hackborn 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project static { 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project EMPTY = new Bundle(); 39b87655b3e551c6a32f34084c8533800bbd1aff7dDianne Hackborn EMPTY.mMap = ArrayMap.EMPTY; 400a8e160eb56f3b8f504b37349a79ec4edb7e5039Craig Mautner EMPTY_PARCEL = BaseBundle.EMPTY_PARCEL; 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mHasFds = false; 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mFdsKnown = true; 459ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn private boolean mAllowFds = true; 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Constructs a new, empty Bundle. 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Bundle() { 51719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super(); 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Constructs a Bundle whose data is stored as a Parcel. The data 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * will be unparcelled on first contact, using the assigned ClassLoader. 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param parcelledData a Parcel containing a Bundle 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Bundle(Parcel parcelledData) { 61719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super(parcelledData); 62719e6b167041ffaffc2245f692714c8de191863fCraig Mautner 63719e6b167041ffaffc2245f692714c8de191863fCraig Mautner mHasFds = mParcelledData.hasFileDescriptors(); 64719e6b167041ffaffc2245f692714c8de191863fCraig Mautner mFdsKnown = true; 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 676aff905048ba3b03724f17e2aba9089872e14cd2Dianne Hackborn /* package */ Bundle(Parcel parcelledData, int length) { 68719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super(parcelledData, length); 69719e6b167041ffaffc2245f692714c8de191863fCraig Mautner 70719e6b167041ffaffc2245f692714c8de191863fCraig Mautner mHasFds = mParcelledData.hasFileDescriptors(); 71719e6b167041ffaffc2245f692714c8de191863fCraig Mautner mFdsKnown = true; 726aff905048ba3b03724f17e2aba9089872e14cd2Dianne Hackborn } 736aff905048ba3b03724f17e2aba9089872e14cd2Dianne Hackborn 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Constructs a new, empty Bundle that uses a specific ClassLoader for 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * instantiating Parcelable and Serializable objects. 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param loader An explicit ClassLoader to use when instantiating objects 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * inside of the Bundle. 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Bundle(ClassLoader loader) { 82719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super(loader); 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Constructs a new, empty Bundle sized to hold the given number of 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * elements. The Bundle will grow as needed. 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param capacity the initial capacity of the Bundle 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Bundle(int capacity) { 92719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super(capacity); 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Constructs a Bundle containing a copy of the mappings from the given 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Bundle. 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param b a Bundle to be copied. 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Bundle(Bundle b) { 102719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super(b); 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHasFds = b.mHasFds; 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mFdsKnown = b.mFdsKnown; 106719e6b167041ffaffc2245f692714c8de191863fCraig Mautner } 107719e6b167041ffaffc2245f692714c8de191863fCraig Mautner 108719e6b167041ffaffc2245f692714c8de191863fCraig Mautner /** 109719e6b167041ffaffc2245f692714c8de191863fCraig Mautner * Constructs a Bundle containing a copy of the mappings from the given 110719e6b167041ffaffc2245f692714c8de191863fCraig Mautner * PersistableBundle. 111719e6b167041ffaffc2245f692714c8de191863fCraig Mautner * 112719e6b167041ffaffc2245f692714c8de191863fCraig Mautner * @param b a Bundle to be copied. 113719e6b167041ffaffc2245f692714c8de191863fCraig Mautner */ 114719e6b167041ffaffc2245f692714c8de191863fCraig Mautner public Bundle(PersistableBundle b) { 115719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super(b); 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1191877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick * Make a Bundle for a single key/value pair. 1201877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick * 1211877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick * @hide 1221877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick */ 1231877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick public static Bundle forPair(String key, String value) { 1241877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick Bundle b = new Bundle(1); 1251877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick b.putString(key, value); 1261877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick return b; 1271877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick } 1281877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick 1291877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick /** 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Changes the ClassLoader this Bundle uses when instantiating objects. 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param loader An explicit ClassLoader to use when instantiating objects 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * inside of the Bundle. 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 135719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setClassLoader(ClassLoader loader) { 137719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.setClassLoader(loader); 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1415164246d7e47b9c995ca1e1587f3056eb777f60bDianne Hackborn * Return the ClassLoader currently associated with this Bundle. 1425164246d7e47b9c995ca1e1587f3056eb777f60bDianne Hackborn */ 143719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 1445164246d7e47b9c995ca1e1587f3056eb777f60bDianne Hackborn public ClassLoader getClassLoader() { 145719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getClassLoader(); 1465164246d7e47b9c995ca1e1587f3056eb777f60bDianne Hackborn } 1479ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn 1489ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn /** @hide */ 1499ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn public boolean setAllowFds(boolean allowFds) { 1509ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn boolean orig = mAllowFds; 1519ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn mAllowFds = allowFds; 1529ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn return orig; 1539ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn } 1549ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn 1555164246d7e47b9c995ca1e1587f3056eb777f60bDianne Hackborn /** 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Clones the current Bundle. The internal map is cloned, but the keys and 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * values to which it refers are copied by reference. 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Object clone() { 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new Bundle(this); 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Removes all elements from the mapping of this Bundle. 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 167719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void clear() { 169719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.clear(); 170719e6b167041ffaffc2245f692714c8de191863fCraig Mautner 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHasFds = false; 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mFdsKnown = true; 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts all mappings from the given Bundle into this Bundle. 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 178719e6b167041ffaffc2245f692714c8de191863fCraig Mautner * @param bundle a Bundle 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 180719e6b167041ffaffc2245f692714c8de191863fCraig Mautner public void putAll(Bundle bundle) { 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 182719e6b167041ffaffc2245f692714c8de191863fCraig Mautner bundle.unparcel(); 183719e6b167041ffaffc2245f692714c8de191863fCraig Mautner mMap.putAll(bundle.mMap); 1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // fd state is now known if and only if both bundles already knew 186719e6b167041ffaffc2245f692714c8de191863fCraig Mautner mHasFds |= bundle.mHasFds; 187719e6b167041ffaffc2245f692714c8de191863fCraig Mautner mFdsKnown = mFdsKnown && bundle.mFdsKnown; 188719e6b167041ffaffc2245f692714c8de191863fCraig Mautner } 189719e6b167041ffaffc2245f692714c8de191863fCraig Mautner 190719e6b167041ffaffc2245f692714c8de191863fCraig Mautner /** 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Reports whether the bundle contains any parcelled file descriptors. 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean hasFileDescriptors() { 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (!mFdsKnown) { 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean fdFound = false; // keep going until we find one or run out of data 196719e6b167041ffaffc2245f692714c8de191863fCraig Mautner 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mParcelledData != null) { 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mParcelledData.hasFileDescriptors()) { 1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project fdFound = true; 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // It's been unparcelled, so we need to walk the map 203b87655b3e551c6a32f34084c8533800bbd1aff7dDianne Hackborn for (int i=mMap.size()-1; i>=0; i--) { 204b87655b3e551c6a32f34084c8533800bbd1aff7dDianne Hackborn Object obj = mMap.valueAt(i); 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (obj instanceof Parcelable) { 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if ((((Parcelable)obj).describeContents() 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project & Parcelable.CONTENTS_FILE_DESCRIPTOR) != 0) { 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project fdFound = true; 2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project break; 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (obj instanceof Parcelable[]) { 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcelable[] array = (Parcelable[]) obj; 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int n = array.length - 1; n >= 0; n--) { 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if ((array[n].describeContents() 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project & Parcelable.CONTENTS_FILE_DESCRIPTOR) != 0) { 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project fdFound = true; 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project break; 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (obj instanceof SparseArray) { 2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SparseArray<? extends Parcelable> array = 2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project (SparseArray<? extends Parcelable>) obj; 2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int n = array.size() - 1; n >= 0; n--) { 224b94d654d36d6352d56847d877450b80da7e0d5b4Igor Chernyshev if ((array.valueAt(n).describeContents() 2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project & Parcelable.CONTENTS_FILE_DESCRIPTOR) != 0) { 2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project fdFound = true; 2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project break; 2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (obj instanceof ArrayList) { 2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ArrayList array = (ArrayList) obj; 2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // an ArrayList here might contain either Strings or 2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Parcelables; only look inside for Parcelables 234719e6b167041ffaffc2245f692714c8de191863fCraig Mautner if (!array.isEmpty() && (array.get(0) instanceof Parcelable)) { 2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int n = array.size() - 1; n >= 0; n--) { 2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcelable p = (Parcelable) array.get(n); 2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (p != null && ((p.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 } 2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHasFds = fdFound; 2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mFdsKnown = true; 2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mHasFds; 2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 253719e6b167041ffaffc2245f692714c8de191863fCraig Mautner 2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a byte value into the mapping of this Bundle, replacing 2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. 2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a byte 2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 261719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void putByte(String key, byte value) { 263719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putByte(key, value); 2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a char value into the mapping of this Bundle, replacing 2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. 2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a char, or null 2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 273719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void putChar(String key, char value) { 275719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putChar(key, value); 2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a short value into the mapping of this Bundle, replacing 2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. 2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a short 2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 285719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void putShort(String key, short value) { 287719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putShort(key, value); 2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a float value into the mapping of this Bundle, replacing 2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. 2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a float 2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 297719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void putFloat(String key, float value) { 299719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putFloat(key, value); 3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a CharSequence value into the mapping of this Bundle, replacing 3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a CharSequence, or null 3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 309719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void putCharSequence(String key, CharSequence value) { 311719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putCharSequence(key, value); 3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a Parcelable value into the mapping of this Bundle, replacing 3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a Parcelable object, or null 3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void putParcelable(String key, Parcelable value) { 3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMap.put(key, value); 3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mFdsKnown = false; 3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3285ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * Inserts a Size value into the mapping of this Bundle, replacing 3295ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * any existing value for the given key. Either key or value may be null. 3305ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * 3315ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * @param key a String, or null 3325ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * @param value a Size object, or null 3335ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey */ 3345ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey public void putSize(String key, Size value) { 3355ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey unparcel(); 3365ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey mMap.put(key, value); 3375ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey } 3385ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey 3395ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey /** 3405ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * Inserts a SizeF value into the mapping of this Bundle, replacing 3415ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * any existing value for the given key. Either key or value may be null. 3425ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * 3435ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * @param key a String, or null 3445ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * @param value a SizeF object, or null 3455ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey */ 3465ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey public void putSizeF(String key, SizeF value) { 3475ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey unparcel(); 3485ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey mMap.put(key, value); 3495ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey } 3505ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey 3515ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey /** 3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts an array of Parcelable values into the mapping of this Bundle, 3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * replacing any existing value for the given key. Either key or value may 3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * be null. 3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value an array of Parcelable objects, or null 3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void putParcelableArray(String key, Parcelable[] value) { 3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMap.put(key, value); 3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mFdsKnown = false; 3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a List of Parcelable values into the mapping of this Bundle, 3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * replacing any existing value for the given key. Either key or value may 3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * be null. 3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value an ArrayList of Parcelable objects, or null 3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void putParcelableArrayList(String key, 374719e6b167041ffaffc2245f692714c8de191863fCraig Mautner ArrayList<? extends Parcelable> value) { 3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMap.put(key, value); 3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mFdsKnown = false; 3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 380aeb16e2435f9975b9fa1fc4b747796647a21292eJeff Sharkey /** {@hide} */ 381aeb16e2435f9975b9fa1fc4b747796647a21292eJeff Sharkey public void putParcelableList(String key, List<? extends Parcelable> value) { 382aeb16e2435f9975b9fa1fc4b747796647a21292eJeff Sharkey unparcel(); 383aeb16e2435f9975b9fa1fc4b747796647a21292eJeff Sharkey mMap.put(key, value); 384aeb16e2435f9975b9fa1fc4b747796647a21292eJeff Sharkey mFdsKnown = false; 385aeb16e2435f9975b9fa1fc4b747796647a21292eJeff Sharkey } 386aeb16e2435f9975b9fa1fc4b747796647a21292eJeff Sharkey 3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a SparceArray of Parcelable values into the mapping of this 3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Bundle, replacing any existing value for the given key. Either key 3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * or value may be null. 3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a SparseArray of Parcelable objects, or null 3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void putSparseParcelableArray(String key, 3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SparseArray<? extends Parcelable> value) { 3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 3989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMap.put(key, value); 3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mFdsKnown = false; 4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts an ArrayList<Integer> value into the mapping of this Bundle, replacing 4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value an ArrayList<Integer> object, or null 4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 409719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 4109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void putIntegerArrayList(String key, ArrayList<Integer> value) { 411719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putIntegerArrayList(key, value); 4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts an ArrayList<String> value into the mapping of this Bundle, replacing 4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value an ArrayList<String> object, or null 4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 421719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 4229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void putStringArrayList(String key, ArrayList<String> value) { 423719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putStringArrayList(key, value); 4249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 42708bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * Inserts an ArrayList<CharSequence> value into the mapping of this Bundle, replacing 42808bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * any existing value for the given key. Either key or value may be null. 42908bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * 43008bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * @param key a String, or null 43108bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * @param value an ArrayList<CharSequence> object, or null 43208bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert */ 433719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 43408bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert public void putCharSequenceArrayList(String key, ArrayList<CharSequence> value) { 435719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putCharSequenceArrayList(key, value); 43608bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert } 43708bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert 43808bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert /** 4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a Serializable value into the mapping of this Bundle, replacing 4409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a Serializable object, or null 4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 445719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void putSerializable(String key, Serializable value) { 447719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putSerializable(key, value); 4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a byte array value into the mapping of this Bundle, replacing 4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a byte array object, or null 4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 457719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void putByteArray(String key, byte[] value) { 459719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putByteArray(key, value); 4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a short array value into the mapping of this Bundle, replacing 4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a short array object, or null 4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 469719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void putShortArray(String key, short[] value) { 471719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putShortArray(key, value); 4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a char array value into the mapping of this Bundle, replacing 4769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 4779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 4799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a char array object, or null 4809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 481719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 4829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void putCharArray(String key, char[] value) { 483719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putCharArray(key, value); 4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a float array value into the mapping of this Bundle, replacing 4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a float array object, or null 4929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 493719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void putFloatArray(String key, float[] value) { 495719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putFloatArray(key, value); 4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 49908bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * Inserts a CharSequence array value into the mapping of this Bundle, replacing 50008bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * any existing value for the given key. Either key or value may be null. 50108bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * 50208bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * @param key a String, or null 50308bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * @param value a CharSequence array object, or null 50408bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert */ 505719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 50608bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert public void putCharSequenceArray(String key, CharSequence[] value) { 507719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putCharSequenceArray(key, value); 50808bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert } 50908bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert 51008bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert /** 5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a Bundle value into the mapping of this Bundle, replacing 5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a Bundle object, or null 5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void putBundle(String key, Bundle value) { 5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMap.put(key, value); 5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5233cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * Inserts an {@link IBinder} value into the mapping of this Bundle, replacing 5243cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * any existing value for the given key. Either key or value may be null. 5253cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * 5263cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * <p class="note">You should be very careful when using this function. In many 5273cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * places where Bundles are used (such as inside of Intent objects), the Bundle 5283cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * can live longer inside of another process than the process that had originally 5293cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * created it. In that case, the IBinder you supply here will become invalid 5303cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * when your process goes away, and no longer usable, even if a new process is 5313cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * created for you later on.</p> 5323cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * 5333cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * @param key a String, or null 5343cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * @param value an IBinder object, or null 5353cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn */ 5363cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn public void putBinder(String key, IBinder value) { 5373cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn unparcel(); 5383cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn mMap.put(key, value); 5393cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn } 5403cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn 5413cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn /** 5429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts an IBinder value into the mapping of this Bundle, replacing 5439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 5449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value an IBinder object, or null 5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @deprecated 5493cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * @hide This is the old name of the function. 5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Deprecated 5529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void putIBinder(String key, IBinder value) { 5539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 5549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMap.put(key, value); 5559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or (byte) 0 if 5599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key. 5609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String 5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a byte value 5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 564719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 5659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public byte getByte(String key) { 566719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getByte(key); 5679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or defaultValue if 5719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key. 5729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String 5749f6cb87522d395eacd87dff1da525f4dc9809d27Nicolas Klein * @param defaultValue Value to return if key does not exist 5759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a byte value 5769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 577719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 5789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Byte getByte(String key, byte defaultValue) { 579719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getByte(key, defaultValue); 5809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5839f6cb87522d395eacd87dff1da525f4dc9809d27Nicolas Klein * Returns the value associated with the given key, or (char) 0 if 5849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key. 5859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String 5879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a char value 5889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 589719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 5909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public char getChar(String key) { 591719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getChar(key); 5929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5959f6cb87522d395eacd87dff1da525f4dc9809d27Nicolas Klein * Returns the value associated with the given key, or defaultValue if 5969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key. 5979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String 5999f6cb87522d395eacd87dff1da525f4dc9809d27Nicolas Klein * @param defaultValue Value to return if key does not exist 6009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a char value 6019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 602719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 6039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public char getChar(String key, char defaultValue) { 604719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getChar(key, defaultValue); 6059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or (short) 0 if 6099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key. 6109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String 6129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a short value 6139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 614719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 6159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public short getShort(String key) { 616719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getShort(key); 6179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or defaultValue if 6219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key. 6229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String 6249f6cb87522d395eacd87dff1da525f4dc9809d27Nicolas Klein * @param defaultValue Value to return if key does not exist 6259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a short value 6269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 627719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 6289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public short getShort(String key, short defaultValue) { 629719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getShort(key, defaultValue); 6309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or 0.0f if 6349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key. 6359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String 6379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a float value 6389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 639719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 6409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public float getFloat(String key) { 641719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getFloat(key); 6429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or defaultValue if 6469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key. 6479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String 6499f6cb87522d395eacd87dff1da525f4dc9809d27Nicolas Klein * @param defaultValue Value to return if key does not exist 6509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a float value 6519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 652719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 6539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public float getFloat(String key, float defaultValue) { 654719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getFloat(key, defaultValue); 6559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 6599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 6609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 6619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 6639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a CharSequence value, or null 6649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 665719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 6669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public CharSequence getCharSequence(String key) { 667719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getCharSequence(key); 6689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 671e3a7f628c6d9fef42be24999b3137ebe5c6f3525Dianne Hackborn * Returns the value associated with the given key, or defaultValue if 672ca2197b0457b1626b95a053d835ceaca43ac0286Narayan Kamath * no mapping of the desired type exists for the given key or if a null 673ca2197b0457b1626b95a053d835ceaca43ac0286Narayan Kamath * value is explicitly associatd with the given key. 674e3a7f628c6d9fef42be24999b3137ebe5c6f3525Dianne Hackborn * 675e3a7f628c6d9fef42be24999b3137ebe5c6f3525Dianne Hackborn * @param key a String, or null 676ca2197b0457b1626b95a053d835ceaca43ac0286Narayan Kamath * @param defaultValue Value to return if key does not exist or if a null 677ca2197b0457b1626b95a053d835ceaca43ac0286Narayan Kamath * value is associated with the given key. 678116751d84f6d276f2cac7074abd9f8ba23742958Christopher Tate * @return the CharSequence value associated with the given key, or defaultValue 679116751d84f6d276f2cac7074abd9f8ba23742958Christopher Tate * if no valid CharSequence object is currently mapped to that key. 680e3a7f628c6d9fef42be24999b3137ebe5c6f3525Dianne Hackborn */ 681719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 682e3a7f628c6d9fef42be24999b3137ebe5c6f3525Dianne Hackborn public CharSequence getCharSequence(String key, CharSequence defaultValue) { 683719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getCharSequence(key, defaultValue); 684e3a7f628c6d9fef42be24999b3137ebe5c6f3525Dianne Hackborn } 685e3a7f628c6d9fef42be24999b3137ebe5c6f3525Dianne Hackborn 686e3a7f628c6d9fef42be24999b3137ebe5c6f3525Dianne Hackborn /** 6879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 6889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 6899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 6909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 6925ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * @return a Size value, or null 6935ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey */ 6945ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey public Size getSize(String key) { 6955ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey unparcel(); 6965ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey final Object o = mMap.get(key); 6975ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey try { 6985ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey return (Size) o; 6995ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey } catch (ClassCastException e) { 7005ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey typeWarning(key, o, "Size", e); 7015ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey return null; 7025ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey } 7035ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey } 7045ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey 7055ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey /** 7065ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * Returns the value associated with the given key, or null if 7075ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * no mapping of the desired type exists for the given key or a null 7085ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * value is explicitly associated with the key. 7095ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * 7105ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * @param key a String, or null 7115ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * @return a Size value, or null 7125ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey */ 7135ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey public SizeF getSizeF(String key) { 7145ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey unparcel(); 7155ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey final Object o = mMap.get(key); 7165ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey try { 7175ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey return (SizeF) o; 7185ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey } catch (ClassCastException e) { 7195ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey typeWarning(key, o, "SizeF", e); 7205ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey return null; 7215ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey } 7225ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey } 7235ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey 7245ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey /** 7255ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * Returns the value associated with the given key, or null if 7265ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * no mapping of the desired type exists for the given key or a null 7275ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * value is explicitly associated with the key. 7285ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * 7295ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * @param key a String, or null 7309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a Bundle value, or null 7319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Bundle getBundle(String key) { 7339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 7349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object o = mMap.get(key); 7359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (o == null) { 7369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 7379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 7399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (Bundle) o; 7409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 7419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project typeWarning(key, o, "Bundle", e); 7429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 7439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 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 7529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a Parcelable value, or null 7539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public <T extends Parcelable> T getParcelable(String key) { 7559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 7569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object o = mMap.get(key); 7579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (o == null) { 7589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 7599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 7619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (T) o; 7629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 7639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project typeWarning(key, o, "Parcelable", e); 7649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 7659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 7709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 7719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 7729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 7749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a Parcelable[] value, or null 7759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Parcelable[] getParcelableArray(String key) { 7779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 7789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object o = mMap.get(key); 7799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (o == null) { 7809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 7819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 7839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (Parcelable[]) o; 7849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 7859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project typeWarning(key, o, "Parcelable[]", e); 7869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 7879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 7929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 7939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 7949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 7969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return an ArrayList<T> value, or null 7979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public <T extends Parcelable> ArrayList<T> getParcelableArrayList(String key) { 7999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 8009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object o = mMap.get(key); 8019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (o == null) { 8029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 8039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 8059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (ArrayList<T>) o; 8069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 8079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project typeWarning(key, o, "ArrayList", e); 8089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 8099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 8149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 8159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 8169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 8189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a SparseArray of T values, or null 8209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 8219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public <T extends Parcelable> SparseArray<T> getSparseParcelableArray(String key) { 8229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 8239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object o = mMap.get(key); 8249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (o == null) { 8259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 8269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 8289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (SparseArray<T>) o; 8299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 8309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project typeWarning(key, o, "SparseArray", e); 8319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 8329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 8379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 8389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 8399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 8419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a Serializable value, or null 8429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 843719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 8449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Serializable getSerializable(String key) { 845719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getSerializable(key); 8469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 8509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 8519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 8529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 8549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return an ArrayList<String> value, or null 8559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 856719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 8579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ArrayList<Integer> getIntegerArrayList(String key) { 858719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getIntegerArrayList(key); 8599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 8639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 8649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 8659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 8679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return an ArrayList<String> value, or null 8689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 869719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 8709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ArrayList<String> getStringArrayList(String key) { 871719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getStringArrayList(key); 8729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 8769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 8779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 8789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 88008bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * @return an ArrayList<CharSequence> value, or null 88108bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert */ 882719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 88308bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert public ArrayList<CharSequence> getCharSequenceArrayList(String key) { 884719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getCharSequenceArrayList(key); 88508bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert } 88608bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert 88708bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert /** 88808bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * Returns the value associated with the given key, or null if 88908bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * no mapping of the desired type exists for the given key or a null 8909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 8919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 8939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a byte[] value, or null 8949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 895719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 8969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public byte[] getByteArray(String key) { 897719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getByteArray(key); 8989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 9029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 9039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 9049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 9069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a short[] value, or null 9079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 908719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 9099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public short[] getShortArray(String key) { 910719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getShortArray(key); 9119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 9159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 9169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 9179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 9199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a char[] value, or null 9209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 921719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 9229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public char[] getCharArray(String key) { 923719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getCharArray(key); 9249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 9289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 9299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 9309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 9329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a float[] value, or null 9339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 934719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 9359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public float[] getFloatArray(String key) { 936719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getFloatArray(key); 9379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 9419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 9429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 9439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 94508bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * @return a CharSequence[] value, or null 94608bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert */ 947719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 94808bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert public CharSequence[] getCharSequenceArray(String key) { 949719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getCharSequenceArray(key); 95008bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert } 95108bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert 95208bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert /** 95308bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * Returns the value associated with the given key, or null if 95408bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * no mapping of the desired type exists for the given key or a null 95508bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * value is explicitly associated with the key. 95608bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * 95708bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * @param key a String, or null 9589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return an IBinder value, or null 9593cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn */ 9603cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn public IBinder getBinder(String key) { 9613cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn unparcel(); 9623cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn Object o = mMap.get(key); 9633cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn if (o == null) { 9643cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn return null; 9653cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn } 9663cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn try { 9673cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn return (IBinder) o; 9683cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn } catch (ClassCastException e) { 9693cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn typeWarning(key, o, "IBinder", e); 9703cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn return null; 9713cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn } 9723cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn } 9733cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn 9743cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn /** 9753cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * Returns the value associated with the given key, or null if 9763cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * no mapping of the desired type exists for the given key or a null 9773cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * value is explicitly associated with the key. 9783cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * 9793cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * @param key a String, or null 9803cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * @return an IBinder value, or null 9819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @deprecated 9833cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * @hide This is the old name of the function. 9849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 9859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Deprecated 9869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public IBinder getIBinder(String key) { 9879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 9889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object o = mMap.get(key); 9899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (o == null) { 9909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 9919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 9939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (IBinder) o; 9949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 9959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project typeWarning(key, o, "IBinder", e); 9969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 9979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final Parcelable.Creator<Bundle> CREATOR = 10019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project new Parcelable.Creator<Bundle>() { 1002719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 10039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Bundle createFromParcel(Parcel in) { 10049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return in.readBundle(); 10059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1007719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 10089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Bundle[] newArray(int size) { 10099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new Bundle[size]; 10109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }; 10129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Report the nature of this Parcelable's contents 10159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1016719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 10179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int describeContents() { 10189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int mask = 0; 10199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (hasFileDescriptors()) { 10209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mask |= Parcelable.CONTENTS_FILE_DESCRIPTOR; 10219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mask; 10239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1024719e6b167041ffaffc2245f692714c8de191863fCraig Mautner 10259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Writes the Bundle contents to a Parcel, typically in order for 10279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * it to be passed through an IBinder connection. 10289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param parcel The parcel to copy this bundle to. 10299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1030719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 10319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void writeToParcel(Parcel parcel, int flags) { 1032c04db7e06737c5b9bae276ac462858d44002672eDianne Hackborn final boolean oldAllowFds = parcel.pushAllowFds(mAllowFds); 10339ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn try { 1034719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.writeToParcelInner(parcel, flags); 10359ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn } finally { 1036c04db7e06737c5b9bae276ac462858d44002672eDianne Hackborn parcel.restoreAllowFds(oldAllowFds); 10376aff905048ba3b03724f17e2aba9089872e14cd2Dianne Hackborn } 10389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Reads the Parcel contents into this Bundle, typically in order for 10429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * it to be passed through an IBinder connection. 10439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param parcel The parcel to overwrite this bundle from. 10449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 10459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void readFromParcel(Parcel parcel) { 1046719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.readFromParcelInner(parcel); 1047719e6b167041ffaffc2245f692714c8de191863fCraig Mautner mHasFds = mParcelledData.hasFileDescriptors(); 10484a7d824c3b41eafc4ff91d3253ff8a9ebd60a454Dianne Hackborn mFdsKnown = true; 10499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 10529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized String toString() { 10539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mParcelledData != null) { 10548aee64d18b6b90e46e886a80d8de0467d682ddc4Dianne Hackborn if (mParcelledData == EMPTY_PARCEL) { 10558aee64d18b6b90e46e886a80d8de0467d682ddc4Dianne Hackborn return "Bundle[EMPTY_PARCEL]"; 10568aee64d18b6b90e46e886a80d8de0467d682ddc4Dianne Hackborn } else { 10578aee64d18b6b90e46e886a80d8de0467d682ddc4Dianne Hackborn return "Bundle[mParcelledData.dataSize=" + 10588aee64d18b6b90e46e886a80d8de0467d682ddc4Dianne Hackborn mParcelledData.dataSize() + "]"; 10598aee64d18b6b90e46e886a80d8de0467d682ddc4Dianne Hackborn } 10609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return "Bundle[" + mMap.toString() + "]"; 10629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1063719e6b167041ffaffc2245f692714c8de191863fCraig Mautner 10649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 1065