Reduce observers in SystemUI: KeyButtonView

This is based on the work by Jens Doll for the StatusBarIconView

The ContentObserver class will be a singleton, so there is only
one observer for all buttons.

On my Nexus 10 it reduced the observer count from 48 to 4.

Change-Id: I3223a18fcb5d2c9c2e7de655c514ff751dcd345d
Signed-off-by: Dirk Rettschlag <dirk.rettschlag@gmail.com>
Reduce observers in SystemUI: BatteryBarController

This is based on the work by Jens Doll for the StatusBarIconView

The ContentObserver class will be a singleton, so there is only
one observer for all instances.

On my Nexus 10 it reduced the observer count from 15 to 3

Change-Id: Ibdd6fca75e5f0245b2897c9d5aebb5a0961cc351
Signed-off-by: Dirk Rettschlag <dirk.rettschlag@gmail.com>

Conflicts:
	packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryBarController.java
Fix BatteryBar showing on all 3 locations

Change-Id: Idbdd16ea5442b032119ce48d586b2207e8cf0281
Signed-off-by: Dirk Rettschlag <dirk.rettschlag@gmail.com>
Camera button rebinding and lockscreen action additions (1/2)

Adds new config_deviceHardwareKeys bitmask for camera button.
Lets you rebind the camera press/longpress and adds a new KEYCODE_CAMERA handler to inject a longpress KeyEvent
in order to let you bind keys to actually trigger the shutter, in addition to launching the app itself.

This also adds KEYCODE_ASSIST and KEYCODE_APP_SWITCH to the available keys to assign longpress lockscreen actions to.

Change-Id: I63583dbbaa0f6a3d21724f4948f86bb01e44b71b

Conflicts:
	core/java/android/provider/Settings.java
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java