History log of /frameworks/base/core/java/android/os/Parcel.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
61e2b158661f75f1e128a6bd81bd296cadeb84b0 19-May-2017 Michael Wachenschwanz <mwachens@google.com> Merge "DO NOT MERGE Revert "WTF Logging for catching memory issue in Parcel"" into oc-dev
138bebf4c18d0b573732aac6faa4573a57c295f5 19-May-2017 Michael Wachenschwanz <mwachens@google.com> DO NOT MERGE Revert "WTF Logging for catching memory issue in Parcel"

This reverts commit 101e38cbeceb0e1c0a27f1917d9ab0aabed26e49.

Bug: 37298089
Change-Id: Ia468d50fd1e4ca2ffa6145967bf3c847ed1929b8
/frameworks/base/core/java/android/os/Parcel.java
c3b938ca5ed1385ea07a500abfba31ee4943c096 11-May-2017 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #37360626: Apps can schedule alarms (and other things) with temp whitelist" into oc-dev
983055231b999e450def3e3df377fb4e23420711 06-May-2017 Dianne Hackborn <hackbod@google.com> Fix issue #37360626: Apps can schedule alarms (and other things) with temp whitelist

There is now an IBinder "token" that must be specified when setting
the whitelist duration for an Intent. To have the whitelist supplied,
the caller to send a PendingIntent must pass in the same token. The
PendingIntent and IntentSender classes now internally maintain this token
to pass in when their send() is called.

The big complexity for making this work is we now need to associate this
whitelist token correctly with the actual PendingIntent objects that
applications and other code is getting. To do this, we propagate the
token in the Notification object, and have a new API on Parcel that allows
us to make it available to PendingIntent when it is unmarshalled. And
this allows to deal with PendingIntents appearing in nested bundles, as
we can propagate that information from the original Parcel to the new
Parcel that Bundle keeps to delay unmarshalling.

Test: manual
Change-Id: Idda00490ccfe2be37e4ab21354b9ab7528a52750
/frameworks/base/core/java/android/os/Parcel.java
101e38cbeceb0e1c0a27f1917d9ab0aabed26e49 10-May-2017 Michael Wachenschwanz <mwachens@google.com> WTF Logging for catching memory issue in Parcel

Catch an exception sent from native code looking for a specific known
bug and report via wtf which code path is hitting the bug. Revert this
change once bug has been resolved.

Bug: 37298089
Test: manual

Change-Id: Ieb98a8a82a9a2cffe4d0cfbbc8333f453b3e36d5
Signed-off-by: Michael Wachenschwanz <mwachens@google.com>
/frameworks/base/core/java/android/os/Parcel.java
a4d34d971c9566a162a53e6b027ba2bc341ae5b4 27-Apr-2017 Jeff Sharkey <jsharkey@android.com> Respond to API council feedback.

Move aggressive allocation to @SystemApi, which means we can hide
the "flags" API variants.

Remove UUID APIs, since we should use existing Serializable APIs.

Relax permission checks to allow apps to ask for their own stats.

Improve docs.

Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.StorageHostTest
Bug: 37534687, 37534941, 37718184, 37738770
Change-Id: I6a763fb3ab3169c8d3329765bb31e1ee08d9ced7
/frameworks/base/core/java/android/os/Parcel.java
789a8fc792725e4988ff43d554b3c8c037c41921 16-Apr-2017 Jeff Sharkey <jsharkey@android.com> Storage API polishing.

Based on API council feedback, switch to using real UUID objects
instead of Strings. Since UUID is a general-purpose utility class
that will be passed around quite a bit, add it to Parcel and Bundle.

Define well-known namespaced UUID values for "default" and "primary
physical" storage devices, which will let us annotate a bunch of
things with @NonNull.

Define new extras for MANAGE_STORAGE intent that apps can use to
signal where and how much space they'd like the user to free up.

Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.StorageHostTest
Bug: 37325923, 35812899, 35806020
Change-Id: I8421b126d680f69141a361c1e77223fe2bf4a325
/frameworks/base/core/java/android/os/Parcel.java
7da13d7c3e5b48c0410ae869c5679652de97e5aa 05-Apr-2017 Dianne Hackborn <hackbod@google.com> Add new "work queue" feature to JobScheduler.

This gives semantics similar to the start command
queue of services.

The implementation is currently lacking in URI permission
grant handling of the work intents; that will be coming
in a follow-up change.

This includes a first step of adjusting/fixing locking
within JobSchedulerService. The JobServiceContext class
has a bunch of stuff it does that assumes it doesn't need
locking because it schedules the work on a handler. However,
to be able to correctly implement the work finish flow (that
takes care of stopping the job when there is no more work),
we can't dispatch these asynchronously so need to get rid of
that and just do explicit locking.

The switch to explicit locking is half-way there (again the
remaining part will be a follow-on CL). Right now we have
the locking, but still also the handler. But it turns out
there were a number of things we were doing without a lock
held where we actually should have been holding a lock, so
this is better anyway.

Test: new tests added

Change-Id: Iebd098046209b28e60fd2f4d855d7f91cd3a8b03
/frameworks/base/core/java/android/os/Parcel.java
72ba815ca41e72a3d12ae8dff1d6806220060b11 27-Mar-2017 Jeff Sharkey <jsharkey@google.com> Merge "Add a new "virtual disk" feature."
e53e2d9576cbcf6fc2bd9c8674e162bef7297226 26-Mar-2017 Jeff Sharkey <jsharkey@android.com> Add a new "virtual disk" feature.

It's extremely difficult to test storage related logic on devices
that don't have physical SD card slots. So to support better
debugging and testing, add a new "virtual disk" feature which mounts
a 512MB file through loop device.

