History log of /frameworks/base/core/jni/android_hardware_SensorManager.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d9d4e1bc3bcecea31cc0aa055758915b3cbc6bef 24-Apr-2017 Peng Xu <pengxu@google.com> Return correct value at initDataInjection and avoid crash

When data inject channel cannot be initialized return false, instead
of causing crash.

Bug: 37549731
Test: run GTS SensorHostTest, test succeed with no failures observed.
Change-Id: Ia7a078b9e7d4f61927da8d76a0206e588fd6686c
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
3e13204989f0ebb1706cf44223b2ed28968ea46b 18-Apr-2017 Peng Xu <pengxu@google.com> Intern Sensor object string using java String.intern()

At JNI initialization of Sensor object, call Java String.intern()
to intern strings to save memory. Interned empty string, a commo case
in sensor permission field, is cached to save a call to NewStringUTF.

Also changed nativeInit to use helpers in core_jni_helpers.h.

Bug: 36002383
Test: cts passes
Change-Id: Id98e777ef2c105bd296133a70df611afb226ba74
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
5f73ab7e2a591d45b67a7aaf1b26cc9dcfe58502 17-Apr-2017 Jesse Hall <jessehall@google.com> Include vndk/hardware_buffer.h for AHardwareBuffer_getNativeHandle

This function is now VNDK-only, and not in the NDK header.

Bug: 34050596
Test: build
Change-Id: Id0147dbdb65157da9692e7f38b1a068be18be2b9
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
1cfde25e4019bc050c7f030896825fd90d69baf5 20-Jan-2017 Peng Xu <pengxu@google.com> Local geomagnetic field update to sensor

Local geomagnetic field strength, declination, inclination information
is useful for magnetometer calibration. It also benefits rotation
vector sensor implementation as it gives a baseline that aids detecting
magnetic field disturbance.

Bug: 30958130
Test: Tested with marlin. Modified hal implementation can get local
geomagnetic field.

Change-Id: I373fe74d5a091a3adb80ff3c61e441edcf5a253b
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
7d96fa0b2acb54a0951dbaf6f9ca5ecc1e2b1f0f 05-Mar-2017 Peng Xu <pengxu@google.com> Sensor direct report HardwareBuffer implementation

Implemented API for sensor direct channel creating with HardwareBuffer
shared memory. Also, simplified jni code for ashmem shared memory direct
channel.

Bug: 30985702
Test: cts-tradefed run cts --module CtsSensorTestCases
--test android.hardware.cts.SensorDirectReportTest
Test: cts-tradefed run cts --module CtsSensorTestCases
--test android.hardware.cts.SensorNativeTest

Change-Id: I067fe21808cf370e4a659fc762131ed3007334a8
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
caf8930960ae68d5be2a8952cc127bf3f154f433 07-Mar-2017 Mathias Agopian <mathias@google.com> fallout of splitting libsensor out of libgui

Test: compile & run
Bug: treble cleanup
Change-Id: Ib696126506cc9df01dcf9e09779ce05ddb69e4b6
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
fa2672b71d9501463d8b9de5162f069b9e48384b 07-Dec-2016 Peng Xu <pengxu@google.com> Sensor event direct report mode implementation

Implementation of sensor direct report API. In this verison, only
ashmem(MemoryFile) backed direct channel is implemented. Support
of HardwareBuffer class will come in a following CL.

Test: tested with demo app
Bug: 30985702
Change-Id: I29cae5cb2615c7a128fe203ed1545c03010ca4aa
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
72c538707cd20c9c104a0b1af7f1ff42fb922f6f 23-Jun-2016 Peng Xu <pengxu@google.com> Merge \"Sensor: Make getId() more varied\" into nyc-dev
am: 94b61cb340

Change-Id: I8803994892af96c0defc5eda5e9a806ce7ec1bc9
716866d56542c267ccb686992de590ad04c84215 26-May-2016 Peng Xu <pengxu@google.com> Sensor: Make getId() more varied

Apps from different developers will now receive a different
ID for the same dynamic sensor. Additionally, all apps
will now receive a different/new ID for the same dynamic
sensor after a factory reset.

