Because the standard Looper.loop code calls Message#recycle it is
imperative that Handler#handleMessage code not attempt to resue
a message it receives. If allowed to do so it will cause bugs that
could be difficult to diagnois.
This change adds Message#flags and uses one bit to reliably detect
a message is in use and throws an error in MessageQueue#enqueueMessage.
This allows early detection of this bug.
Note: This is not new functionality, but the current implementation does
not detect messages that are in use because it uses Message#when != 0
as the detection mechanism. The problem is that a Message#when value of 0
is valid value used to place a message at the front of the queue and is
thus unreliable.
Another option is to change the setting of Message#when in Message#enqueueMessage
so that it is never 0, although that does change subtly a publicly accessible
field.
Yet another option would be to use other fields but all candidates have
similar problems as when in that they are publicly accessible or even
settable such as Message#target.
Change-Id: I2df600537700a3fe206678f38bcae7329751c4e5
Merge commit 'bbe5fb2b73172a6b42b3406354a3556bd53916e1'
* commit 'bbe5fb2b73172a6b42b3406354a3556bd53916e1':
Fix for a Resource system bug that displayed the wrong name for missing asset.
Merge commit '1f4421048206ca1745ddd6366588759c9c5c38f9'
* commit '1f4421048206ca1745ddd6366588759c9c5c38f9':
Improve orientation sensing when waking up while flat.
- DialogFragment now has an option to not show a dialog, so you can
use your UI somewhere else.
- Deprecated show() versions that were tied to activities.
- Added documentation to DialogFragment class.
- Added documentation to onSaveInstanceState() to explain how the
time it is called is different than Activity's version.
- Fixed some java doc warnings.
Change-Id: If026744c368e2443030d2d9e0a9c808d820857df
Now you can filter the count statement with a selection
and selection args
UnitTests for this new methods are added to the cts project
Change-Id: Id9233aec0eaac08839041ae7cbaba203470ad3d8
Merge commit 'ec58dff06693342f12f295fdb7b41cfcbaeb4f14' into gingerbread-plus-aosp
* commit 'ec58dff06693342f12f295fdb7b41cfcbaeb4f14':
Fix build - remove dead doc link
ProgressBar overrides setVisibilty(), causing it to lose the
RemotableViewMethod annotation and making it impossible to hide a
ProgressBar in a RemoteViews. This change adds the annotation.
Change-Id: Ic1212b99fd52f8c36bef4805bfef5e170b28f0a6
Merge commit '325192593b057f4360e1abddf490b4fae7d60b12' into gingerbread-plus-aosp
* commit '325192593b057f4360e1abddf490b4fae7d60b12':
Fix a few small battery stats problems:
- Actually aggregate discharge amounts.
- Actually print the unplugged battery info when currently plugged in.
Change-Id: I22dd6feb73ac1364eb169d3239ce403b0755bb6c
Use the layout xml attribute splitMotionEvents="true" or the ViewGroup
method setMotionEventSplittingEnabled(true) to enable motion event
splitting. Rules for splitting are as follows:
* Splitting is enabled per ViewGroup. When splitting is enabled any
MotionEvent dispatched to that ViewGroup can potentially be split
into several and dispatched to children independently.
* Each pointer is assigned a target child view when the ACTION_DOWN or
ACTION_POINTER_DOWN event is received. That will be the pointer's
target until it goes up, the target returns false from onTouchEvent,
or the MotionEvents are intercepted.
* Multiple pointers may be assigned to the same target. All pointer
data sent to a target are bundled into a single MotionEvent. Child
views do not need to be aware that splitting has occurred.
Change-Id: I993f838e2f6b455da9812f4742a016dfcd1c4cc9
Remove auto-generated AIDL files and replace them with manually edited
.java and .cpp/.h files so that binder calls can be made from either
Java or C++.
Update the makefiles to not attempt to generate the AIDL files and also
remove the old auto-generated .java files.
Put all the storage-related C++ things in libstorage so that we don't
pollute other libraries.
Change-Id: I82d1631295452709f12ff1270f36c3100e652806
Merge commit 'baf72cd79c2a675c2265384eb704067ab24259a7' into gingerbread-plus-aosp
* commit 'baf72cd79c2a675c2265384eb704067ab24259a7':
DO NOT MERGE 2928156 Accessibility event's parcelableData property not nullified during recycling (GINGERBREAD)
Merge commit '4b1bdc0209650436ebe0dad1020080cc891e97b6' into gingerbread-plus-aosp
* commit '4b1bdc0209650436ebe0dad1020080cc891e97b6':
DO NOT MERGE Fixing Connectivity
Merge commit '39792d2262352ae775091876d5488d2412a2ff92' into gingerbread-plus-aosp
* commit '39792d2262352ae775091876d5488d2412a2ff92':
Fix bugs with granting permissions through onNewIntent().