Also move ParcelFileDescriptor.open() over to using Os.open() so
that it gets StrictMode treatment.

Bug: 34903607
Test: builds, boots, virtual disk works
Change-Id: I072a3a412cfcc8a2a3472919b7273a1ed794fd98
/frameworks/base/core/java/android/os/Parcel.java
205656d31f189375610b932758e398b70386884b 23-Mar-2017 Adam Lesinski <adamlesinski@google.com> Hide Parcel#readSparseIntArray and Parcel#writeSparseIntArray

They were added for a CL that later stopped using them, so there
is no current need for them in public API.

Bug: 35812784
Change-Id: I2a9a30bee65894235f2cc81ab1bd5a37c9296c02
Test: build succeeds
/frameworks/base/core/java/android/os/Parcel.java
36e866b8e0ec08e45b5e7fbc65aeeb3a9bb7b11e 24-Feb-2017 Eugene Susla <eugenesusla@google.com> Support multiple filters per association request

By supporting multiple filters per one request we should be able to cover
multiple kinds of use cases such as:
- Letting the user select from a list of devices of more then one medium
type (e.g. Bluetooth and BLE)
- Allowing to provide multiple criteria for any field (e.g. filtering by
more than one service UUID)

Bug: 30932767
Test: Provide multiple filters and ensure that devices matching either are
shown in the list to choose from.
Ensure wifi SSIDs are shown in the list if wifi filter is provided

Change-Id: I0a978787551a1ee5750ec5544b241d3bbfed5a7c
/frameworks/base/core/java/android/os/Parcel.java
d66c95fa907dc9eb3d7238fbbf3dc6dbd4b243a0 09-Mar-2017 Hector Tellez <htellez@google.com> Revert "Support multiple filters per association request"

This reverts commit e70e6aa62c6f3a9a79624a4f9d97df95edda0364.

Change-Id: I12857cbbea0a0c74521191ab5e3713db230626ab
/frameworks/base/core/java/android/os/Parcel.java
e70e6aa62c6f3a9a79624a4f9d97df95edda0364 24-Feb-2017 Eugene Susla <eugenesusla@google.com> Support multiple filters per association request

By supporting multiple filters per one request we should be able to cover
multiple kinds of use cases such as:
- Letting the user select from a list of devices of more then one medium
type (e.g. Bluetooth and BLE)
- Allowing to provide multiple criteria for any field (e.g. filtering by
more than one service UUID)

Bug: 30932767
Test: Provide multiple filters and ensure that devices matching either are
shown in the list to choose from.
Ensure wifi SSIDs are shown in the list if wifi filter is provided
Change-Id: I6621da388e2bf4ed97c5af2692629a321d0b63c7
/frameworks/base/core/java/android/os/Parcel.java
0f4928f1f73407485d6d94beda1dba1a2360ebbf 03-Feb-2017 Svet Ganov <svetoslavganov@google.com> Refactoring of auto fill - lifecycle, auth, improvements

1. Move management of the remote fill service in a dedicated
class that abstracts away the async and ephemeral nature
of the binding.

2. Update auth to move fingerprint out of the platform and
allow response and dataset auth.

3. Cleaned up the fill and save callback classes.

4. The UI is now shared among all sessions and cleaned up.

5. Reshuffled the remote callbacks to have cleaner separation.

6. Cleaned up and tightened the reponse and dataset classes.

7. Added API to support communicationn with intent based auth.

Test: CTS + manually

bug:31001899

Change-Id: Idc924a01d1aea82807e0397ff7293d2b8470d4d6
/frameworks/base/core/java/android/os/Parcel.java
9cd7af310c8948c87dd609c4015ec086e26aed3b 04-Jan-2017 Robert Quattlebaum <rquattle@google.com> Minor updates to reflect libbinder changes.

* Parcel: Update comment to reflect new file path
* IpPrefix: Update AIDL file to indicate appropriate C++ header

Change-Id: Ia9edccca5e8ef1f36a709b593a768003e1234dfa
/frameworks/base/core/java/android/os/Parcel.java
4e8628157ad0c8c52e74b720eb0328086272ffda 22-Nov-2016 Adam Lesinski <adamlesinski@google.com> Add support for Split APK dependcies

Apps can now declare in their base APK AndroidManifest.xml
that they want to have their split APKs loaded in isolated
Contexts. This means code and resources from the split
get loaded into their own ClassLoader and AssetManager.

<manifest xmlns:android="..."
...
android:isolatedSplits="true"
...

In order to make this more useful, splits can declare dependencies
on other splits, which will all get pulled in to the Context
and run as expected at runtime.

A split declares its dependency on another split by using the
tag <uses-split> in its AndroidManifest.xml:

<manifest xmlns:android="...">
...
<uses-split android:name="feature_split_1" />
...

A split can have a single parent on which it depends on. This is
due to the limitation of having a single ClassLoader parent.
All splits depend on the base APK implicitly.

PackageManager verifies that no cycles exist and that each dependency
is present before allowing an installation to succeed.

The runtime will then load splits based on the dependencies.

Given the following APKs:

base <-- split A <-- split C
^----- split B

If an Activity defined in split C is launched, then the base,
split A, and split C will be loaded into the ClassLoader defined
for the Activity's Context. The AssetManager will similarly be loaded
with the resources of the splits.

A split can be manually loaded by creating a Context for that split, defined
by its name:

Context.createContextForSplit("my_feature_split_1");

All installed Activities, Services, Receivers, and Providers are accessible
to other apps via Intent resolution. When they are instantiated, they are
given the appropriate Context that satisfies any dependencies the split they
were defined in stipulated.

