Bundle.java revision 97f82f28da5a2d3bc6229fee9ce493dc037727b9
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.os; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 19c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedyimport android.annotation.Nullable; 20b87655b3e551c6a32f34084c8533800bbd1aff7dDianne Hackbornimport android.util.ArrayMap; 215ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkeyimport android.util.Size; 225ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkeyimport android.util.SizeF; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.SparseArray; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.Serializable; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.ArrayList; 27aeb16e2435f9975b9fa1fc4b747796647a21292eJeff Sharkeyimport java.util.List; 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 30d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey * A mapping from String keys to various {@link Parcelable} values. 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 32d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey * @see PersistableBundle 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 340a8e160eb56f3b8f504b37349a79ec4edb7e5039Craig Mautnerpublic final class Bundle extends BaseBundle implements Cloneable, Parcelable { 35d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey private static final int FLAG_HAS_FDS = 1 << 8; 36d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey private static final int FLAG_HAS_FDS_KNOWN = 1 << 9; 37d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey private static final int FLAG_ALLOW_FDS = 1 << 10; 38d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final Bundle EMPTY; 40d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey 4197f82f28da5a2d3bc6229fee9ce493dc037727b9Makoto Onuki /** 4297f82f28da5a2d3bc6229fee9ce493dc037727b9Makoto Onuki * Special extras used to denote extras have been stripped off. 4397f82f28da5a2d3bc6229fee9ce493dc037727b9Makoto Onuki * @hide 4497f82f28da5a2d3bc6229fee9ce493dc037727b9Makoto Onuki */ 4597f82f28da5a2d3bc6229fee9ce493dc037727b9Makoto Onuki public static final Bundle STRIPPED; 4697f82f28da5a2d3bc6229fee9ce493dc037727b9Makoto Onuki 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project static { 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project EMPTY = new Bundle(); 49b87655b3e551c6a32f34084c8533800bbd1aff7dDianne Hackborn EMPTY.mMap = ArrayMap.EMPTY; 5097f82f28da5a2d3bc6229fee9ce493dc037727b9Makoto Onuki 5197f82f28da5a2d3bc6229fee9ce493dc037727b9Makoto Onuki STRIPPED = new Bundle(); 5297f82f28da5a2d3bc6229fee9ce493dc037727b9Makoto Onuki STRIPPED.putInt("STRIPPED", 1); 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Constructs a new, empty Bundle. 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Bundle() { 59719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super(); 607410fb4b394c46fcaa195ba1071750469f776c80Jeff Sharkey mFlags = FLAG_HAS_FDS_KNOWN | FLAG_ALLOW_FDS; 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Constructs a Bundle whose data is stored as a Parcel. The data 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * will be unparcelled on first contact, using the assigned ClassLoader. 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param parcelledData a Parcel containing a Bundle 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Bundle(Parcel parcelledData) { 70719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super(parcelledData); 717410fb4b394c46fcaa195ba1071750469f776c80Jeff Sharkey mFlags = FLAG_HAS_FDS_KNOWN | FLAG_ALLOW_FDS; 72d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey if (mParcelledData.hasFileDescriptors()) { 73d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags |= FLAG_HAS_FDS; 74d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey } 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 776aff905048ba3b03724f17e2aba9089872e14cd2Dianne Hackborn /* package */ Bundle(Parcel parcelledData, int length) { 78719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super(parcelledData, length); 797410fb4b394c46fcaa195ba1071750469f776c80Jeff Sharkey mFlags = FLAG_HAS_FDS_KNOWN | FLAG_ALLOW_FDS; 80d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey if (mParcelledData.hasFileDescriptors()) { 81d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags |= FLAG_HAS_FDS; 82d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey } 836aff905048ba3b03724f17e2aba9089872e14cd2Dianne Hackborn } 846aff905048ba3b03724f17e2aba9089872e14cd2Dianne Hackborn 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Constructs a new, empty Bundle that uses a specific ClassLoader for 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * instantiating Parcelable and Serializable objects. 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param loader An explicit ClassLoader to use when instantiating objects 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * inside of the Bundle. 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Bundle(ClassLoader loader) { 93719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super(loader); 947410fb4b394c46fcaa195ba1071750469f776c80Jeff Sharkey mFlags = FLAG_HAS_FDS_KNOWN | FLAG_ALLOW_FDS; 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Constructs a new, empty Bundle sized to hold the given number of 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * elements. The Bundle will grow as needed. 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param capacity the initial capacity of the Bundle 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Bundle(int capacity) { 104719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super(capacity); 1057410fb4b394c46fcaa195ba1071750469f776c80Jeff Sharkey mFlags = FLAG_HAS_FDS_KNOWN | FLAG_ALLOW_FDS; 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Constructs a Bundle containing a copy of the mappings from the given 1102510b37518fd2fa227a9399b9269dd9a04ceb8d9Dianne Hackborn * Bundle. Does only a shallow copy of the original Bundle -- see 1112510b37518fd2fa227a9399b9269dd9a04ceb8d9Dianne Hackborn * {@link #deepCopy()} if that is not what you want. 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param b a Bundle to be copied. 1142510b37518fd2fa227a9399b9269dd9a04ceb8d9Dianne Hackborn * 1152510b37518fd2fa227a9399b9269dd9a04ceb8d9Dianne Hackborn * @see #deepCopy() 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Bundle(Bundle b) { 118719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super(b); 119d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags = b.mFlags; 120719e6b167041ffaffc2245f692714c8de191863fCraig Mautner } 121719e6b167041ffaffc2245f692714c8de191863fCraig Mautner 122719e6b167041ffaffc2245f692714c8de191863fCraig Mautner /** 123719e6b167041ffaffc2245f692714c8de191863fCraig Mautner * Constructs a Bundle containing a copy of the mappings from the given 1242510b37518fd2fa227a9399b9269dd9a04ceb8d9Dianne Hackborn * PersistableBundle. Does only a shallow copy of the PersistableBundle -- see 1252510b37518fd2fa227a9399b9269dd9a04ceb8d9Dianne Hackborn * {@link PersistableBundle#deepCopy()} if you don't want that. 126719e6b167041ffaffc2245f692714c8de191863fCraig Mautner * 1272510b37518fd2fa227a9399b9269dd9a04ceb8d9Dianne Hackborn * @param b a PersistableBundle to be copied. 128719e6b167041ffaffc2245f692714c8de191863fCraig Mautner */ 129719e6b167041ffaffc2245f692714c8de191863fCraig Mautner public Bundle(PersistableBundle b) { 130719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super(b); 1317410fb4b394c46fcaa195ba1071750469f776c80Jeff Sharkey mFlags = FLAG_HAS_FDS_KNOWN | FLAG_ALLOW_FDS; 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 135ba60473a6539d16bef8720d79b5559512303bddfDianne Hackborn * Constructs a Bundle without initializing it. 136ba60473a6539d16bef8720d79b5559512303bddfDianne Hackborn */ 137ba60473a6539d16bef8720d79b5559512303bddfDianne Hackborn Bundle(boolean doInit) { 138ba60473a6539d16bef8720d79b5559512303bddfDianne Hackborn super(doInit); 139ba60473a6539d16bef8720d79b5559512303bddfDianne Hackborn } 140ba60473a6539d16bef8720d79b5559512303bddfDianne Hackborn 141ba60473a6539d16bef8720d79b5559512303bddfDianne Hackborn /** 1421877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick * Make a Bundle for a single key/value pair. 1431877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick * 1441877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick * @hide 1451877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick */ 1461877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick public static Bundle forPair(String key, String value) { 1471877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick Bundle b = new Bundle(1); 1481877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick b.putString(key, value); 1491877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick return b; 1501877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick } 1511877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick 1521877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick /** 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Changes the ClassLoader this Bundle uses when instantiating objects. 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param loader An explicit ClassLoader to use when instantiating objects 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * inside of the Bundle. 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 158719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setClassLoader(ClassLoader loader) { 160719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.setClassLoader(loader); 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1645164246d7e47b9c995ca1e1587f3056eb777f60bDianne Hackborn * Return the ClassLoader currently associated with this Bundle. 1655164246d7e47b9c995ca1e1587f3056eb777f60bDianne Hackborn */ 166719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 1675164246d7e47b9c995ca1e1587f3056eb777f60bDianne Hackborn public ClassLoader getClassLoader() { 168719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getClassLoader(); 1695164246d7e47b9c995ca1e1587f3056eb777f60bDianne Hackborn } 1709ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn 171d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey /** {@hide} */ 1729ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn public boolean setAllowFds(boolean allowFds) { 173d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey final boolean orig = (mFlags & FLAG_ALLOW_FDS) != 0; 174d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey if (allowFds) { 175d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags |= FLAG_ALLOW_FDS; 176d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey } else { 177d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags &= ~FLAG_ALLOW_FDS; 178d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey } 1799ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn return orig; 1809ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn } 1819ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn 1825164246d7e47b9c995ca1e1587f3056eb777f60bDianne Hackborn /** 183d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey * Mark if this Bundle is okay to "defuse." That is, it's okay for system 184d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey * processes to ignore any {@link BadParcelableException} encountered when 185d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey * unparceling it, leaving an empty bundle in its place. 186d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey * <p> 187d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey * This should <em>only</em> be set when the Bundle reaches its final 188d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey * destination, otherwise a system process may clobber contents that were 189d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey * destined for an app that could have unparceled them. 190d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey * 191d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey * @hide 192d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey */ 193d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey public void setDefusable(boolean defusable) { 194d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey if (defusable) { 195d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags |= FLAG_DEFUSABLE; 196d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey } else { 197d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags &= ~FLAG_DEFUSABLE; 198d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey } 199d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey } 200d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey 201a04c7a7c6442b8c6f87f5dd11fc5659cdb92deccJeff Sharkey /** {@hide} */ 202a04c7a7c6442b8c6f87f5dd11fc5659cdb92deccJeff Sharkey public static Bundle setDefusable(Bundle bundle, boolean defusable) { 203a04c7a7c6442b8c6f87f5dd11fc5659cdb92deccJeff Sharkey if (bundle != null) { 204a04c7a7c6442b8c6f87f5dd11fc5659cdb92deccJeff Sharkey bundle.setDefusable(defusable); 205a04c7a7c6442b8c6f87f5dd11fc5659cdb92deccJeff Sharkey } 206a04c7a7c6442b8c6f87f5dd11fc5659cdb92deccJeff Sharkey return bundle; 207a04c7a7c6442b8c6f87f5dd11fc5659cdb92deccJeff Sharkey } 208a04c7a7c6442b8c6f87f5dd11fc5659cdb92deccJeff Sharkey 209d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey /** 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Clones the current Bundle. The internal map is cloned, but the keys and 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * values to which it refers are copied by reference. 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Object clone() { 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new Bundle(this); 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 219ba60473a6539d16bef8720d79b5559512303bddfDianne Hackborn * Make a deep copy of the given bundle. Traverses into inner containers and copies 220ba60473a6539d16bef8720d79b5559512303bddfDianne Hackborn * them as well, so they are not shared across bundles. Will traverse in to 221ba60473a6539d16bef8720d79b5559512303bddfDianne Hackborn * {@link Bundle}, {@link PersistableBundle}, {@link ArrayList}, and all types of 222ba60473a6539d16bef8720d79b5559512303bddfDianne Hackborn * primitive arrays. Other types of objects (such as Parcelable or Serializable) 223ba60473a6539d16bef8720d79b5559512303bddfDianne Hackborn * are referenced as-is and not copied in any way. 224ba60473a6539d16bef8720d79b5559512303bddfDianne Hackborn */ 2252510b37518fd2fa227a9399b9269dd9a04ceb8d9Dianne Hackborn public Bundle deepCopy() { 226ba60473a6539d16bef8720d79b5559512303bddfDianne Hackborn Bundle b = new Bundle(false); 227ba60473a6539d16bef8720d79b5559512303bddfDianne Hackborn b.copyInternal(this, true); 228ba60473a6539d16bef8720d79b5559512303bddfDianne Hackborn return b; 229ba60473a6539d16bef8720d79b5559512303bddfDianne Hackborn } 230ba60473a6539d16bef8720d79b5559512303bddfDianne Hackborn 231ba60473a6539d16bef8720d79b5559512303bddfDianne Hackborn /** 2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Removes all elements from the mapping of this Bundle. 2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 234719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void clear() { 236719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.clear(); 2377410fb4b394c46fcaa195ba1071750469f776c80Jeff Sharkey mFlags = FLAG_HAS_FDS_KNOWN | FLAG_ALLOW_FDS; 2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 241250985f556a0cb60ced826b8c9a34a11e29db008Christopher Tate * Removes any entry with the given key from the mapping of this Bundle. 242250985f556a0cb60ced826b8c9a34a11e29db008Christopher Tate * 243250985f556a0cb60ced826b8c9a34a11e29db008Christopher Tate * @param key a String key 244250985f556a0cb60ced826b8c9a34a11e29db008Christopher Tate */ 245250985f556a0cb60ced826b8c9a34a11e29db008Christopher Tate public void remove(String key) { 246250985f556a0cb60ced826b8c9a34a11e29db008Christopher Tate super.remove(key); 247250985f556a0cb60ced826b8c9a34a11e29db008Christopher Tate if ((mFlags & FLAG_HAS_FDS) != 0) { 248250985f556a0cb60ced826b8c9a34a11e29db008Christopher Tate mFlags &= ~FLAG_HAS_FDS_KNOWN; 249250985f556a0cb60ced826b8c9a34a11e29db008Christopher Tate } 250250985f556a0cb60ced826b8c9a34a11e29db008Christopher Tate } 251250985f556a0cb60ced826b8c9a34a11e29db008Christopher Tate 252250985f556a0cb60ced826b8c9a34a11e29db008Christopher Tate /** 2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts all mappings from the given Bundle into this Bundle. 2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 255719e6b167041ffaffc2245f692714c8de191863fCraig Mautner * @param bundle a Bundle 2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 257719e6b167041ffaffc2245f692714c8de191863fCraig Mautner public void putAll(Bundle bundle) { 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 259719e6b167041ffaffc2245f692714c8de191863fCraig Mautner bundle.unparcel(); 260719e6b167041ffaffc2245f692714c8de191863fCraig Mautner mMap.putAll(bundle.mMap); 2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 262d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey // FD state is now known if and only if both bundles already knew 263d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey if ((bundle.mFlags & FLAG_HAS_FDS) != 0) { 264d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags |= FLAG_HAS_FDS; 265d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey } 266d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey if ((bundle.mFlags & FLAG_HAS_FDS_KNOWN) == 0) { 267d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags &= ~FLAG_HAS_FDS_KNOWN; 268d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey } 269719e6b167041ffaffc2245f692714c8de191863fCraig Mautner } 270719e6b167041ffaffc2245f692714c8de191863fCraig Mautner 271719e6b167041ffaffc2245f692714c8de191863fCraig Mautner /** 272fab200fdad9efd50c58b7bafef07c779d3256d7bSudheer Shanka * Return the size of {@link #mParcelledData} in bytes if available, otherwise {@code 0}. 273fab200fdad9efd50c58b7bafef07c779d3256d7bSudheer Shanka * 274fab200fdad9efd50c58b7bafef07c779d3256d7bSudheer Shanka * @hide 275fab200fdad9efd50c58b7bafef07c779d3256d7bSudheer Shanka */ 276fab200fdad9efd50c58b7bafef07c779d3256d7bSudheer Shanka public int getSize() { 277fab200fdad9efd50c58b7bafef07c779d3256d7bSudheer Shanka if (mParcelledData != null) { 278fab200fdad9efd50c58b7bafef07c779d3256d7bSudheer Shanka return mParcelledData.dataSize(); 279fab200fdad9efd50c58b7bafef07c779d3256d7bSudheer Shanka } else { 280fab200fdad9efd50c58b7bafef07c779d3256d7bSudheer Shanka return 0; 281fab200fdad9efd50c58b7bafef07c779d3256d7bSudheer Shanka } 282fab200fdad9efd50c58b7bafef07c779d3256d7bSudheer Shanka } 283fab200fdad9efd50c58b7bafef07c779d3256d7bSudheer Shanka 284fab200fdad9efd50c58b7bafef07c779d3256d7bSudheer Shanka /** 2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Reports whether the bundle contains any parcelled file descriptors. 2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean hasFileDescriptors() { 288d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey if ((mFlags & FLAG_HAS_FDS_KNOWN) == 0) { 2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean fdFound = false; // keep going until we find one or run out of data 290719e6b167041ffaffc2245f692714c8de191863fCraig Mautner 2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mParcelledData != null) { 2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mParcelledData.hasFileDescriptors()) { 2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project fdFound = true; 2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // It's been unparcelled, so we need to walk the map 297b87655b3e551c6a32f34084c8533800bbd1aff7dDianne Hackborn for (int i=mMap.size()-1; i>=0; i--) { 298b87655b3e551c6a32f34084c8533800bbd1aff7dDianne Hackborn Object obj = mMap.valueAt(i); 2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (obj instanceof Parcelable) { 3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if ((((Parcelable)obj).describeContents() 3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project & Parcelable.CONTENTS_FILE_DESCRIPTOR) != 0) { 3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project fdFound = true; 3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project break; 3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (obj instanceof Parcelable[]) { 3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcelable[] array = (Parcelable[]) obj; 3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int n = array.length - 1; n >= 0; n--) { 308e58c7858a39d58a222fe8302dc5ffbe4a25c5bf1Taiju Tsuiki Parcelable p = array[n]; 309e58c7858a39d58a222fe8302dc5ffbe4a25c5bf1Taiju Tsuiki if (p != null && ((p.describeContents() 310e58c7858a39d58a222fe8302dc5ffbe4a25c5bf1Taiju Tsuiki & Parcelable.CONTENTS_FILE_DESCRIPTOR) != 0)) { 3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project fdFound = true; 3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project break; 3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (obj instanceof SparseArray) { 3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SparseArray<? extends Parcelable> array = 3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project (SparseArray<? extends Parcelable>) obj; 3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int n = array.size() - 1; n >= 0; n--) { 319ecd21848731f55978cdac739e6d4460a83449202Taiju Tsuiki Parcelable p = array.valueAt(n); 320ecd21848731f55978cdac739e6d4460a83449202Taiju Tsuiki if (p != null && (p.describeContents() 3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project & Parcelable.CONTENTS_FILE_DESCRIPTOR) != 0) { 3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project fdFound = true; 3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project break; 3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (obj instanceof ArrayList) { 3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ArrayList array = (ArrayList) obj; 3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // an ArrayList here might contain either Strings or 3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Parcelables; only look inside for Parcelables 330719e6b167041ffaffc2245f692714c8de191863fCraig Mautner if (!array.isEmpty() && (array.get(0) instanceof Parcelable)) { 3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int n = array.size() - 1; n >= 0; n--) { 3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcelable p = (Parcelable) array.get(n); 3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (p != null && ((p.describeContents() 3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project & Parcelable.CONTENTS_FILE_DESCRIPTOR) != 0)) { 3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project fdFound = true; 3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project break; 3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 344d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey if (fdFound) { 345d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags |= FLAG_HAS_FDS; 346250985f556a0cb60ced826b8c9a34a11e29db008Christopher Tate } else { 347250985f556a0cb60ced826b8c9a34a11e29db008Christopher Tate mFlags &= ~FLAG_HAS_FDS; 348d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey } 349d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags |= FLAG_HAS_FDS_KNOWN; 3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 351d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey return (mFlags & FLAG_HAS_FDS) != 0; 3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 353719e6b167041ffaffc2245f692714c8de191863fCraig Mautner 3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 355a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn * Filter values in Bundle to only basic types. 356a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn * @hide 357a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn */ 358851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn public Bundle filterValues() { 359a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn unparcel(); 360851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn Bundle bundle = this; 361a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn if (mMap != null) { 362851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn ArrayMap<String, Object> map = mMap; 363851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn for (int i = map.size() - 1; i >= 0; i--) { 364851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn Object value = map.valueAt(i); 365a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn if (PersistableBundle.isValidType(value)) { 366a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn continue; 367a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn } 368a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn if (value instanceof Bundle) { 369851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn Bundle newBundle = ((Bundle)value).filterValues(); 370851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn if (newBundle != value) { 371851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn if (map == mMap) { 372851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn // The filter had to generate a new bundle, but we have not yet 373851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn // created a new one here. Do that now. 374851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn bundle = new Bundle(this); 375851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn // Note the ArrayMap<> constructor is guaranteed to generate 376851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn // a new object with items in the same order as the original. 377851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn map = bundle.mMap; 378851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn } 379851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn // Replace this current entry with the new child bundle. 380851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn map.setValueAt(i, newBundle); 381851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn } 382851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn continue; 383a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn } 384a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn if (value.getClass().getName().startsWith("android.")) { 385a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn continue; 386a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn } 387851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn if (map == mMap) { 388851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn // This is the first time we have had to remove something, that means we 389851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn // need to switch to a new Bundle. 390851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn bundle = new Bundle(this); 391851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn // Note the ArrayMap<> constructor is guaranteed to generate 392851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn // a new object with items in the same order as the original. 393851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn map = bundle.mMap; 394851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn } 395851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn map.removeAt(i); 396a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn } 397a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn } 398250985f556a0cb60ced826b8c9a34a11e29db008Christopher Tate mFlags |= FLAG_HAS_FDS_KNOWN; 399250985f556a0cb60ced826b8c9a34a11e29db008Christopher Tate mFlags &= ~FLAG_HAS_FDS; 400851ec49de73913547a51476e9c80cccfd7c15572Dianne Hackborn return bundle; 401a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn } 402a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn 403a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9dDianne Hackborn /** 4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a byte value into the mapping of this Bundle, replacing 4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. 4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a byte 4099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 410719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 411c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putByte(@Nullable String key, byte value) { 412719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putByte(key, value); 4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a char value into the mapping of this Bundle, replacing 4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. 4189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 420c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy * @param value a char 4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 422719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 423c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putChar(@Nullable String key, char value) { 424719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putChar(key, value); 4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a short value into the mapping of this Bundle, replacing 4299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. 4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a short 4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 434719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 435c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putShort(@Nullable String key, short value) { 436719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putShort(key, value); 4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a float value into the mapping of this Bundle, replacing 4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. 4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a float 4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 446719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 447c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putFloat(@Nullable String key, float value) { 448719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putFloat(key, value); 4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a CharSequence value into the mapping of this Bundle, replacing 4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a CharSequence, or null 4579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 458719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 459c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putCharSequence(@Nullable String key, @Nullable CharSequence value) { 460719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putCharSequence(key, value); 4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a Parcelable value into the mapping of this Bundle, replacing 4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a Parcelable object, or null 4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 470c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putParcelable(@Nullable String key, @Nullable Parcelable value) { 4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMap.put(key, value); 473d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags &= ~FLAG_HAS_FDS_KNOWN; 4749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4775ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * Inserts a Size value into the mapping of this Bundle, replacing 4785ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * any existing value for the given key. Either key or value may be null. 4795ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * 4805ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * @param key a String, or null 4815ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * @param value a Size object, or null 4825ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey */ 483c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putSize(@Nullable String key, @Nullable Size value) { 4845ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey unparcel(); 4855ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey mMap.put(key, value); 4865ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey } 4875ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey 4885ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey /** 4895ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * Inserts a SizeF value into the mapping of this Bundle, replacing 4905ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * any existing value for the given key. Either key or value may be null. 4915ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * 4925ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * @param key a String, or null 4935ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * @param value a SizeF object, or null 4945ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey */ 495c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putSizeF(@Nullable String key, @Nullable SizeF value) { 4965ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey unparcel(); 4975ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey mMap.put(key, value); 4985ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey } 4995ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey 5005ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey /** 5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts an array of Parcelable values into the mapping of this Bundle, 5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * replacing any existing value for the given key. Either key or value may 5039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * be null. 5049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 5069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value an array of Parcelable objects, or null 5079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 508c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putParcelableArray(@Nullable String key, @Nullable Parcelable[] value) { 5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMap.put(key, value); 511d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags &= ~FLAG_HAS_FDS_KNOWN; 5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a List of Parcelable values into the mapping of this Bundle, 5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * replacing any existing value for the given key. Either key or value may 5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * be null. 5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value an ArrayList of Parcelable objects, or null 5219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 522c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putParcelableArrayList(@Nullable String key, 523c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable ArrayList<? extends Parcelable> value) { 5249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMap.put(key, value); 526d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags &= ~FLAG_HAS_FDS_KNOWN; 5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 529aeb16e2435f9975b9fa1fc4b747796647a21292eJeff Sharkey /** {@hide} */ 530aeb16e2435f9975b9fa1fc4b747796647a21292eJeff Sharkey public void putParcelableList(String key, List<? extends Parcelable> value) { 531aeb16e2435f9975b9fa1fc4b747796647a21292eJeff Sharkey unparcel(); 532aeb16e2435f9975b9fa1fc4b747796647a21292eJeff Sharkey mMap.put(key, value); 533d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags &= ~FLAG_HAS_FDS_KNOWN; 534aeb16e2435f9975b9fa1fc4b747796647a21292eJeff Sharkey } 535aeb16e2435f9975b9fa1fc4b747796647a21292eJeff Sharkey 5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a SparceArray of Parcelable values into the mapping of this 5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Bundle, replacing any existing value for the given key. Either key 5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * or value may be null. 5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 5429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a SparseArray of Parcelable objects, or null 5439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 544c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putSparseParcelableArray(@Nullable String key, 545c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable SparseArray<? extends Parcelable> value) { 5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMap.put(key, value); 548d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags &= ~FLAG_HAS_FDS_KNOWN; 5499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts an ArrayList<Integer> value into the mapping of this Bundle, replacing 5539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 5549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value an ArrayList<Integer> object, or null 5579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 558719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 559c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putIntegerArrayList(@Nullable String key, @Nullable ArrayList<Integer> value) { 560719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putIntegerArrayList(key, value); 5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts an ArrayList<String> value into the mapping of this Bundle, replacing 5659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 5669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 5689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value an ArrayList<String> object, or null 5699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 570719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 571c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putStringArrayList(@Nullable String key, @Nullable ArrayList<String> value) { 572719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putStringArrayList(key, value); 5739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 57608bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * Inserts an ArrayList<CharSequence> value into the mapping of this Bundle, replacing 57708bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * any existing value for the given key. Either key or value may be null. 57808bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * 57908bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * @param key a String, or null 58008bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * @param value an ArrayList<CharSequence> object, or null 58108bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert */ 582719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 583c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putCharSequenceArrayList(@Nullable String key, 584c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable ArrayList<CharSequence> value) { 585719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putCharSequenceArrayList(key, value); 58608bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert } 58708bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert 58808bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert /** 5899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a Serializable value into the mapping of this Bundle, replacing 5909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 5919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 5939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a Serializable object, or null 5949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 595719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 596c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putSerializable(@Nullable String key, @Nullable Serializable value) { 597719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putSerializable(key, value); 5989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a byte array value into the mapping of this Bundle, replacing 6029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 6039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 6059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a byte array object, or null 6069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 607719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 608c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putByteArray(@Nullable String key, @Nullable byte[] value) { 609719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putByteArray(key, value); 6109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a short array value into the mapping of this Bundle, replacing 6149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 6159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 6179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a short array object, or null 6189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 619719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 620c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putShortArray(@Nullable String key, @Nullable short[] value) { 621719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putShortArray(key, value); 6229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a char array value into the mapping of this Bundle, replacing 6269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 6279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 6299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a char array object, or null 6309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 631719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 632c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putCharArray(@Nullable String key, @Nullable char[] value) { 633719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putCharArray(key, value); 6349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a float array value into the mapping of this Bundle, replacing 6389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 6399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 6419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a float array object, or null 6429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 643719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 644c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putFloatArray(@Nullable String key, @Nullable float[] value) { 645719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putFloatArray(key, value); 6469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 64908bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * Inserts a CharSequence array value into the mapping of this Bundle, replacing 65008bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * any existing value for the given key. Either key or value may be null. 65108bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * 65208bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * @param key a String, or null 65308bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * @param value a CharSequence array object, or null 65408bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert */ 655719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 656c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putCharSequenceArray(@Nullable String key, @Nullable CharSequence[] value) { 657719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.putCharSequenceArray(key, value); 65808bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert } 65908bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert 66008bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert /** 6619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts a Bundle value into the mapping of this Bundle, replacing 6629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 6639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 6659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value a Bundle object, or null 6669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 667c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putBundle(@Nullable String key, @Nullable Bundle value) { 6689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 6699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMap.put(key, value); 6709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6733cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * Inserts an {@link IBinder} value into the mapping of this Bundle, replacing 6743cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * any existing value for the given key. Either key or value may be null. 6753cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * 6763cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * <p class="note">You should be very careful when using this function. In many 6773cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * places where Bundles are used (such as inside of Intent objects), the Bundle 6783cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * can live longer inside of another process than the process that had originally 6793cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * created it. In that case, the IBinder you supply here will become invalid 6803cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * when your process goes away, and no longer usable, even if a new process is 6813cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * created for you later on.</p> 6823cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * 6833cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * @param key a String, or null 6843cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * @param value an IBinder object, or null 6853cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn */ 686c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putBinder(@Nullable String key, @Nullable IBinder value) { 6873cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn unparcel(); 6883cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn mMap.put(key, value); 6893cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn } 6903cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn 6913cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn /** 6929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inserts an IBinder value into the mapping of this Bundle, replacing 6939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any existing value for the given key. Either key or value may be null. 6949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 6969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param value an IBinder object, or null 6979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @deprecated 6993cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * @hide This is the old name of the function. 7009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Deprecated 702c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public void putIBinder(@Nullable String key, @Nullable IBinder value) { 7039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 7049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMap.put(key, value); 7059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or (byte) 0 if 7099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key. 7109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String 7129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a byte value 7139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 714719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 7159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public byte getByte(String key) { 716719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getByte(key); 7179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or defaultValue if 7219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key. 7229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String 7249f6cb87522d395eacd87dff1da525f4dc9809d27Nicolas Klein * @param defaultValue Value to return if key does not exist 7259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a byte value 7269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 727719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 7289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Byte getByte(String key, byte defaultValue) { 729719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getByte(key, defaultValue); 7309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7339f6cb87522d395eacd87dff1da525f4dc9809d27Nicolas Klein * Returns the value associated with the given key, or (char) 0 if 7349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key. 7359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String 7379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a char value 7389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 739719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 7409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public char getChar(String key) { 741719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getChar(key); 7429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7459f6cb87522d395eacd87dff1da525f4dc9809d27Nicolas Klein * Returns the value associated with the given key, or defaultValue if 7469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key. 7479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String 7499f6cb87522d395eacd87dff1da525f4dc9809d27Nicolas Klein * @param defaultValue Value to return if key does not exist 7509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a char value 7519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 752719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 7539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public char getChar(String key, char defaultValue) { 754719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getChar(key, defaultValue); 7559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or (short) 0 if 7599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key. 7609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String 7629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a short value 7639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 764719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 7659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public short getShort(String key) { 766719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getShort(key); 7679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or defaultValue if 7719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key. 7729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String 7749f6cb87522d395eacd87dff1da525f4dc9809d27Nicolas Klein * @param defaultValue Value to return if key does not exist 7759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a short value 7769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 777719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 7789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public short getShort(String key, short defaultValue) { 779719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getShort(key, defaultValue); 7809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or 0.0f if 7849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key. 7859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String 7879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a float value 7889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 789719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 7909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public float getFloat(String key) { 791719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getFloat(key); 7929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or defaultValue if 7969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key. 7979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String 7999f6cb87522d395eacd87dff1da525f4dc9809d27Nicolas Klein * @param defaultValue Value to return if key does not exist 8009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a float value 8019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 802719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 8039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public float getFloat(String key, float defaultValue) { 804719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getFloat(key, defaultValue); 8059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 8099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 8109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 8119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 8139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a CharSequence value, or null 8149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 815719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 816c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 817c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public CharSequence getCharSequence(@Nullable String key) { 818719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getCharSequence(key); 8199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 822e3a7f628c6d9fef42be24999b3137ebe5c6f3525Dianne Hackborn * Returns the value associated with the given key, or defaultValue if 823ca2197b0457b1626b95a053d835ceaca43ac0286Narayan Kamath * no mapping of the desired type exists for the given key or if a null 824ca2197b0457b1626b95a053d835ceaca43ac0286Narayan Kamath * value is explicitly associatd with the given key. 825e3a7f628c6d9fef42be24999b3137ebe5c6f3525Dianne Hackborn * 826e3a7f628c6d9fef42be24999b3137ebe5c6f3525Dianne Hackborn * @param key a String, or null 827ca2197b0457b1626b95a053d835ceaca43ac0286Narayan Kamath * @param defaultValue Value to return if key does not exist or if a null 828ca2197b0457b1626b95a053d835ceaca43ac0286Narayan Kamath * value is associated with the given key. 829116751d84f6d276f2cac7074abd9f8ba23742958Christopher Tate * @return the CharSequence value associated with the given key, or defaultValue 830116751d84f6d276f2cac7074abd9f8ba23742958Christopher Tate * if no valid CharSequence object is currently mapped to that key. 831e3a7f628c6d9fef42be24999b3137ebe5c6f3525Dianne Hackborn */ 832719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 833c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public CharSequence getCharSequence(@Nullable String key, CharSequence defaultValue) { 834719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getCharSequence(key, defaultValue); 835e3a7f628c6d9fef42be24999b3137ebe5c6f3525Dianne Hackborn } 836e3a7f628c6d9fef42be24999b3137ebe5c6f3525Dianne Hackborn 837e3a7f628c6d9fef42be24999b3137ebe5c6f3525Dianne Hackborn /** 8389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 8399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 8409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 8419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 8435ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * @return a Size value, or null 8445ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey */ 845c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 846c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public Size getSize(@Nullable String key) { 8475ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey unparcel(); 8485ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey final Object o = mMap.get(key); 8495ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey try { 8505ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey return (Size) o; 8515ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey } catch (ClassCastException e) { 8525ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey typeWarning(key, o, "Size", e); 8535ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey return null; 8545ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey } 8555ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey } 8565ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey 8575ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey /** 8585ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * Returns the value associated with the given key, or null if 8595ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * no mapping of the desired type exists for the given key or a null 8605ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * value is explicitly associated with the key. 8615ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * 8625ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * @param key a String, or null 8635ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * @return a Size value, or null 8645ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey */ 865c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 866c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public SizeF getSizeF(@Nullable String key) { 8675ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey unparcel(); 8685ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey final Object o = mMap.get(key); 8695ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey try { 8705ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey return (SizeF) o; 8715ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey } catch (ClassCastException e) { 8725ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey typeWarning(key, o, "SizeF", e); 8735ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey return null; 8745ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey } 8755ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey } 8765ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey 8775ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey /** 8785ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * Returns the value associated with the given key, or null if 8795ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * no mapping of the desired type exists for the given key or a null 8805ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * value is explicitly associated with the key. 8815ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * 8825ef33984d0cc50bf4654b0d8e9557ac34d44fdddJeff Sharkey * @param key a String, or null 8839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a Bundle value, or null 8849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 885c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 886c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public Bundle getBundle(@Nullable String key) { 8879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 8889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object o = mMap.get(key); 8899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (o == null) { 8909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 8919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 8939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (Bundle) o; 8949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 8959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project typeWarning(key, o, "Bundle", e); 8969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 8979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 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 Parcelable value, or null 9079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 908c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 909c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public <T extends Parcelable> T getParcelable(@Nullable String key) { 9109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 9119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object o = mMap.get(key); 9129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (o == null) { 9139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 9149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 9169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (T) o; 9179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 9189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project typeWarning(key, o, "Parcelable", e); 9199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 9209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 9259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 9269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 9279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 9299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a Parcelable[] value, or null 9309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 931c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 932c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public Parcelable[] getParcelableArray(@Nullable String key) { 9339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 9349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object o = mMap.get(key); 9359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (o == null) { 9369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 9379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 9399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (Parcelable[]) o; 9409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 9419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project typeWarning(key, o, "Parcelable[]", e); 9429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 9439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 9489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 9499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 9509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 9529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return an ArrayList<T> value, or null 9539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 954c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 955c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public <T extends Parcelable> ArrayList<T> getParcelableArrayList(@Nullable String key) { 9569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 9579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object o = mMap.get(key); 9589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (o == null) { 9599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 9609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 9629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (ArrayList<T>) o; 9639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 9649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project typeWarning(key, o, "ArrayList", e); 9659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 9669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 9719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 9729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 9739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 9759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a SparseArray of T values, or null 9779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 978c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 979c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public <T extends Parcelable> SparseArray<T> getSparseParcelableArray(@Nullable String key) { 9809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 9819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object o = mMap.get(key); 9829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (o == null) { 9839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 9849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 9869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (SparseArray<T>) o; 9879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 9889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project typeWarning(key, o, "SparseArray", e); 9899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 9909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 9959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 9969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 9979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 9999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a Serializable value, or null 10009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1001719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 1002c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 1003c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public Serializable getSerializable(@Nullable String key) { 1004719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getSerializable(key); 10059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 10099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 10109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 10119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 10139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return an ArrayList<String> value, or null 10149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1015719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 1016c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 1017c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public ArrayList<Integer> getIntegerArrayList(@Nullable String key) { 1018719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getIntegerArrayList(key); 10199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 10239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 10249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 10259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 10279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return an ArrayList<String> value, or null 10289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1029719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 1030c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 1031c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public ArrayList<String> getStringArrayList(@Nullable String key) { 1032719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getStringArrayList(key); 10339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 10379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 10389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 10399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 104108bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * @return an ArrayList<CharSequence> value, or null 104208bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert */ 1043719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 1044c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 1045c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public ArrayList<CharSequence> getCharSequenceArrayList(@Nullable String key) { 1046719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getCharSequenceArrayList(key); 104708bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert } 104808bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert 104908bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert /** 105008bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * Returns the value associated with the given key, or null if 105108bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * no mapping of the desired type exists for the given key or a null 10529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 10539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 10559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a byte[] value, or null 10569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1057719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 1058c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 1059c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public byte[] getByteArray(@Nullable String key) { 1060719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getByteArray(key); 10619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 10659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 10669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 10679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 10699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a short[] value, or null 10709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1071719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 1072c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 1073c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public short[] getShortArray(@Nullable String key) { 1074719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getShortArray(key); 10759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 10799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 10809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 10819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 10839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a char[] value, or null 10849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1085719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 1086c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 1087c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public char[] getCharArray(@Nullable String key) { 1088719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getCharArray(key); 10899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 10939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 10949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 10959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 10979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a float[] value, or null 10989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1099719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 1100c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 1101c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public float[] getFloatArray(@Nullable String key) { 1102719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getFloatArray(key); 11039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 11069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value associated with the given key, or null if 11079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no mapping of the desired type exists for the given key or a null 11089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value is explicitly associated with the key. 11099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 11109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param key a String, or null 111108bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * @return a CharSequence[] value, or null 111208bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert */ 1113719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 1114c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 1115c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public CharSequence[] getCharSequenceArray(@Nullable String key) { 1116719e6b167041ffaffc2245f692714c8de191863fCraig Mautner return super.getCharSequenceArray(key); 111708bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert } 111808bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert 111908bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert /** 112008bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * Returns the value associated with the given key, or null if 112108bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * no mapping of the desired type exists for the given key or a null 112208bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * value is explicitly associated with the key. 112308bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * 112408bbffb049c135c5dfd40d261118c90d1a6dc111Bjorn Bringert * @param key a String, or null 11259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return an IBinder value, or null 11263cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn */ 1127c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 1128c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public IBinder getBinder(@Nullable String key) { 11293cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn unparcel(); 11303cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn Object o = mMap.get(key); 11313cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn if (o == null) { 11323cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn return null; 11333cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn } 11343cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn try { 11353cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn return (IBinder) o; 11363cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn } catch (ClassCastException e) { 11373cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn typeWarning(key, o, "IBinder", e); 11383cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn return null; 11393cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn } 11403cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn } 11413cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn 11423cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn /** 11433cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * Returns the value associated with the given key, or null if 11443cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * no mapping of the desired type exists for the given key or a null 11453cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * value is explicitly associated with the key. 11463cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * 11473cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * @param key a String, or null 11483cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * @return an IBinder value, or null 11499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 11509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @deprecated 11513cbdddbd5ce6f52688d88f120c1e5214ed6afbdaDianne Hackborn * @hide This is the old name of the function. 11529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 11539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Deprecated 1154c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy @Nullable 1155c6a65dff3d9ed3e75f9f4f5abbf24e3d10bdba8bScott Kennedy public IBinder getIBinder(@Nullable String key) { 11569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unparcel(); 11579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object o = mMap.get(key); 11589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (o == null) { 11599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 11609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 11629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (IBinder) o; 11639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (ClassCastException e) { 11649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project typeWarning(key, o, "IBinder", e); 11659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 11669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final Parcelable.Creator<Bundle> CREATOR = 11709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project new Parcelable.Creator<Bundle>() { 1171719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 11729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Bundle createFromParcel(Parcel in) { 11739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return in.readBundle(); 11749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1176719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 11779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Bundle[] newArray(int size) { 11789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new Bundle[size]; 11799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }; 11819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 11839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Report the nature of this Parcelable's contents 11849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1185719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 11869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int describeContents() { 11879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int mask = 0; 11889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (hasFileDescriptors()) { 11899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mask |= Parcelable.CONTENTS_FILE_DESCRIPTOR; 11909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mask; 11929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1193719e6b167041ffaffc2245f692714c8de191863fCraig Mautner 11949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 11959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Writes the Bundle contents to a Parcel, typically in order for 11969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * it to be passed through an IBinder connection. 11979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param parcel The parcel to copy this bundle to. 11989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1199719e6b167041ffaffc2245f692714c8de191863fCraig Mautner @Override 12009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void writeToParcel(Parcel parcel, int flags) { 1201d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey final boolean oldAllowFds = parcel.pushAllowFds((mFlags & FLAG_ALLOW_FDS) != 0); 12029ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn try { 1203719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.writeToParcelInner(parcel, flags); 12049ecebbfbf768fd63e9a6c9a09c86d81c7737ee2dDianne Hackborn } finally { 1205c04db7e06737c5b9bae276ac462858d44002672eDianne Hackborn parcel.restoreAllowFds(oldAllowFds); 12066aff905048ba3b03724f17e2aba9089872e14cd2Dianne Hackborn } 12079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 12109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Reads the Parcel contents into this Bundle, typically in order for 12119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * it to be passed through an IBinder connection. 12129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param parcel The parcel to overwrite this bundle from. 12139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 12149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void readFromParcel(Parcel parcel) { 1215719e6b167041ffaffc2245f692714c8de191863fCraig Mautner super.readFromParcelInner(parcel); 12167410fb4b394c46fcaa195ba1071750469f776c80Jeff Sharkey mFlags = FLAG_HAS_FDS_KNOWN | FLAG_ALLOW_FDS; 1217d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey if (mParcelledData.hasFileDescriptors()) { 1218d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey mFlags |= FLAG_HAS_FDS; 1219d136e51a99df5275eaafdde407e89e78c02b829bJeff Sharkey } 12209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 12239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public synchronized String toString() { 12249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mParcelledData != null) { 122552764cba5968888180ceedf717d85e08ffd747ccAndreas Gampe if (isEmptyParcel()) { 12268aee64d18b6b90e46e886a80d8de0467d682ddc4Dianne Hackborn return "Bundle[EMPTY_PARCEL]"; 12278aee64d18b6b90e46e886a80d8de0467d682ddc4Dianne Hackborn } else { 12288aee64d18b6b90e46e886a80d8de0467d682ddc4Dianne Hackborn return "Bundle[mParcelledData.dataSize=" + 12298aee64d18b6b90e46e886a80d8de0467d682ddc4Dianne Hackborn mParcelledData.dataSize() + "]"; 12308aee64d18b6b90e46e886a80d8de0467d682ddc4Dianne Hackborn } 12319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return "Bundle[" + mMap.toString() + "]"; 12339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1234a47223f99b6b7ade4ae909c458d975eb487062b3Dianne Hackborn 1235a47223f99b6b7ade4ae909c458d975eb487062b3Dianne Hackborn /** 1236a47223f99b6b7ade4ae909c458d975eb487062b3Dianne Hackborn * @hide 1237a47223f99b6b7ade4ae909c458d975eb487062b3Dianne Hackborn */ 1238a47223f99b6b7ade4ae909c458d975eb487062b3Dianne Hackborn public synchronized String toShortString() { 1239a47223f99b6b7ade4ae909c458d975eb487062b3Dianne Hackborn if (mParcelledData != null) { 1240a47223f99b6b7ade4ae909c458d975eb487062b3Dianne Hackborn if (isEmptyParcel()) { 1241a47223f99b6b7ade4ae909c458d975eb487062b3Dianne Hackborn return "EMPTY_PARCEL"; 1242a47223f99b6b7ade4ae909c458d975eb487062b3Dianne Hackborn } else { 1243a47223f99b6b7ade4ae909c458d975eb487062b3Dianne Hackborn return "mParcelledData.dataSize=" + mParcelledData.dataSize(); 1244a47223f99b6b7ade4ae909c458d975eb487062b3Dianne Hackborn } 1245a47223f99b6b7ade4ae909c458d975eb487062b3Dianne Hackborn } 1246a47223f99b6b7ade4ae909c458d975eb487062b3Dianne Hackborn return mMap.toString(); 1247a47223f99b6b7ade4ae909c458d975eb487062b3Dianne Hackborn } 12489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 1249