Fix certain setting writes being incorrectly skipped.

If a value that previously had a very long value (over the 500 char
threshold) is now set to null, isRedundantSetValue would incorrectly
return true even though the value was changed.

Change-Id: Ia5304743024ec01024be98aa51ed260d38caf93c
(cherry picked from commit c77d6cd62a2ed45e8abf4df3521447edf1620d3a)
Bluetooth: Support  HFP Client role on Bluedroid.

Implementation changes to support HFP Client role
on Bluedroid stack.

Change-Id: Ie37e95d3b0e3f785af818fb495c835e420792f4d
(cherry picked from commit af6f7ea34330500fffd4baa9b8458c0b6afc0ac8)
Re-implement orientation aware volume buttons at lower level

Rework of http://review.cyanogenmod.org/31979

Fixes:
1. inconsistent volume button behaviour depending on app in use
   - the buttons not swapped for some NDK/OPENSL ES apps like
   e.g. MX Player
2. the function of volume buttons on external input devices like BT/USB
   keyboards should not be affected by the main unit orientation

This commit finishes http://review.cyanogenmod.org/18273 - use of system
property has been replaced with config push via JNI as suggested during
the original review.

Patch Set 2: Circumvent the need for "keyboard.orientationAware = 1" idc
Patch Set 3: Don't leak implementation details outside InputReader

Change-Id: I19cc60cb0acb0005ab13fa069f52e3d468d694e7
(cherry picked from commit 5391276ee5cda7784e8475b41a0c17a0558ac2dd)
Camera button support (1/2)

Add new bitmask for Camera button and "hasCamera" boolean.
For those devices that have dedicated Camera key
(like Sony ZL/ZR/Z1/...)

Change-Id: I1a6681664f9f3fd3f30221ba10b082cb5f8cafca
(cherry picked from commit 9dae4ea346ac85d6bf02c93c5fbbb27a2234b74e)
Camera button support: make it actually work

Previous commits were merged so fast that I didn't even
added the code that actually DOES launch the camera.
Let me fix that.

Change-Id: I4fcb3c46e5fd50e273dcf19fd3eb35a3f9d979e0
(cherry picked from commit 0717a9287e91ba6c27bec3a00cb6a5fee7ab7b34)