Test: WIP (CTS tests to come)
Change-Id: I8989712b241b7bc84381f2919d88455fcad62161
/frameworks/base/core/java/android/os/Parcel.java
f5d2c7278e0b8745405d1dbbe4554c515ac215a3 21-Jan-2017 Jeff Sharkey <jsharkey@android.com> Merge "Add Binder support for Parcelable exceptions." am: a2ef6b5741 am: c3fbf32011 am: 4a0a4664b9
am: 7bb9ccc1e5

Change-Id: I9346a576d57c9f7093b875c4a43134f2ef095018
e628b7d446484bbcf467536769a301760eeb097b 17-Jan-2017 Jeff Sharkey <jsharkey@android.com> Add Binder support for Parcelable exceptions.

If an Exception thrown by a Binder call implements the Parcelable
interface, then parcel it and rethrow back at the caller. There is
strict requirement that these Parcelable exceptions must be defined
by the system (as determined by checking the ClassLoader). We prefix
the Parcelable contents with a length so that native code can skip
over the blobs.

Define a new ParcelableException class that can be used to transport
exceptions that cannot be modified to add Parcelable behavior, and
switch ExceptionUtils to use this new class for sending IOExceptions.

Test: builds, boots, wrapped exceptions work
Bug: 33749182
Change-Id: I1352ea1566ddf01120d9d0e819ba6f70fc407e11
/frameworks/base/core/java/android/os/Parcel.java
bea4871fc8096617fffb21cd44ff82bd0e3523d3 01-Dec-2016 Narayan Kamath <narayan@google.com> Parcel: Add support for reading/writing lists of Parcelables.

Follows the same marshalling scheme as other list types, such
as lists of Strings etc.

Bug: 30792387
Test: ParcelTest
Change-Id: I2003f4fcf4de5a1bee060f3c2723cfb155105b14
/frameworks/base/core/java/android/os/Parcel.java
71207b5a11c1aaede2ccc2380a9c55b6ff0162d3 28-Sep-2016 John Reck <jreck@google.com> Switch Parcel to FastNative

Also fixes ParcelBenchmark to have bounded
memory usage to avoid OOM'ing during runs

Test: refactor, no behavior change

ParcelBenchmark results from bullhead
Before:
timeReadByte 74.43ns
timeReadInt 74.49ns
timeReadLong 74.13ns
timeWriteByte 81.81ns
timeWriteInt 82.09ns
timeWriteLong 81.84ns

After:
timeReadByte 47.08ns
timeReadInt 48.38ns
timeReadLong 48.16ns
timeWriteByte 55.90ns
timeWriteInt 55.85ns
timeWriteLong 56.58ns

Change-Id: I61b823d1d2beb86e00c196abd4dce65efa8fa7f0
/frameworks/base/core/java/android/os/Parcel.java
440a1ea8e2204ecb171e0187318beb2f08f6012c 20-Jul-2016 Makoto Onuki <omakoto@google.com> Support multiple intents in ShortcutInfo

Also fix b/30230996.

TODO: Support the sourceBounds argument to LauncherApps.
startShortcut().

Bug 30218829
Bug 30230996

Change-Id: Ibb6c59d5b7c0a320c21d09436d016d0eac94644f
/frameworks/base/core/java/android/os/Parcel.java
ddb948896ca7059161e09d0063b3332352772c0a 24-Jun-2016 Svet Ganov <svetoslavganov@google.com> Mark app pending intents in notification extras

We need to make every peniding intent that went in the notification
system to allow special handling of such intents when fired by a
notification listener. If a pending intent from a notification
is sent from a notification listener, we white-list the source app
to run in data saver mode for a short period of time. The problem is
that actions and the notificaion can have extras which bundles may
contain pending intents but the system cannot look into the bundles
as they may contain custom parcelable objects. To address this we
keep a list of all pending intents in the notification allowing
the system to access them without touching the bundle. Currently
the pending intents are written to the parcel twice, once in the
bundle and once as the explicit list. We can come up with a scheme
to optimize this but since pending itents are just a binder pointer
it is not worth the excecise.

bug:29480440

Change-Id: I7328a47017ca226117adf7054900836619f5679b
/frameworks/base/core/java/android/os/Parcel.java
3cefe6a991ba650375e663e7095266e2273d2372 14-Dec-2015 Samuel Tan <samueltan@google.com> Add comments to keep Java and native binder PersistableBundle in sync

Add comments stating that certain methods of the Java binder framework
should be kept in sync with the corresponding methods mirrored in the
native PersistableBundle implementation.

BUG: 25815410
Change-Id: I475b2e9a527291eea58c8178cd733c444dfcfed5
/frameworks/base/core/java/android/os/Parcel.java
ceafe5ed8a9968752c9454ae67428caf8c6719e6 12-Dec-2015 Samuel Tan <samueltan@google.com> Fix PersistableBundle handling in Parcel.writeValue

Previously, in Parcel.writeValue, PersistableBundle objects
would be handled as Parcelable types, since we check for
the Parcelable type before the PersistableBundle type (and
PersistableBundle implements the Parcelable interface).

Fix this by moving the PersistableBundle type "if" condition
above the Parcealble type "if" condition. Also, add a comment
that explicitly states this nuance, in order to prevent future
regressions.

BUG: 25815410
Change-Id: Ia86aa5fc39423422342df0609a0d37e7f38d7ddd
/frameworks/base/core/java/android/os/Parcel.java
85eaca25fe2a89f883e9a87d8f411cfb315f3e03 09-Dec-2015 Christopher Wiley <wiley@google.com> Merge "Rethrow remote's ServiceSpecificException"
ff8ef28e73c0959a4993fea975d0bdefbc27a20b 08-Dec-2015 Samuel Tan <samueltan@google.com> Merge "Add support for reading and writing double array values"
am: 61c0b7cd4d

