diff options
| -rw-r--r-- | core/java/android/os/Bundle.java | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/core/java/android/os/Bundle.java b/core/java/android/os/Bundle.java index 05dd48b12e55..11280749f05b 100644 --- a/core/java/android/os/Bundle.java +++ b/core/java/android/os/Bundle.java @@ -208,6 +208,18 @@ public final class Bundle extends BaseBundle implements Cloneable, Parcelable { } /** + * Removes any entry with the given key from the mapping of this Bundle. + * + * @param key a String key + */ + public void remove(String key) { + super.remove(key); + if ((mFlags & FLAG_HAS_FDS) != 0) { + mFlags &= ~FLAG_HAS_FDS_KNOWN; + } + } + + /** * Inserts all mappings from the given Bundle into this Bundle. * * @param bundle a Bundle @@ -288,6 +300,8 @@ public final class Bundle extends BaseBundle implements Cloneable, Parcelable { if (fdFound) { mFlags |= FLAG_HAS_FDS; + } else { + mFlags &= ~FLAG_HAS_FDS; } mFlags |= FLAG_HAS_FDS_KNOWN; } @@ -315,6 +329,8 @@ public final class Bundle extends BaseBundle implements Cloneable, Parcelable { mMap.removeAt(i); } } + mFlags |= FLAG_HAS_FDS_KNOWN; + mFlags &= ~FLAG_HAS_FDS; } /** |