Since orientation sensing has been an issue for numerous users, I
decided a spend a little time experimenting with some possible
improvements. I've settled on a couple major changes:
* Perform all lowpass filtering in spherical coordinates, not
cartesian. Since the rotations are what we're really concerned
with, this makes more sense and gives more consistent results.
* Introduce a system of tracking "distrust" in the current data, based
on external acceleration and on tilt. The basic idea is after a
signal of unreliable data -- repeated acceleration or
nearly-horizontal tilt -- we wait for things to "stabilize" for some
number of ticks before we start trusting the data again. This is an
extension of the basic lowpass filtering. One simple example is
after the phone is picked up off a table, we ignore the first few
readings. Another example is while the phone is under external
acceleration for a while (i.e. in a car mount on a rough road), if a
single "good" reading comes in, we distrust it, under the assumption
that it was probably just a lucky reading (i.e. the magnitude
happened to be close to that of gravity by chance).
These changes have allowed me to relax other constraints, such as the
filtering time constants, the maximum deviation from gravity, and the
max tilt before we start distrusting data.
The net effect is that orientation changes happen more quickly and can
happen under a wider variety of conditions, but false changes due to
tilt and acceleration are still avoided well. I think the improvement
is subtle, but it's the best I've come up with in my limited time.
I've also included some refactoring and additonal comments to try and
further clarify the (somewhat twisted) logic.
Change-Id: I34c7297bd2061fae8317ffefd32a85c7538a3efb
- Weren't re-attaching to the current loader manager after retaining
instance state.
- Ensure loaders are being destroyed.
- Fix a bug if you call restartLoader() inside of onLoadFinished().
Change-Id: I89df53db49d8e09047bf55216ebeb0f133c059e7
Merge commit 'c2a836a5f41897267aa92e5fdeecdf94203d640c'
* commit 'c2a836a5f41897267aa92e5fdeecdf94203d640c':
Changed SyncOperation.toKey() to not rely on the implementation of
Merge commit '5005a6c031b5d66c1b47cad6f0dbaacebcbb6803' into gingerbread-plus-aosp
* commit '5005a6c031b5d66c1b47cad6f0dbaacebcbb6803':
Changed SyncOperation.toKey() to not rely on the implementation of
Merge commit 'cdf16787fc1234b7f21a9cddc6f8a27b4056bc39' into gingerbread
* commit 'cdf16787fc1234b7f21a9cddc6f8a27b4056bc39':
Changed SyncOperation.toKey() to not rely on the implementation of
Rendering is implementing by rasterizing the paths into A8 textures.
This cna be extremely inefficient if the path changes often.
Change-Id: I609343f304ae38e0d319359403ee73b9b5b3c93a
When the text ends with an empty line, the getSpans() call to retrieve
styles for it would also retrieve the styles of the preceding line.
Add a special case to detect and prevent this.
Change-Id: I888131cacce6bf45e68c53c931ebe8d58db0b7a9
Simplified locking scheme in Proxy's getProxy(..) method.
Also modified ContentObserver creation to be done from any thread.
Change-Id: I54edb56a86796f08a1310cf1ae1d1f0c42a0cbc8
Bluetooth stress tests include stress tests for enabling/disabling bluetooth,
making the device discoverable/undiscoverable, and starting and stopping scans.
Change-Id: Ic8ba09475ffe5551717438673e0ed3f4bd17cf2f
ClipboardManager was in android.text(!!) so it needed to be moved
up to android.content to have access to the richer data types we
now need.
ClippedData is the data representation. Still needs a lot of
fleshing out to allow holding more than one data type at a time
and perhaps conversions between them. (MIME-oriented interrogation
and conversion will be done through ContentProvider, which needs
to grow an ability to report multiple MIME types and accept a
desired MIME type when a stream is being opened.)
Change-Id: Ifa51bedcd084a677813b255d171804e8496b0cb5
Merge commit '4ae1e382f4b6c5bb9e757f35f82ad48dc02c32af' into gingerbread-plus-aosp
* commit '4ae1e382f4b6c5bb9e757f35f82ad48dc02c32af':
Tracking merge of dalvik-dev to gingerbread
PackageManagerTests was trying to mount and unmount the media without
waiting for the correct state to arrive. It was proceeding with any
state transition.
Some tests had their own volume mounting and unmounting code that was
flawed, so switch it to the more robust mountMedia() and unmountMedia()
implementations.
Change-Id: If464927bb09dd15cb040c6cce195a6ad8452de95
Line-item veto is there, but allows you to cancel some
notifications you probably shouldn't be canceling. (Should
hide the "X" in those cases.)
No preference given to "sticky" notifications, because
there's no such thing yet.
Notifications are now limited to 4 visible icons, per spec.
The implementation is a total hack for now.
Change-Id: Ibdf433ae94189117f983c510fe5e0cff0bf5c44c