* commit '61c0b7cd4d73381a2f4e3d3836389b130b5006d9':
Add support for reading and writing double array values
80fd1208b99fbb88f24faa5d55183cdbbdeb6777 23-Nov-2015 Christopher Wiley <wiley@google.com> Rethrow remote's ServiceSpecificException

Certain system services would like to throw exceptions
with specific error codes, so that the framework can catch
these specific conditions and express them appropriately.

Bug: 25800533
Change-Id: I94b3d30fa131f5e14bba893c971615840085459f
/frameworks/base/core/java/android/os/Parcel.java
a8036660ea522e8509e4fd5c79bd4466ac6d9179 23-Nov-2015 Samuel Tan <samueltan@google.com> Add support for reading and writing double array values

Add support for reading and writing double arrays in
Parcel.readValue() and Parcel.writeValue.

Also, remove some trailing whitespaces in Parcel.java.

BUG: 25848659
Change-Id: Ib5430f492df4195051b83d9bf2b5163ec684bbff
/frameworks/base/core/java/android/os/Parcel.java
7a38be61124fb1d75ed73cdd4050ba25047d2b03 13-Nov-2015 Casey Dahlin <sadmac@google.com> Merge "Add hidden support for arrays of raw file descriptors"
am: 376d5f350c

* commit '376d5f350c6618d915338a9927b5d0f5fb61eba8':
Add hidden support for arrays of raw file descriptors
2f974b252f819405a54798c9736f448f979a095f 05-Nov-2015 Casey Dahlin <sadmac@google.com> Add hidden support for arrays of raw file descriptors

Change-Id: I4013e0700369764a26485d8620ebf16d8bea1951
Test: Built and ran Android in an emulator
Bug: 25242023
Signed-off-by: Casey Dahlin <sadmac@google.com>
/frameworks/base/core/java/android/os/Parcel.java
0450565d9a6de0f0828c9ad8ce16c8645c6f394c 23-Oct-2015 Adrian Roos <roosa@google.com> Revert "Revert "Track ashmem memory usage in Parcel""

This reverts commit e2adb2cf0f2c90c77fab3f09285a92e05e70b567.

Bug: 25004154
Change-Id: I9b432d1ebc39f3bbcd7afdefc403f0fb6ced8158
/frameworks/base/core/java/android/os/Parcel.java
e2adb2cf0f2c90c77fab3f09285a92e05e70b567 23-Oct-2015 Ian Pedowitz <ijpedowitz@google.com> Revert "Track ashmem memory usage in Parcel"

This reverts commit ab3f9724035046d65124a72db2a09c824b3d5c67.

Bug: 25169267
Bug: 25191602
Bug: 25004154
Change-Id: Ic51e62515273e4687359dfd9ff770a4d06c0c667
/frameworks/base/core/java/android/os/Parcel.java
ab3f9724035046d65124a72db2a09c824b3d5c67 21-Oct-2015 Adrian Roos <roosa@google.com> Track ashmem memory usage in Parcel

Bug: 25004154
Change-Id: Id9d5656dd0605f1b50525596b75601309f67ebdc
(cherry picked from commit 4701a496a5477a7de01fbc9eaf4af9812f83770c)
/frameworks/base/core/java/android/os/Parcel.java
b9f7aac3488873677377b36c57338d758098f78e 04-Mar-2015 Dan Sandler <dsandler@android.com> Icon: a clean, parcelable place for images.

Binder APIs which wish to consume Bitmaps *and* drawable
resources can now do so by using Icon, a kind of union type
that accommodates each of these. Icon also accepts byte
arrays holding compressed Bitmaps (PNG, JPEG, etc), which
saves clients the additional memory cost of decoding and
sending full uncompressed bitmaps through Binder interfaces.
Receiving clients can call loadDrawable{,Async} and then
getDrawable to start immediately using the image in an
ImageView or other Drawable-hosting container.

Bug: 19609468
Change-Id: Ic1343711c2ac0b15876b46f0b6008b0108a49470
/frameworks/base/core/java/android/os/Parcel.java
8dea8744ac12a97533e8de0f8e56a58d630eb489 20-Apr-2015 Jens Ole Lauridsen <jlauridsen@google.com> parcel: Add efficient methods for writing and reading a parcelable.

The documentation used to recommend calling Parcelable.writeToParcel
instead of using the Parcel API for sending Parcelable types.
This leaves the developer to have to deal with null values and makes
it harder to create tools that generate correct efficient code.
I suggest that we add a these 2 methods:
writeTypedObject and createTypedObject
as an alternative.

Change-Id: I85443417909dcb9590d3f0a72f0130a4da4ead38
/frameworks/base/core/java/android/os/Parcel.java
52dbaa08cdb7866fa51f98e4572f17077c492554 22-Apr-2015 Neil Fuller <nfuller@google.com> Merge "Add checks for types in Parcel / avoid class initialization"
aa861666ed537389e335f586bc84fe8ddb9fb026 21-Apr-2015 Dan Sandler <dsandler@android.com> Fix build.

Change-Id: I0e419fdb36cedba67fc6da7f71134d9728f66150
/frameworks/base/core/java/android/os/Parcel.java
44e440cc7e834de7811f005998acb32716835b00 20-Apr-2015 Neil Fuller <nfuller@google.com> Add checks for types in Parcel / avoid class initialization

Make Parcel more stringent to avoid initializing classes
that are not related to Parcelable.

Two new checks:
1) That the class found on the stream implements Parcelable.
2) That the type of the CREATOR field declared on the class
found on the stream actually implements Parcelable.Creator.

For (1) the new check that a class in the stream is actually
Parcelable. This will affect handling of invalid streams or
code that didn't obey the requirements.