Bug: 28775590, 29547335
Change-Id: I15b48b974cbb1d53cc33dfdb7b9eb5f1b562190c
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
e8f804c32f5a99014e47abbaac34f127c16fabfb 28-Apr-2016 Peng Xu <pengxu@google.com> Merge "Fix docs build by adding include <endian.h>" into nyc-dev
am: a969867

* commit 'a96986745f793407a4d83e2b94c620f9e7594c9d':
Fix docs build by adding include <endian.h>

Change-Id: I37989627fd2cde69cb3b4bec8f218bb0e0431a03
d5ec5f919dc835ca302d97c3cdc8f5b11f0584f0 27-Apr-2016 Peng Xu <pengxu@google.com> Fix docs build by adding include <endian.h>

Added endian.h into include list to avoid build error in "docs".
The function "htobe64" in endian.h is used.

Change-Id: Ic76dab25d34c56b58b97849dfa7b103963392568
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
893b42e4f85398aaf447f95762d0027e8777943b 27-Apr-2016 Peng Xu <pengxu@google.com> Merge "Intialize Java Sensor object uuid in JNI" into nyc-dev
am: 7b0a3be

* commit '7b0a3be0012edae0d17e0a92c66b30c9025f5886':
Intialize Java Sensor object uuid in JNI

Change-Id: I2fd63c82891e1b7290406190d076d08dab4917c5
b85b1fed45eef4c4a095c7697156054cd2acf4e1 21-Apr-2016 Peng Xu <pengxu@google.com> Intialize Java Sensor object uuid in JNI

This fixed an "invoke method on null object" error, because of
Sensor.mUuid field is uninitialized.

Bug: 28305085
Change-Id: Ic0139986b3d623c198068585a411814ab4f5f83a
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
16842209da671dd34836f8ca68a5a70822ed9e34 30-Mar-2016 Peng Xu <pengxu@google.com> Merge "Several code quality improvements" into nyc-dev
am: 50c52c0

* commit '50c52c0b34566c4501801062175124f663f118ac':
Several code quality improvements

Change-Id: I107ab5523dc0b383d576aecc185b8c24807ac5d3
4a4baef431195f3f0a7ce3ea8b8bc316ed68228c 17-Mar-2016 Peng Xu <pengxu@google.com> Several code quality improvements

* Added GuardedBy annotation.
* Fix a misleading variable name.
* Use anonymous namespace to reduce namespace pollution.

Change-Id: Ieffbb8dfd6abbb24b705445659fb96f7ce861592
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
85ea32b02a2b281ee5092ef8c31c44a0ba3452a4 16-Mar-2016 Ben Wagner <bungeman@google.com> Switch frameworks/base/core/jni from gcc to clang.

Switch from gcc to clang and fix errors detected.

The immediate motivation is that gcc with libc++ stl does not use
'explicit' in the stl, causing issues for use of unique_ptr.
The longer term motivation is to fully move to clang.

BUG=22414716

Change-Id: If77436c1e7601f20289603862be33b85880ab4bd
(cherry picked from commit 60b1c8ef860b8cd5a1fa453a8951d6e8d7c44734)
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
a08c9f52db26fa78e33464b57cc0597981352270 05-Feb-2016 Peng Xu <pengxu@google.com> Fix potential crash when getSensorList returns error

bug: b/19937981

Change-Id: Ibfb8c625609923b4e60fa73685dbeb10944ab2b9
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
a29583553957a19755bfba26f48b6ebe977879cb 27-Jan-2016 Peng Xu <pengxu@google.com> Implementation of sensor additioanl info report

This implements a mechanism for sensor hardware/HAL to deliver additional information beside sensor
readings to application. It includes internal temperature reading, untracked delay of sample,
location and pose of sensor device placement in phone frame, etc. This is also a very expandable
frame to account for future need.

Change-Id: Ifd52ff315ef675086326f118eab773b0194bae23
Note: sensor additional information report used to be called sensor meta data.
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
a35b5539a95342799a18e95616c5e5751a198e4c 20-Jan-2016 Peng Xu <pengxu@google.com> Dynamic Sensor Discovery Implementation

Defined the dynamic sensor meta data type and UUID of sensor, as well
as the broadcast intent that is related to dynamic sensor status
change.

Modify SensorManager, SystemSensorManager and the JNI layer to support
dynamic sensor discovery.

Added SensorNotificationService to notify apps that sensor connected
or disconnected via broadcast.

