Build minimal fonts (2/2)
Navigation Bar: Ability to enable on every device 1/2

This adds a new Menu item Settings -> System -> Navigation Bar

Patch Set 5 : Just a rebase
Patch Set 6: Rebase
Patch Set 8: Rebase

Change-Id: I23a508fa3268e63fbbc9a8305d011db3ca7722a0
LockscreenShortcuts : Minor code cleanup

- Reuse pre-existing launchActivity()
  - Now uses correct start flags
- Add check for secure lockscreen and act accordingly.

Change-Id: I6c2c3e1c87239267601d78eb38778d0388f4a41c
Framework: Option to not lock automatically when a call ends (1/2)

When a call ends while the screen is off the phone is automatically locked. This commit adds an option to disable this behavior.

Navigate to Phone->Settings and uncheck the option Lock when call ends under the advanced settings section.

Commit includes option in english and translation to portuguese.

Change-Id: Ib37d1be2e2238d822c1db2cfc6d23353588a6127
Add simple caching to XML compilation

XML compilation stage will perform many (expensive) resource ID
lookups - for the same entries. Adding this simple cache can
dramatically improve performance of this stage (often a bottleneck)

Updated: fixed for Mac OS X (also tested on Windows, Linux)

Change-Id: Ib1ab82ba9bf901bc2a3f9027b47d680861d6c315
Signed-off-by: Jorrit Jongma <jorrit@jongma.org>
frameworks/base: Add support for wired headset detection

Change-Id: Ia6f26af85aded9decbce93fc2f381f39ff9ab81b
EventHub: Modify the keyboard layout file name for headset button

The keyboard layout file name was formed based on the name of
tabla sound card on current machine. If it doesn't find such
file, it is going to use Generic keyboard layout where the
key mappings are different, even though the scan code is same.
The sound card name differs across different machine types.
So, generalising the keyboard layout file name will work across
all machine types.

CRs-fixed: 344297
Change-Id: I416b6179f51ac98fe7dfae5268ffb58c243540a4
frameworks/base: Fix for headset switch detect

- Headset Switch detect is not functional
- Headset driver on modem in 8x25 and 7x27A targets
  introduces a delay of 500ms before reporting headset
  events to application processor to avoid the problem
  of spurious interrupts being reported due to hardware
  limitation on these targets. Frameworks code in JB
  treats button release event received after 500ms after
  button press as long press event and generates WEBSEARCH
  event. Due to this all the events in 8x25 and 7x27A
  are interpreted as long press events.
- To avoid this problem increase the timeout to more than
  500ms by introducing headset hook delay property for
  these targets.

CRs-fixed: 387247
(cherry picked from commit 5878d849442af33378805f7b9964102119c2fc93)

Change-Id: I03a77666bb217168f7c362bd775dadfbe09fe638
PhoneWindowManager: Release wakelock after headset detection.

- Device does not go to suspend mode after boots up with headset connected.
- Wakelock is not released properly if headsed is detected during boot up.
- Release wakelock in headset intent handler.

CRs-fixed: 384362

(cherry picked from commit 67ddd3c31c7a58aed89f12f956a4d29d58654ed7)

Change-Id: I09f81f4f0e4b2035b13acbb23f6c1dd7b84652c1
frameworks/base: Fix for UI freeze issue with headset insert/removal

- UI freeze is observed while quick insertion and removal of headset
  for multiple times.
- notifyJackSwitchChanged() acquires mHeadsetLock and waits on
  phoneWindowManager lock to call update() as it is a synchronized
  function. sendIntents() is also "synchronized". This function also
  tries to acquire mHeadsetLock. So there is a dead lock, when the
  notifyJackSwitchChanged() acquires the mHeadsetLock before this
  function does.
- update() is called only from notifyJackSwitched() and need not be a
  synchronized function. Removed synchronization on the update() to
  fix the issue.

CRs-Fixed: 390784
(cherry picked from commit 04e683e79c3633e061c71b2ecff4f4c83624d1e0)

Change-Id: I6d274391b68c0a306128d7009bbb651a9b0554f4
Support GSM AT commands for SMS over bluetooth (1/2)

Modifications required to support the older GSM "AT+" commands for SMS over
the bluetooth transport for use with car radios, etc. This must piggy back
on the existing handsfree code as the spec uses that channel for the commands.
(2 parts: frameworks/base and packages/apps/Phone)

frameworks/base:
Additions to JNI and supporting framework code to allow sending of individual
characters and to receive the PDU stream - neither of which are CR terminated.

IccSmsInterfaceManager.java requires a reversion in sendText() to use
enforceCallingOrSelfPermission() instead of enforceCallingPermission().  This
is apparently the only way Phone.apk can actually send an SMS.  (ICS used the
OrSelf variation while JB changed to use the stricter version.)

Change-Id: Icff0d2c55170e9c47302b21ce3f15ce863c8c756
Signed-off-by: Gary Dezern <garyd9@gmail.com>
Allow airplane and silent power toggle (2/2)

Based upon the system already in place by DvTonder

Change-Id: Ibf2587da48679c039f335085fe9b78d493eac158
Allow brightness decrease when filtering is disabled

Change-Id: Ia53196346754d0e896d08951e3a3222554247fd1
Add group mms threading (2/3)

Change-Id: Ia6cd4a395328c56791f10e153aca91976cd36155