Hardware key custom rebinding (1/2)

Framework changes to allow rebinding of the actions performed on the following
key press events: Home long-press, menu press, menu long-press, search press,
search long-press, app-switch press and app-switch long-press.

The available actions are: Nothing, open/close menu, recent apps switcher,
search assistant, voice search and in-app search.

Patch Set 1: Initial port from ICS [done by Konstantin Koslowski]
Patch Set 2: Added 'assist' (search) key customisation
             Option for ICS-style in-app search, in addition to jellybean-style
             search assistant.
             Fixed double haptic feedback on virtual key press.
Patch Set 3: Checkbox to enable/disable all custom bindings.
             Home long-press defaults to no action on devices with
             an app-switch key.
Patch Set 4: The recent apps list will be preloaded on the initial down press
             of whichever key to which it is bound.
Patch Set 5: Fixed menu virtual key press sometimes performing the custom
             action bound to the menu key instead of just opening or closing
             the menu as it should.

Conflicts:
	core/res/res/values/public.xml
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java

Change-Id: I72c0d220a09d79230bfa299e0521ed693e5c25f1

Conflicts:
	core/res/res/values/config.xml
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
Disable Google's home-key handling code

This might be temporary. Upstream now includes multi-behavior key
handling for HOME, which conflicts with our own code when running
in parallel, resulting in funky behaviors. Since the CM implementation
is more flexible, let's keep that for the time being and disable
Google's; It might be a good idea to rewrite our version so that it's
an extension of theirs, though.

Change-Id: I5d55301772607315b410880c1194a0076e21cb80
android.policy: Fix launching home when waking the device with the home button again

Was removed in b055725d0b1df2f23ecfa95bff940aa8b57f97df

Change-Id: I19b5db8e64d7e547f4013ab8df7ff879d1a51167

Conflicts:
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
Camera : Powerkey shutter (1/2)

Allows user to take use power key to take pictures/videos

Change-Id: I85a1e1761199f4604672be42a3a5005227f5451a
Port "Bind VolUp+VolDown to toggle the ringer"

Squash of http://review.cyanogenmod.org/#/c/20256/ and
http://review.cyanogenmod.org/#/c/22716/

Change-Id: Ied3767969482a7ea44f7f0e9222a2f78fe8f507c

Conflicts:
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
Configurable 0, 90, 180 and 270 degree rotation

Change-Id: Ia1859c51d71ef9d01cec2d13c6468ed89c6ac53e
Contributor: jonasl

Conflicts:
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
Port "Framework Track Control : Switch from broadcast to audio service"

Ordered broadcast is unreliable.
Switch to using the Audio Service's dispatchMediaKeyWithWakeLockToAudioService
as it sends the event to the correct receiver.

Patchset 2 - Switch power widgets over as well
Patchset 3 - Rename handler 'what' message to be more consistent
Patchset 4 - Fix renaming mishap

Change-Id: I022720a551b94637f7b16258dfb6a22234bcb736
Lockscreen VolCtrls : Don't raise volume on skipTrack

Set mIsLongPress to true when longpress was successful to avoid
volume from being changed on release

Change-Id: I874f7d66248e30535dddfec53ddd299718e3fa3d
Squashed commit of audio changes from CodeAurora

MediaFile: Add DIVX and MPEG2TS file format

Change-Id: I9f8cfbe8138c6d3d0d824bff2542b91d72a06b82

audio: Define ANC headset and proxy device

Change-Id: I681d73433d874ec66ec0b1f1f39869008d7d7d0d
(cherry picked from commit 1e6c410eadfc510a9f116bb3da142214fe761225)

audio: add support for QCOM WiFi display

- Define QCOM WFD intents
- Register and handle WFD intends in AudioSystem

Change-Id: I1e5a73d4aa5595bed44d24652647c12b7ef4ae1f

audio: add support for QCOM audio formats

- Add support for EVRC, QCELP, and WMA formats