Change-Id: I28adfb005357d7e3983d65117d6865830c75027d
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
ea1831d211ea0e6b2d161c714bb0786369ef2df5 24-Sep-2015 Elliott Hughes <enh@google.com> am b57dd722: resolved conflicts for a884d81e to stage-aosp-master

* commit 'b57dd722f1dc0663417da37d3a82f8283ad3c982':
constify JNINativeMethod function pointer tables
b57dd722f1dc0663417da37d3a82f8283ad3c982 24-Sep-2015 Elliott Hughes <enh@google.com> resolved conflicts for a884d81e to stage-aosp-master

Change-Id: Ice485967fa96f13786024b6939b826638e906ff0
76f6a86de25e1bf74717e047e55fd44b089673f3 19-Sep-2015 Daniel Micay <danielmicay@gmail.com> constify JNINativeMethod function pointer tables

Change-Id: I4036c924958221cbc644724f8eb01c5de3cd7954
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
2af91d0e104b3a80f3e832e464e52893a55a715f 30-Jul-2015 Aravind Akella <aakella@google.com> Call getInstanceForPackage instead of creating a new SensorManager instance.

Bug: 22529981
Change-Id: If077e042a4af940dfb1fc9c4ac8b9d352dd32685
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
8d1e344f400fa35f3ddfef78a1dd1d805f3718b0 29-Jul-2015 Narayan Kamath <narayan@google.com> Revert "Call getInstanceForPackage instead of creating a new SensorManager instance."

This reverts commit 5967ddbf05f146bdb6744207e3daed1aa76fc637.

Change-Id: I6d58129585a30d7c2ef39c8cbe796fd696c93f56
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
5967ddbf05f146bdb6744207e3daed1aa76fc637 25-Jul-2015 Aravind Akella <aakella@google.com> Call getInstanceForPackage instead of creating a new SensorManager instance.

Bug: 22529981
Change-Id: Id3adfbcf55d1268db1a555c72a06456a5219c086
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
516e40ea5d73cf577d8dec559c7902b79cf483d0 02-Jul-2015 Aravind Akella <aakella@google.com> Clean up get sensorList.

Change-Id: I46da79cc50b5130a3f21bd567f50b29bf22196f9
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
d123b51f8b14047804612cb1b15288cca81ed4f9 29-Jun-2015 Aravind Akella <aakella@google.com> Changes to Data Injection mode APIs

Change-Id: Id55eaf03656d2d55df7f38d4cac643d97354fe9b
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
f38226ab40feadb63b9b0c48d148db919ecec7f4 23-Jun-2015 Aravind Akella <aakella@google.com> Report accuracy for Linear acceleration and gravity sensors.

Change-Id: I57cbf5212458ee6cf4a9019331004a3e0cf71a74
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
b9d71a6f89b1183f6389b1774652445a420c6cbf 30-Apr-2015 Svet Ganov <svetoslavganov@google.com> Add body sensors app op - framework base

Change-Id: Idd5cd573fab3405e5b2a6e51d2d9d115650826e9
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
18ebf732b84d0575c871db35b25bf000e0c7c6a6 21-Apr-2015 Aravind Akella <aakella@google.com> Add hidden SensorManager APIs for injecting sensor data.

Change-Id: If49467ced1a719c49bb5ac7ab670e86ff4642eaa
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
3b4049e79b1ea2872891cc0e87146e146111d502 18-Apr-2015 Jeff Brown <jeffbrown@google.com> Fix leaks due to GC circular references.

The DisplayEventReceiver and SensorManager event queue both get
leaked when the Looper thread they are attached to dies because
the Java object holds a strong reference to its native peer and
meanwhile the native peer holds a strong reference to the Java
object through JNI.

Fixed the issue by indirecting through a weak reference as was
done for InputEventReceiver some time ago.

Bug: 12455729
Change-Id: I3d80a2a190192d1a2981bf5ae0cad30f0f7688a5
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
88445990b426499f25a9f37bc3b75f6e0267b4cb 27-Feb-2015 Aravind Akella <aakella@google.com> Pipe the packageName of the application from the java layer to SensorService.

Change-Id: I8610d676be0249e1047bb539bfeb76cc34538edf
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
9ba7c1c17567c19f0187d73cdca55ca99590674e 11-Feb-2015 destradaa <destradaa@google.com> Intern strings used in Sensor information.

