Add national data roaming and make it optional (1/2)

by Robin Morawetz (Rdlgrmpf) and Davor Bertovic (LorD ClockaN)

Change-Id: Ief840d818ecf4b8ebb088fab34f01878d0a9f2d7
Fix contact lookup with CLIR prefix

Allow phone numbers which are saved in the phonebook including a
CLIR prefix to be correctly resolved on an incoming call.

For a proper fix, all special cases detailed in calledPartyBCDToString()
should be taken into account; unfortunately that function cannot be
directly used as it currently is.

Change-Id: Ie070e1efc0921bfb0ae0802f500afced5071a652
Fixing a bug that when an app is dismissed or loaded that changes
the current active audio stream, if the volume overlay is visible during the swap,
if you adjust the volume (with hard keys) after the steam has changed while
the panel is still visible, the wrong panel (view) is still visible on-top of the
one that is being adjusted.

A good way to replicate this is to
   Open the Phone APP
   Go to the Keypad Screen
   Adjust the volume (not the icon on the overlay)
   While the volume is visible Hit the HOME hard key
   Before the volume dissapears, adjust the volume with hard keys

You will hear and feel the volume adjusting, but the overlay will not update.

Change-Id: I1c7a23d6e569d8582d3dab20523eef3aa9bdde0c
Add sanity check for battery capacity range.
Keep track of tetherable USB interfaces in both up and down link states.

USB network interfaces that are present-since-boot are never issued "added"
(or "removed", for that matter) notifications from netd, and thus, are only
discovered by Tethering when their link state changes.  Prior to this
commit, such interfaces were only tracked on change to "up" link state,
even though the interfaces were _not_ removed on changes to "down" state.

On some devices (e.g., epicmtd) a change to "up" state only occurs after
(i) IFF_UP is set on the interface, (ii) the rndis USB gadget function is
enabled, and (iii) a USB cable is connected to another machine.  Since
rndis is enabled immediately before the start of USB tethering, the "up"
state is achieved asynchronously, and often _after_ Tethering looks for a
tetherable interface.  However, "down" state is synchronously reported when
IFF_UP is set, and thus, serves as an effective mechanism to notify
Tethering about the existence of the interface.
Add framework definition to include Torch

Change-Id: I21de929089b06e5022f90c1fab6228a543102a19
Revert "Update MountService to work properly with the Galaxy S line of phones, and allow both internal and external SD to be mountable via PC."

This reverts commit 5d1dfaf2802b7859bc33e1bb860e3819afffae60.
Allow mounting of multiple volumes via mass storage (framework part)

The volumes to mount is taken from storage_list.xml (allowMassStorage)
rather than ro.additionalmounts in CM7.

Hand ported from the following patches:

commit 0233209827d95221399b1fe0185f79863fc6bf26
Author: Tony Layher <layhertony@gmail.com>
Date:   Sun Jan 2 12:46:38 2011 -0500

    forward port of 93bb95929a0c017498625a87654b4d114fe17b96 to allow mounting and sharing of mulitple volumes to MountService.

    Change-Id: I9fa3994e6e7b85360b451f57c1cdd4df921bc035

(the second part of the above patch was not ported)

commit 678fadf517126c8468ef2d8dcaea9c9fce96035b
Author: Josh Stone <cuviper@gmail.com>
Date:   Sun Nov 7 13:38:58 2010 -0800

    MountService: Remount all volumes after USB disconnect

    If USB was removed while UMS was enabled, the MountService was only
    remounting the primary share.  Any other shares, like the HTC Inc's
    emmc, were left in limbo.  This patch now iterates over *all* shared
    volumes to remount after disconnect.

    Change-Id: Ie6fd49ad80ba6fa0e4e194a386549cac786b4bbe
    Signed-off-by: Josh Stone <cuviper@gmail.com>

commit b1da9ed003edcd10ccda56fdf087e8f1b0f77b2a
Author: Josh Stone <cuviper@gmail.com>
Date:   Sat Jan 22 12:03:53 2011 -0800

    MountService: Only notify PackageManager for true ASEC changes

    MountService can be dealing with multiple mounts (emmc, sdcard), but
    only the EXTERNAL_STORAGE has any ASEC mounts on it.  Since the PMS
    updateExternalMediaStatus doesn't specify the path, we need to make sure
    it's only called for the real ASEC mount.  Otherwise we get into nasty
    race conditions when multiple mounts are coming and going, like during
    UMS transitions, and sdcard-installed apps tend to break.

    Change-Id: I85c6a601e84afd30b44270b0892686c2d864ce8d

commit c8c58f3d14fbb8c77ab1e90541e59fb74bef54cf
Author: Josh Stone <cuviper@gmail.com>
Date:   Sun Mar 6 12:34:50 2011 -0800

    MountService: Unmount secondary volumes more carefully

    Use the same message handler for unmounting both the ASEC external-
    storage path and any secondary paths like emmc.  This seems to help with
    additional race conditions encountered on Inc.

    Change-Id: Icca71756fa6721bd85da1f35b8b8c7fc7caa1eb1

commit 47495ab860ed97499e0c4268bf40b1f9c429bf99
Author: atinm <atinm.dev@gmail.com>
Date:   Sun Apr 10 14:50:41 2011 -0400

    Allow multiple shareable SD Cards by using getShareableVolumes()
    to get all the volumes that are shareable and allowing
    sharing/unsharing for all of them rather than just the hardcoded
    getExternalStorage calls.

    Unmount immediately if PM is not updating and not an ASEC
    mount. Change from Josh Stone.
    Change-Id: Iaf1a7a4484deac373e1c1d7bf16d5f22ca49fd64

    Only allow package manager for sdcard (packages aren't on
    external card).

    Change-Id: I0d148ea52dc1285905a9dd061d1ceedcfb761b52

    Take out extra logging.

    Change-Id: I6beb007700ef4be04c3eb273bbf2069c87b30011

Change-Id: Ibc11b9affdf22a438a4d25cf14435fb16b3ad6d6
MountService: Account for switchable vold pair

Switch the volume properties when persist.sys.vold.switchexternal is
in effect.

Change-Id: Id475a4704c17a3da418758994b7ad73a3928c99b