For (2) this change could break some apps that had a CREATOR
field in a Parcelable class that was not declared to be
(at least) a Parcelable.Creator: it is no longer sufficient
for the type to implement Parcelable.Creator, the field
must be declared as such.

This change includes doc updates for Parcelable to make
the requirement around the declared type of the CREATOR
field more concrete.

This change also makes the generics slightly tidier/explicit,
annotates code as unchecked where needed and removes some
assumptions that can not be guaranteed with Java's type
system and the current definitions.

For example, there's no guarantee right now that
Parcelable.Creator returns objects that are actually
Parcelable, or that the CREATOR object associated
with a Parcelable will return objects of the surrounding
class. The first we can't do something about without
breaking the public API (due to implementations like
TextUtils.CHAR_SEQUENCE_CREATOR). The second is
currently typically implicitly enforced with an implicit
cast in the (app's) calling code (e.g. callers to
readParcelable() that causes a language-introduced cast
to the type expected). A larger refactoring of Parcel
would be required to ensure that the class that is
produced by Creator is of a type compatible with the
class that declared CREATOR, and is not a goal for this
change.

A fix is included for a class that doesn't implement
Parcelable like it should and would probably fail
check (1).

Bug: 1171613
Change-Id: I31d07516efee29a320e80f4bc4f96aaac628f81c
/frameworks/base/core/java/android/os/Parcel.java
5ce0430edfc176de29c0cf503975570dfda8111f 10-Apr-2015 Dan Sandler <dsandler@android.com> Add ashmem stats to Parcels.

Developers can now analyze the true RAM cost of the parcels
they create when those parcels contain ashmem blobs (such as
Bitmap data).

Requires change Ifaf115da in frameworks/native.

Bug: 20079551
Change-Id: Ifaf115dabd1a59cdb1b46e2d49c41f64ac107de4
/frameworks/base/core/java/android/os/Parcel.java
3d07c94c393831091958fe6a98811843db8973bd 14-Mar-2015 Dianne Hackborn <hackbod@google.com> Add new voice request for picking from a list.

Also add API for voice interaction service to control
whether the system should hold a wake lock while it is
working with an activity (and actually *do* hold a wake
lock while doing so, duh!).

And while in there, clean up the launching wake lock to
correctly give blame to the app that is launching.

Change-Id: I7cc4d566b80f59fe0a9ac51ae9bbb7188a01f433
/frameworks/base/core/java/android/os/Parcel.java
9adf1c54226940e9f9065d92b4edd2b232122302 05-Feb-2015 John Spurlock <jspurlock@google.com> am ac7b9dd3: am 42d3b66f: am e0852368: Fix a few typos in Parcel.java.

* commit 'ac7b9dd39f64118a2129c17cdc7b6c93e53e1c42':
Fix a few typos in Parcel.java.
e08523684d5414117f81debd4eb14bc8eb494c29 04-Feb-2015 John Spurlock <jspurlock@google.com> Fix a few typos in Parcel.java.

Change-Id: Ic1674fc72f08a0f3536b4870a5ce7d14ee6fcc16
/frameworks/base/core/java/android/os/Parcel.java
fabb70b2efbd125f74923d19ab12bc8e1371ed1f 11-Nov-2014 Dianne Hackborn <hackbod@google.com> Add reporting of Parcel memory/count.

Also fix issue #18340771: Dumpsys Procstats missing a newline

Change-Id: I0c612187a3fb4d7eeafbf97d373efdef732c477e
/frameworks/base/core/java/android/os/Parcel.java
33d738a10209d4dc882a65285d6e71cfaeabe769 12-Sep-2014 Dianne Hackborn <hackbod@google.com> Allow throwing UnsupportedOperationException across Binder.

Change-Id: I3a9b81958886033d546c3a20331716dbb9492365
/frameworks/base/core/java/android/os/Parcel.java
5ef33984d0cc50bf4654b0d8e9557ac34d44fddd 05-Sep-2014 Jeff Sharkey <jsharkey@android.com> Move Size parceling to Bundle.

Size itself shouldn't be Parcelable, since that would be a layering
violation.

Bug: 17390381
Change-Id: Ica62709bd889db51c916c550a0146714b002baa3
/frameworks/base/core/java/android/os/Parcel.java
9c3e74f1f77d3b29ad47d2c74b0a0061e67c76f1 14-Aug-2014 Dianne Hackborn <hackbod@google.com> Fix issue #16794553: Duplicate ArrayMap entries in Bundle...

...can lead to launching of un-exported activities

We now validate the array map after unparcelling to make sure there
are no duplicate keys.

And to make up for the performance overhead this introduces, I switched
the parcelling/unparcelling code to write keys as explicit string
objects rather than generic values. There was no reason to use generic
values since the write method itself only accepts an array map with
String keys.

Change-Id: I57bda9eb79ceaaa9c1b94ad49d9e462b52102149
/frameworks/base/core/java/android/os/Parcel.java
39c12fab49075b715c253c68c84b5c10c3150197 26-Jul-2014 Sandeep Siddhartha <sansid@google.com> Use blob (shared memory) for large data in sound model/recognition event/config

Also add a missing null check in writeBlob

Bug: 16516353
Change-Id: Ie702f8daae541cab7c2cee6e13d49e7fc84c84e1
/frameworks/base/core/java/android/os/Parcel.java
90d7a3e996ee3a6e33e655341c5d301fbe30cd58 26-Jul-2014 Sandeep Siddhartha <sansid@google.com> Add read/writeBlob to Parcel

These are {@hide}en for now.