By creating a local 'interning map', Sensor information, such as: name, vendor,
stringType, and requirePermissions; 92 string objects are not needed anymore.
This frees ~6KB of memory in all processes accessing SensorManager.

Change-Id: Idfdc98160363bec844c34fc3b71f5e8d7843a7be
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
987f79f60bb1f0a4bcd3ef22e57301c743f0b94f 19-Nov-2014 Andreas Gampe <agampe@google.com> Frameworks/base: Replace LOG_FATAL_IF in core/jni

Do not use LOG_FATAL_IF in JNI setup. This is one-time on startup
and important enough to always check.

Add a header with common helper definitions. Move to inlined functions
instead of macros to clean up the code.

Change-Id: Ib12d0eed61b110c45d748e80ec36c563e9dec7e5
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
0288ca63e3f0aee05ad2ede23564e04e53aca950 28-Jul-2014 Aravind Akella <aakella@google.com> SensorManager API changes.

i) Remove WAKE_UP_* sensor constants and corresponding string constants.
ii) Add getDefaultSensor(int, boolean) API.

Bug: 16399898
Change-Id: I53cb7dec02568503ebd35983e6b0c64e9c5070d7
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
27900358f2f5b89e8b01516b28a916d16c99ba9b 04-Jun-2014 Aravind Akella <aakella@google.com> Add java APIs for Sensor reportingMode.

Change-Id: Iba6bb11f990d9966b86bf02d70ced7312f3e64a8
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
1a68f24ab724957a249047f1e62365b8ef525649 27-May-2014 Aravind Akella <aakella@google.com> Merge "Adding wakeup sensors, maxDelay to java SDK."
ef0b88181e30252d07901976a81524fc8bb03066 27-May-2014 Etienne Le Grand <etn@google.com> am 7326defe: am d7439d8c: Merge "Add confidence to the heart rate monitor definition and clarify onAccuracyChange" into klp-modular-dev

* commit '7326defe2de7ace86236bf0c5353fe0687c3f99c':
Add confidence to the heart rate monitor definition and clarify onAccuracyChange
af80510e85b301c8d8ba1e28e7edc7a0c9156a1a 16-May-2014 Etienne Le Grand <etn@google.com> Add confidence to the heart rate monitor definition and clarify onAccuracyChange

Change-Id: I686d07dcd603bf3c3be3c1471de8be3b4e240855
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
2f8b91449efafa5fb0057cd0150233681c65c9e3 12-May-2014 Aravind Akella <aakella@google.com> Adding wakeup sensors, maxDelay to java SDK.

Change-Id: I6da09b146e2b1c90efea7faf40a0503a89542cb0
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
35187bd5c1e40ea52a672c525411d05cbcdd6482 12-Feb-2014 Aravind Akella <aakella@google.com> Bug fix for wakeup sensors.

SensorService should hold a wakelock till the app reads events from a wakeup sensor. Currently drivers hold a wakelock with a
timeout while delivering events from a wake up sensor like Significant Motion. This hack can be removed now.
Bug: 9774884

Change-Id: I6cab0147c63f57a494a61f4dfe2a64a27dfe1b4e
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
cd9a7bb3ba742606f93dcbd549d6d6eeb1cb5247 08-Apr-2014 Aravind Akella <aakella@google.com> Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor

This reverts commit 819239e5bec90ee3c861ac45fffac4a832a183a1.

Change-Id: I4bbb222e5c9dc65aed03aa28fd9e0f00fe335819
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
819239e5bec90ee3c861ac45fffac4a832a183a1 05-Apr-2014 Etienne Le Grand <etn@google.com> Revert "Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor"

This reverts commit fd53d8352a4617941b0a0449390aa562a01ea1d3.

Change-Id: I1c6322d1d992147bb5ef201238374966128c1a61
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
fd53d8352a4617941b0a0449390aa562a01ea1d3 25-Mar-2014 Etienne Le Grand <etn@google.com> Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor

Change-Id: I16e5da68f860494e24cca64075be76fad02617bc
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
4838e338129e09a37b8c8ad5e44f85ec5cd3aea1 03-Jan-2014 Ashok Bhat <ashok.bhat@arm.com> AArch64: Use long for pointers in hardware classes

