telephony : update stk functionality for samsung phones ported from CM9

Description: This update enables sms based stk Apps(Mobile identinty, mobile banking,...) on Samsung phones

* moved CatService.getInstance() from IccCard to GSMPhone and CDMAPhone,
we need to pass iccSmsInterface on CatService startup for sending sms.

Change-Id: I32c89b823cecae711b93a0f6717b9bdb39e9ab7e
Framework: Volume panel cleanup (1/2)

- Hide notifications volume slider when linked with ringtone volume.
- Default to expandable panel style. This was made default on the settings side
in commit Ibd25bd1f058d49ab0560ed073c3b45782d165cbb
- Use a ContentObserver to monitor system settings.
- Moved static final variables out of Settings.java.
- Cleanup of a couple of untidy bits from initial jellybean merge.

Patch Set 2: Fix whitespace.

Change-Id: I738da63a4d59ad5ee52b1aa9e0e4f4c9c93a7576
Merge "telephony : update stk functionality for samsung phones ported from CM9" into jellybean
Merge remote-tracking branch 'cm/jellybean' into jb-dev
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>
services: Fix tethering (softap) startup

The interface must be started after firmware reload. If it's not
started, the driver is unable to configure it.

Change-Id: I18b255caf961d23c0f7d4d29dfef040761536c2e
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

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
Adds ability to answer call with hardware HOME button (preparation to winter time)

Change-Id: I5d10da25360067dd443ffc83ec408e0b3001ad6b
Lockscreen: Keep weather info up to date

Now that the timestamp is relative. Also, restrict the condition text
field from being updating while a refresh is active. (so a time
update will not mess up the label)

Change-Id: Iec1c97f71853cbeaf2ed94776e723b08418e1eea
NavigationBar : Customization

Allows user to customize navigation bar.

Features :
 - Choose from 1-6 # of buttons
 - Re-arrange / assign buttons

Patchset 1  : Initial commit (No support for Nexus 7)
Patchset 2  : Same as patchset 1
Patchset 3  : Update recentPanel on configurationChange
Patchset 4  : Rebase
Patchset 5  : Add n7 support
Patchset 6  : Fix n7 layout issues
Patchset 7  : Theme change fixes (Update referenced resources on demand)
              Update a few deprecated api calls
Patchset 8  : Disable google now ring in edit mode
Patchset 9  : Fix n7 lowLight alignment issues
Patchset 10 : Fix ordering/button disappearing issues
Patchset 11 : Rework orientation logic (Fixes the small back button issue)

Change-Id: Idc9f5f401f15d207504e49de47666bb5510a06ca
Changed settings to show PowerMenu on Tablets

Shows powermenu on Tablet, instead of Instant Off

Removes the need for individual overlays.

Original Change-Id: I47175f53a014e3593834765cc733da4462986416

Change-Id: I258d988b3ded6333ffddf0818dcac7fcca8810e6
ProviderMap: remove hashmap when entire user specific entries are removed

User specific entries in  mProvidersByNamePerUser and mProvidersByClassPerUser
isn't cleared when entire user specific providers are removed. Fix is to remove
the user specific hashmap in such cases.

Change-Id: I6edf211ced873e59f3b89ffceb9eceec13ea8f3f
ContentProviderRecord: Remove external process reference when finalized

ContentProviderRecords is removed from provider map by activity manager service
when the process hosting the content providers terminates and this causes GC
to free the content provider records but the reference to external process
using the content provider isn't cleared. Fix is to clear the reference and
unlink for death notification.

Change-Id: I67fd10cee57b02257792d0c9b4569fe11dea7648
Added check of ActivityInfo launch mode when starting activity.

When starting a singleTop activity from a singleInstance activity,
the onNewIntent() callback was not called when expected. The
reason for this was that only the launchMode specified on the
intent was checked and not the launchMode specified in the manifest.

Fixes issue 17137.

Change-Id: I1a9bc1007d6f5145bf93a6161534732bf5214b7a
Add Center Clock-Framework Part

Change-Id: I80cfef86d556a468925ec22f42dd1638f7c90565
Frameworks: Option to control cursor in text fields using volume keys (1/2)

This feature is moved to framework so it also works with third party keyboards.

Change-Id: I8e20240e7bee5351ab20bb3d701eb95a5fd3e112