Bug: 16516353
Change-Id: Ie1635617ee8611a78be9068a7ce674e34c30301d
/frameworks/base/core/java/android/os/Parcel.java
719e6b167041ffaffc2245f692714c8de191863f 05-Apr-2014 Craig Mautner <cmautner@google.com> Introduce PersistableBundle

The PersistableBundle class is similar to Bundle except that only
objects that have meaning across reboots can be stored and there
is a limited number of types that can be stored. More
specifically Binders, FileDescriptors, Parcelables, Booleans,
Bytes, Shorts, Chars, CharSequences, Floats, and ArrayLists
cannot be stored.

Fixes bug 13736007.

Change-Id: If6595b2e6fd92af6b7f60c4f7140ae867c258794
/frameworks/base/core/java/android/os/Parcel.java
5784f159ab9da9dd89c82926abdda26916503325 21-Feb-2014 Elliott Hughes <enh@google.com> am 48dcf9d5: am d7d37256: am b2f07b27: am 4a809272: Merge "Fix documentation for Parcel.readException()."

* commit '48dcf9d5f59acf53a3ac0eda141ec323534a3321':
Fix documentation for Parcel.readException().
4a80927241b3168d9d5138c46c22385d6467a736 21-Feb-2014 Elliott Hughes <enh@google.com> Merge "Fix documentation for Parcel.readException()."
5ea06c59be1f7a0495378f703562ee02eaad99d8 13-Feb-2014 Paul Duffin <paulduffin@google.com> am 4de91118: am 0741e11c: am 75d67c6a: am d562a9b5: Merge "Improve Parcel\'s handling of non-primitive arrays"

* commit '4de9111819638b70dd6fb58094d7a61477fc59da':
Improve Parcel's handling of non-primitive arrays
ac5a0828c14eea59f2ffda85432ad1977d3e1ce0 03-Feb-2014 Paul Duffin <paulduffin@google.com> Improve Parcel's handling of non-primitive arrays

Treat arrays other than actual Object arrays (i.e. those whose component type
is actually Object) and the primitive arrays already handled specially by
Parcel as Serializable's.

Issue: 64583
Change-Id: I3ff797f3262e77e4de27f35709bceee5410d1ed4
/frameworks/base/core/java/android/os/Parcel.java
ef099b71838e15758c8e859af21748a123bb4a99 29-Jan-2014 Narayan Kamath <narayan@google.com> am 4a587146: am 09d07d0d: am e3e4b405: am 9846fb69: am 50afaefd: Merge "AArch64: Make Binder and Parcel 64-bit compatible"

* commit '4a58714606fdeb2e740b0ce51ea5074783e2ecf4':
AArch64: Make Binder and Parcel 64-bit compatible
8ab665dda40ab10e60fc69392022171f454af530 22-Jan-2014 Ashok Bhat <ashok.bhat@arm.com> AArch64: Make Binder and Parcel 64-bit compatible

Changes include
[x] Long is used to store native pointers

[x] Added new method obtain(long obj) to Parcel. Binder
uses this method instead of obtain(int obj).

[x] obtain(int) has been changed to throw unsupported
operation exception.

Change-Id: I408e0f2a24deb28c9277d86670653a51eb314266
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Craig Barber <craig.barber@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
/frameworks/base/core/java/android/os/Parcel.java
b34a4615f82a4ad8ce2c0687f47e2113e057e893 23-Jan-2014 Narayan Kamath <narayan@google.com> Hide android.os.Parcel.obtain(int).

This will break on 64 bit because 64 bit pointers are
wider than java int.

Also, this method technically isn't a public API because
it's a protected method on a final class. It shows up in
our api.txt files because of a quirk in the API generation
system.

Change-Id: I2b574943008ed34696b048195c0cac6af1aa0a3b
/frameworks/base/core/java/android/os/Parcel.java
5002b8c972967b9f0f58dcefe6e37ea79fa9a179 10-Jan-2014 John Spurlock <jspurlock@google.com> Use custom classloader if provided for Serializables.

If an explicit classloader is provided during unparcel, use it
when deserializing java serializables.

Change-Id: I2b354f0b55359201528234b8095aa0bc102928ec
/frameworks/base/core/java/android/os/Parcel.java
879ea451cefa535803d9742506cf51e2e0df75a7 02-Jan-2014 Mark Doliner <markdoliner@google.com> Fix documentation for Parcel.readException().

The old documentation was kind of useless and not clear, so this is an
improvement.

In addition to this change, I think this method should probably be private
instead of public, especially since the values for code are private. But it's
too late to change that now. Also the method name is pretty poor, since it's
not actually reading anything. Something like "throwException" would be more
appropriate.

I'm open to suggestions on how to improve this situation. Maybe mark the
method as deprecated with a comment that it will be made private in the
future?

Change-Id: I830f2bcf606714bd130d8c953aa33974b33c9a83
/frameworks/base/core/java/android/os/Parcel.java
8aee64d18b6b90e46e886a80d8de0467d682ddc4 25-Oct-2013 Dianne Hackborn <hackbod@google.com> Fix issue #11290095: Parcel change causing crashing in KLP...

...when reading from empty byte[]

Better handling of empty bundles and parcels.

Change-Id: Ie9182e43a52b8f163e8fb20bd1d110e0832683e6
/frameworks/base/core/java/android/os/Parcel.java
4a7d824c3b41eafc4ff91d3253ff8a9ebd60a454 03-Oct-2013 Dianne Hackborn <hackbod@google.com> Fix issue #10921903: CTS: android.os.cts.ParcelTest#testReadBundle...

...fails from KRS84 across all platforms

My fix for issue #10807048 was wrong, wrong, wrong. The problem was
actually just a stupid mistake in ArrayMap.erase(). This makes it
all right.