For storing pointers, long is used in hardware classes,
as native pointers can be 64-bit.

In addition, some minor changes have been done
to conform with standard JNI practice (e.g. use
of jint instead of int in JNI function prototypes)

Change-Id: Icdeb67f9273fb2d8f6d88ca68d7f7d0950796fc1
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
4bdc37d315a6dbdcf2425e70423ec43d7b74e102 02-Oct-2013 Aravind Akella <aakella@google.com> Fix registerListener and flush bugs.

1) Fix registerListener to return false when called with a Trigger sensor. Correct java documentation.
2) Remove reservedFlags and FlushCompleteListener parameters from the public API.
3) Create SensorEventListener2 which extends SensorEventListener and has the onFlushCompleted callback.
3) Change flush(Sensor) API to flush(SensorEventListener).

Change-Id: I56ce4e0b6e329483e129a14ad7e8a0cd35665ffe
Bug: 10894703
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
b4c76b18a369d940f448bcc55d7245b6b30084dd 27-Jun-2013 Aravind Akella <aakella@google.com> Sensor batching. Implementation for registerListener(with batch support) and flush APIs.

Bug: 10109508
Change-Id: I6dfdd986bd8c3368cb568fa7d90abf9c03de9aef
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
3c9c0918635143f373817fff1ce5131b995282cf 05-Aug-2013 Jean-Baptiste Queru <jbq@google.com> Revert "Revert "be more robust with handling unknown sensors""

This reverts commit 17548b3c70fe4f29d33367a61300f5323f5efe99.
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
17548b3c70fe4f29d33367a61300f5323f5efe99 03-Aug-2013 Jean-Baptiste Queru <jbq@google.com> Revert "be more robust with handling unknown sensors"

This reverts commit 80ba0a6baec17d5ac5a1e6f9e4b84f7d013d07e6.
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
80ba0a6baec17d5ac5a1e6f9e4b84f7d013d07e6 04-Jul-2013 Mathias Agopian <mathias@google.com> be more robust with handling unknown sensors

- add support for new sensors (post 4.3)
- don't crash when encountering an unknown sensor type
- clean-up

Bug: 9683153
Change-Id: Iecd883e8a7d0297be1bd2bd4f00c5cc3ffcbccfe
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
9a8df4dcf9f83c1cf0cd8dedeb51d1ff8a52a2b5 13-Feb-2013 Jaikumar Ganesh <jaikumar@google.com> Add new sensor types.

1. Add uncalibrated gyros and magnetic field sensor.
2. Change max number of events from 3 to 16.
3. Add new APIs for trigger sensors.

Change-Id: Ifac5c0024c8e5f88b721e5cd97ff26afaaa36717
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
1aab1dbca5cf7386797ce609c768249247233186 13-Mar-2013 Jaikumar Ganesh <jaikumar@google.com> Revert "Add new sensor types."

This reverts commit bc03a348d78326dee779a8ecc325799c9fceac98.
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
bc03a348d78326dee779a8ecc325799c9fceac98 13-Feb-2013 Jaikumar Ganesh <jaikumar@google.com> Add new sensor types.

1. Add uncalibrated gyros and magnetic field sensor.
2. Change max number of events from 3 to 16.
3. Add new APIs for trigger sensors.

Change-Id: I1957d723de2b65c31dadaee7386fd8d51ea2f7e5
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
b1d90c8f60f71422196c337f1d078b68867f5710 07-Mar-2013 Mathias Agopian <mathias@google.com> fix JNI use of incStrong/decStrong

Change-Id: Ia11b404dea483dc19bbc30f4d7bcff516655e180
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
db772d813492517dce2bd7e6e9fbc88e42b30c02 01-Feb-2013 Mathias Agopian <mathias@google.com> rework SystemSensorManager.java

- it doesn't need a dedicated thread to pull events out
- events are now sent directly to the proper looper by
the sensorservice

this simplifies things a lot.

Change-Id: Ifa32fed3eff9007a2ee03aaaa837412cb4c15e52
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
0b6d77bdeb99ca92709828c7c4867eec2f727f88 08-May-2012 Mathias Agopian <mathias@google.com> better error handling in SensorManager

Change-Id: Id0498e950f1407a10e3b2d88e63c2141ac95d103
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
277d1b2f49897e90a8ec9bd0f05ea4ed62d2ff28 05-May-2012 Mathias Agopian <mathias@google.com> report a Sensor's version from the HAL