Change-Id: If3676b88fa287b484ef8616c0a6b67177b61a720

PhoneWindowManager: Changes for WFD.

- WFD now sends WIFI_DISPLAY_VIDEO intent to set UI orientation.
- PhoneWindowManager to listen for WFD intents.
- Display on WFD should be same as seen on the HDMI, so set the
  orientation to HDMI orientation

Change-Id: I638adaa906e2151b1c6ae496343714fe828f5dbd

audio: add support for QCOM vocoders

- Add support for EVRC,QCELP and other
  QCOM vocoders

Change-Id: I9b2a18fe7d01a9198eb470e94e7176b7a6da2c7c

Conflicts:
	core/jni/android_media_AudioTrack.cpp
	media/java/android/media/AudioRecord.java
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
bugfix: allow recent apps dialog to work with menu long-press

With the original patch, using the recent app dialog from a
menu button long-press would cause the dialog to be preloaded
and then dismissed on key-up. Check long-press behavior settings
as well as short-press to prevent the dismissal.

Change-Id: Idf1d27aa725547e0ddc44905e27da6c1b4540fab
Make system layout fill the window properly on expanded desktop mode

This commit fixes e.g. the gap on the bottom of the lock screen
or the gap on the right side of status bar on landscape mode.

Patch set 2  : Remove whitespace issues
Patch set 3  : Code cleanup
Patch set 4  : Damn whitespace errors

Change-Id: Ic8a6b748f94d7dcc883201579d199898713c90fd

Conflicts:
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
Frameworks: Expanded desktop mode (1/2)

this commit adds expanded desktop mode. You can decide if only
navigation bar, only status bar or both are hidden when expanded
desktop was activated.

This commit also sorts the entries a bit more logical and alphabetical

Change-Id: I3fe0b1eee6e13cf10debbcbe5338fa901b785c84

Conflicts:
	core/java/android/provider/Settings.java
More options added to hardware key rebinding (1/2)

In the same vein as the available Navbar actions, this adds the following new hardware key rebind options:
 * Last app: Switches to the last app
 * Power button: Turns off the screen
 * Custom app: Launches an application/activity of your choice

Change-Id: I1ca98b1c615e4336c644d0247b4277b9421a96ff

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

Conflicts:
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
Fix issue with hardware keys KEY ACTION comparisons.

Menu unlock now works properly.

Patchset 2: Switched detection of onscreen keyboard input to KeyCharacterMap.VIRTUAL_KEYBOARD

Change-Id: I092258fc20789a12123e319ed2dca25c55bb9f0c
Framework: Add Home/Back buttons available for rebinding (1/2)

Finally, we can disable or rebind all hardware buttons!
Also adds Expanded desktop toggle and Notification shade toggle

Change-Id: I0ca51c25e8434696a514fd1ef1e1e33543bf066a

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

Conflicts:
	core/java/android/provider/Settings.java
	core/res/res/values/strings.xml
	core/res/res/values/symbols.xml
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
Fix for navbar back/menu firing for longpress actions

Change-Id: I9661b8faa001e69b3a44c91d53f0e858031d08dd
Status bar Auto-Hide [1/2]

Add an option to auto-hide status bar when there are no
notifications.

PS 2 : Improved Logic

Change-Id: I9f9fdb443f6ed981c1941716491cef757b42f8ba

Conflicts:
	core/java/android/provider/Settings.java
	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java

Conflicts:
	core/java/android/provider/Settings.java
	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
Fix and cleanup Expanded Desktop Mode

no need to call state and mode several times from provider settings.
Cleaned up.

Also fix for the ugly lockscreen gap on expanded desktop
mode 1 and 3

And fix that mode changes reflects directly to the screen if
expanded state = 1

cheers

Change-Id: I8cc0d936af270d72f2fb5c005a28c575576d894b

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

Conflicts:
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
derp

Change-Id: Ibc2466a5e72d67064d97b673bcef34bc972aad6d