Change-Id: I762f7a2d5100bceb86a091ab3d6368edc21b4266
/frameworks/base/core/java/android/os/Parcel.java
e784d1e4cfeaf3a9accd7caa33c087abd8f39040 21-Sep-2013 Dianne Hackborn <hackbod@google.com> Fix issue #10807048: Groupon: The application crash when user rotates...

...device to another mode (portrait or landscape) on Main page.

So, it turns out that Bundle claimed to have an invariant that either
mParcelledData or mMap would hold its data, never both. The new
implementation on top of ArrayMap assumed this was the case. However,
there is one situation where it is not true: an application can take
an existing Bundle that contains data, and call readFromParcel() on it.
The implementation of readFromParcel() would just pull out the
parceled data and stuff it in to mParcelledData for later unparceling,
even if that Bundle already had a non-empty mMap.

To fix this, we just look for this case in readFromParcel() and
immediately unparcel at that point into the existing map, using a
new unparcelling method that doesn't rely on the target map being
empty.

Change-Id: Ib816b6876a6cd2760b7a3372c7a79ca2f12dfeba
/frameworks/base/core/java/android/os/Parcel.java
7e7144218e8681fff2065a891de517bad6fe1b38 14-Sep-2013 Dianne Hackborn <hackbod@google.com> Implement #10666712: NetworkOnMainThreadException should be...

...relayed back to calling application

What's one more exception between friends?

Change-Id: Ib83c7bfbddd397457dcdbe506a8cd2bc0f4fb70b
/frameworks/base/core/java/android/os/Parcel.java
da5a3e12f4f8f965c57d6f93c74190f43ea233f3 11-Aug-2013 Jeff Sharkey <jsharkey@android.com> Richer ParcelFileDescriptor close events.

When reading from the end of a pipe or socket, there is no way to
tell if the other end has finished successfully, encountered an error,
or outright crashed. To solve this, we create a second socketpair()
as a communication channel between the two ends of a pipe or
socket pair, sending a status code with details about why the
ParcelFileDescriptor was closed.

The writer end of a pipe or socket can closeWithError() to send a
message to the reader end. When the reader encounters EOF, they
call checkError() to detect if any error occured. This also detects
the case where the remote process died without sending a success
message.

This design is also extended to support regular files on disk, using
the communication channel above to detect various remote close events
or crashes, and delivering that event to a supplied OnCloseListener.

Replaces JNI with best-practice Libcore.os calls, and deprecates
some flags to match Context.

Bug: 10330121
Change-Id: I8cfa1e4fb6f57397667c7f785106193e0faccad3
/frameworks/base/core/java/android/os/Parcel.java
b87655b3e551c6a32f34084c8533800bbd1aff7d 18-Jul-2013 Dianne Hackborn <hackbod@google.com> Switch Bundle's implementation over to ArrayMap.

That was... um... easier than I thought it was going to be.

Change-Id: Id8f2211c1d5f8145e0bb009dca0f62a590f2b860
/frameworks/base/core/java/android/os/Parcel.java
dcbaf661bfa931f481022c27987798a03ce7a932 26-Apr-2013 Daniel Sandler <dsandler@android.com> Filter out dangerous CharSequences in Notification.

If an app mistakenly puts some Parcelable implementation of
CharSequence in here, Bundle will try to marshal the derived
class, which is going to be bad news when we try to unparcel
it in another process.

Additionally add a proper stack trace to unparceling
failures (otherwise you have no idea where the bad parcel
was being used).

Bug: 8725271
Change-Id: Ide19b986d65c7f47929cf2dde4e62b762c469fee
/frameworks/base/core/java/android/os/Parcel.java
d8e1dbb6bc1fbaf4f2e38c3ba92ced94270deaac 18-Jan-2013 Dianne Hackborn <hackbod@google.com> Rework ParceledListSlice to be much easier to use.

Take advantage of this to return better information about
packages filtered by permissions -- include the permissions
they have in the requested array.

Also fix issue #8026793 (Contact picture shows default pic
while searching for a contact in qsb) by using the base
package name of the Context when reporting the app name
of an operation. Otherwise you could make a resource-only
context for another application and do calls through that
and get reported as the wrong app.

Change-Id: I5e0488bf773acea5a3d22f245641828e1a106fb8
/frameworks/base/core/java/android/os/Parcel.java
97a72f6693a7bee3255b2307c6bb18f66669a36c 11-Jan-2013 Irfan Sheriff <isheriff@google.com> Handle missing static for CREATOR

I made a mistake of missing out on static for CREATOR on a Parcelable
and it threw a NPE which was not obvious. We do not get NoSuchFieldException
when CREATOR exists but is not static.

Change-Id: Ib06f60797c00722075255d45e8189f8cebef9ae2
/frameworks/base/core/java/android/os/Parcel.java
f76a50ce8fdc6aea22cabc77b2977a1a15a79630 09-Mar-2012 Ken Wakasa <kwakasa@google.com> Fix obvious typos under frameworks/base/core

Change-Id: Ia5fc3db1bb51824e7523885553be926bcc42d736
/frameworks/base/core/java/android/os/Parcel.java
047238ced42eea812de9d39a9f32e94d002bfa5c 08-Mar-2012 Jeff Sharkey <jsharkey@android.com> Switch Parcel to static JNI calls, pass pointer.

Instead of using parcelForJavaObject(), pass down the mNativeObj
pointer explicitly. Benchmarks show that writeInt() is roughly 3x
faster with this approach.

Change-Id: I24ca235c334c44be716070aa8066ec8a429eadb7
/frameworks/base/core/java/android/os/Parcel.java
c04db7e06737c5b9bae276ac462858d44002672e 04-Oct-2011 Dianne Hackborn <hackbod@google.com> Fix handling of "allow fds" state.