Bug: 6447433
Change-Id: I0f46cb378de9bde20876608d5459689cc108c592
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
25157e458d6e10b027d1ba6b78b0487156c9f57a 16-Apr-2012 Jeff Brown <jeffbrown@google.com> Refactor SensorManager to move non-API bits into a subclass.

Changed the SensorManager class so that it only contains API-related
bits including what's needed to support legacy sensors. Mostly just
moved stuff around. Making the class abstract is safe because
it does not have a visible constructor in the API.

One minor change is that the cache of sensor type to sensor lists
is now per instance of SensorManager instead of being static.
We can fix this if desired.

Another small change is that we bail out early from registerListener
if the listener has already been registered for the particular
sensor. This happened for both legacy and standard listeners.
The problem is that the ListenerDelegate maintains two lists of
sensors, one is a Map and the other is a List. Adding a sensor
twice causes one entry to be added to the Map and two entries to be
added to the List, but when the sensor is removed the next time, only
one entry is removed from the List, leaving it in an inconsistent
state.

Removed Sensor.getLegacyType() since the value it provides is only
needed in LegacyListener and we don't really save any significant
computation by caching it. Removing the field makes support for
legacy sensors a little more self-contained.

Bug: 6339552
Change-Id: I50d41ac97cf535924f2bfa2026d28547a4d00286
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
bb9ba8bae551305acba4f60577b0f461a9421bc5 29-Nov-2011 Mathias Agopian <mathias@google.com> BitTube::read now handles EAGAIN

Change-Id: Iacda2386342ba0727bbf278f6c597488d5467bb8
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
4fe6c3e51be77e35f40872cdbca6c80f8f8b7ecb 14-Sep-2010 Jeff Brown <jeffbrown@google.com> Replace epoll() with poll() and rename PollLoop to Looper.

As part of this change, consolidated and cleaned up the Looper API so
that there are fewer distinctions between the NDK and non-NDK declarations
(no need for two callback types, etc.).

Removed the dependence on specific constants from sys/poll.h such as
POLLIN. Instead looper.h defines events like LOOPER_EVENT_INPUT for
the events that it supports. That should help make any future
under-the-hood implementation changes easier.

Fixed a couple of compiler warnings along the way.

Change-Id: I449a7ec780bf061bdd325452f823673e2b39b6ae
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
050b56244ff46d43e4886018d7cd20f0b1dc02b9 30-Jul-2010 Mathias Agopian <mathias@google.com> Added SensorManager.getMinDelay()

Exposed the new "min delay" sensor property through native and
java sensor apis. This allows the caller to know what is the
maximum rate at which a sensor can return events, or, if a sensor
works in "update" mode (events returned only when the value changes).

Also augmented SensorManager.regusterSensorEvent() so that it can
accept a value in microsecond in addition to the 4 constants already
defined.

Change-Id: If425e9979892666df8c989d7de3c362230fa19e0
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
23e8de26b7b3d04daf08526f314c2fdd2f8fee65 22-Jul-2010 Mathias Agopian <mathias@google.com> propagate sensor event rate properly

Change-Id: I32e67d30e4295285a6827956cc8161b2025d70bc
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
1bf797857e025e8a71db86fb9e79765a767ec1eb 15-Jul-2010 Mathias Agopian <mathias@google.com> new SensorService

remove old sensor service and implement SensorManager
on top of the new (native) SensorManger API.

Change-Id: Iddb77d498755da3e11646473a44d651f12f40281
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
f5d95cbc1a6974afeb4d3155bdaa8dae55722a39 08-Jan-2010 Joe Onorato <joeo@android.com> less log spew
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
270e87f71abc2edf446dbec20c725c823e8c7f37 22-May-2009 Mike Lockwood <lockwood@android.com> Sensors: Use a native_handle for the data channel instead of a single file descriptor.

This eliminates the requirement that all sensors share a single file descriptor.
This, along with concurrent changes in other projects, fixes bugs b/1614524 and b/1614481

Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
f013e1afd1e68af5e3b868c26a653bbfb39538f8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
/frameworks/base/core/jni/android_hardware_SensorManager.cpp
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/frameworks/base/core/jni/android_hardware_SensorManager.cpp