Didn't take into account nesting of bundles. Boo.

Change-Id: Ic8cf21ad8d6f4938a3e105128624c9d162310d01
/frameworks/base/core/java/android/os/Parcel.java
9ecebbfbf768fd63e9a6c9a09c86d81c7737ee2d 29-Sep-2011 Dianne Hackborn <hackbod@google.com> Add mechanism for Parcel to not allow FDs to be written to it.

This is to help implement issue #5224703.

Change-Id: I026a5890495537d15b57fe61227a640aac806d46
/frameworks/base/core/java/android/os/Parcel.java
b46ed7636be9341b6ce0b158b3d86f34a437e6da 03-Jun-2011 Dianne Hackborn <hackbod@google.com> Add new Fragment API for explicitly saving/restoring state.

Also fix issue #4519821:
Blank screen displayed on tapping "Battery Use" option in the settings

We weren't correctly doing the full Activity resume code when coming
back from delivering a new Intent or result.

And fix a fragment problem where we still weren't correctly restoring
the state of list views. (I think this was from a bad manual-merge
from master.)

Change-Id: If79dc7e998155c39ab8c04781f6c73a82238a9ef
/frameworks/base/core/java/android/os/Parcel.java
9a84983a9fd9959671e102045eaf185b83291269 08-Apr-2011 Dianne Hackborn <hackbod@google.com> DO NOT MERGE. Integrate from master: Improve activity manager debug dumps.

Activity manager now does all dump requests into apps
asynchronously, so it can nicely timeout if there is an
app problem. Also lots of general cleanup of the am
dump output.

Change-Id: I99447b87f77a701af52aeca984d93dfe931f065d
/frameworks/base/core/java/android/os/Parcel.java
c9119f5034d36f548bbddd8f60291e24ab4e270b 01-Mar-2011 Dianne Hackborn <hackbod@google.com> Add ParcelFileDescriptor APIs to get raw fd.

Change-Id: I66ba72ffffd27237e60c9411453eef950ae62705
/frameworks/base/core/java/android/os/Parcel.java
a28b83ee04ca25100781f37a50665d6e1b05e3a2 28-Feb-2011 Elliott Hughes <enh@google.com> Fix Parcel.writeNative to not ignore 'offset'.

Also switch to using libcore's array bounds checking. (This variant had no
detail message and was missing the length check.)

Bug: http://code.google.com/p/android/issues/detail?id=15075
Change-Id: Icfc045bd59403b59f02d95c8514abf881d3996e5
/frameworks/base/core/java/android/os/Parcel.java
3c1363beec9c142c062d8704b8bef4230b42eae5 20-Jul-2010 Dan Egnor <egnor@google.com> am 2f0dc6d9: Merge "COMMENT ONLY change to add some warnings about ParcelFileDescriptor behavior with Parcel.writeValue()." into froyo

Merge commit '2f0dc6d9f50ceece294e9db393583e655d3bf781' into gingerbread

* commit '2f0dc6d9f50ceece294e9db393583e655d3bf781':
COMMENT ONLY change to add some warnings about ParcelFileDescriptor
b3e4ef37021a9e5518fdbc7d0cbb0a1709d5301b 20-Jul-2010 Dan Egnor <egnor@google.com> COMMENT ONLY change to add some warnings about ParcelFileDescriptor
behavior with Parcel.writeValue().

Change-Id: If55fcce29559379855735ff5297cf4f46d5d6be6
Bug: 2847738
/frameworks/base/core/java/android/os/Parcel.java
703e5d3c7fbeb8ca0978045db01d40318f838612 15-Jul-2010 Brad Fitzpatrick <bradfitz@android.com> StrictMode: avoid an allocation in common case

Make the initialValue() of the ThreadLocal be null, so checking it doesn't
cause one to be created in the case of an RPC call not using StrictMode.

Change-Id: I3ea19ce444a1b3c39a6e53c5cb5d4faf4b07a6c8
/frameworks/base/core/java/android/os/Parcel.java
5b747191ff8ad43a54d41faf50436271d1d7fcc8 12-Jul-2010 Brad Fitzpatrick <bradfitz@android.com> StrictMode: gather and return violating stacks in Binder replies

Now, when Thread A has a strict mode policy in effect and does a
Binder call to Thread B (most likely in another process), the strict
mode policy is passed along, but with the GATHER penalty bit set which
overrides other policies and instead gathers all offending stack
traces to a threadlocal which are then written back in the Parcel's
reply header.

Change-Id: I7d4497032a0609b37b1a2a15855f5c929ba0584d
/frameworks/base/core/java/android/os/Parcel.java
08bbffb049c135c5dfd40d261118c90d1a6dc111 25-Feb-2010 Bjorn Bringert <bringert@android.com> Support CharSequence lists+arrays in Bundle+Intent

Fixes http://b/issue?id=2468093

Change-Id: Id82686f6ca8c9501f6db8a07018278a78ddacd05
/frameworks/base/core/java/android/os/Parcel.java
6aff905048ba3b03724f17e2aba9089872e14cd2 22-May-2009 Dianne Hackborn <hackbod@google.com> Fix a major bug in Bundle when unparcelling from AIDL.

There was a serious problem in the Bundle(Parcel) and readFromParcel() methods,
where it wasn't doing the copying of the Parcel that Parcel.readBundle() does
and is a basic requirement for it to work correctly.

This re-arranges the code to make all of these functions (hopefully) correct.

Also fix a problem in Parcel where we were not duping fds when copying data from
one Parcel to another.
/frameworks/base/core/java/android/os/Parcel.java
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/java/android/os/Parcel.java
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/java/android/os/Parcel.java
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/frameworks/base/core/java/android/os/Parcel.java