audio: audio enhancements for playback and recording.

- Add playback and record support for EVRC, QCELP,
  WMA, AMRWBPLUS, WAV, ACE, and EC3.
- Add support for 5.1 channel recording.
- Add support for in call music.
- Add constants for call_state and vsid.
- Add definition for FM and proxy audio devices.
- Remove unnecessary format checks in frameworks.

Change-Id: If3676b88fa287b484ef8616c0a6b67177b61a720
(cherry picked from commit 6ca6cc15af88992ea485a458e67a8546b156672e)
(cherry picked from commit f65028d1752969bf43c853c1bb12ecd12055d5e8)
(cherry picked from commit b1952442db41188b74f331bd2397a579424821ab)

Conflicts:
	core/jni/android_media_AudioRecord.cpp
	core/jni/android_media_AudioTrack.cpp
	media/java/android/media/AudioFormat.java
	media/java/android/media/AudioRecord.java
	media/java/android/media/AudioService.java
	media/java/android/media/AudioTrack.java
	media/java/android/media/MediaFile.java
	media/java/android/media/MediaRecorder.java
  audio: Support for MSM audio formats

  -Add audio format support for Voip.

Change-Id: Ie045ba926b3e1266afd3fb6fba09af3a55daaeef
(cherry picked from commit d1810964ecd2d50064a1fed51049ddc354b9a788)
(cherry picked from commit cd9c6dc56bedcabca77c2a01c6fb15f4d2e8edd5)
(cherry picked from commit 01c09aeae38716860ef1a806985cc946dca93f60)

Conflicts:
	core/jni/android_media_AudioTrack.cpp
audio: Add ifdefs for QCOM_HARDWARE audio features

Change-Id: I0ea423f9a28934dc1fee73bbb53c0d9d867877ff
ifeq QCOM: video: Add support for extended media listener

Bulid fails with error: 'MEDIA_QOE' was not declared in
this scope on other targets
Change-Id: Ic83be8f1acc4188b81fb903911023b39c614775b

Conflicts:
	media/jni/android_media_MediaPlayer.cpp
Register the ActivityTrigger on all QCOM devices

Change-Id: Iaecb5dd82be64fea5a625cc42243203d0f2f2ce9

Conflicts:

	core/jni/AndroidRuntime.cpp

Conflicts:
	core/jni/Android.mk
	core/jni/AndroidRuntime.cpp
CAF: bunch of commits from CM fw/base to fix build

MAP: Support MAP Server role on Bluedroid with javax.OBEX lib.

Handle No END OF BODY for MAP 1.0 Server Get request. Only the
last packet need send the 0x49(End of Body). For intermediate
packets, we need to send 0x48 (Body).

Move definitions for MAP or FTP Service Specific UUID and
Request type for CONNECTION_ACCESS_REQUEST intent to
BluetoothExt APK.

Change-Id: I04cfeb8d53b8f8c19160a2de1eb448a7ec1f2c41
CRs-fixed: 504042

Conflicts:

	obex/javax/obex/ClientOperation.java
	obex/javax/obex/ServerOperation.java
(cherry picked from commit 375d8f5e964263eadeeadd312384c1f8ebf9ff21)
(cherry picked from commit 7788ff7b9ff1ff5adbd38d9b7d8584d6a127dad6)
(cherry picked from commit 717672648b06678e3d1f10aa1f5c8791b4add846)

frameworks/base: media: add support for DIVX files

Change-Id: I6e922c5d6e17ee590606268af97b7894f35d19ae
(cherry picked from commit 47fea00316203aebba194644f95ca58ef4ff4400)
(cherry picked from commit 1f3ab64cf5bb19ec2e8a996750f44389d4d07187)
(cherry picked from commit 066dff510ec44ee06c3a375e32133e21fbedf9fb)

Camera: Add support for QC camera features.

Added APIs and keys for all QC features. This
will enable application to get/set paramters.
(cherrypicked from commit d0c5a0ee7e9af41320fed00ff324c6d0f22eb697)
Change-Id: I68c23aaf7267645efeb4d4743b390a048292b7fd
(cherry picked from commit ad2fd19b7ed6a610cab4bd3ae261178bcafa66af)
(cherry picked from commit cfcebdf9c402bb5f1976f07ba5dc1e15f5811fc2)
(cherry picked from commit 4ef4a5e937b2ec7355c5893c80dbc103d163364d)

media: Configure audio encode parameters only for valid audio codec.

Added extra check for audio codec in profile
(Cherrypicked from commit eed39d0053dee6649424867418e511b918b3c634)

Change-Id: Ie1ac5252e3d544ce61af2b3ae5080ec9c6966e44
(cherry picked from commit 81dfde16ffb3fc8f6b110a3df2921a3d3361db10)
(cherry picked from commit 8069457a313853247f2017237e29bcf3b3eb2323)
(cherry picked from commit db4bf86a6b50ce84b5a678476ee08c12f0fe272b)

frameworks/base: Add support for FM feature.

- Added changes for FM device

Change-Id: I61ab748166e3a8703054b664ba9c53da251f6b83
(cherry picked from commit fa1e277978d7bdf139fe2d790ef4a8b413d31c01)
(cherry picked from commit 2df42ca1ad2b04b9b4920d90ee60658150dfb210)
(cherry picked from commit 292b40317c470e9579bf875f43adecccc2f98b3e)

Add support for BeiDou and Glonass

Added masks for BeiDou amd Glonass
when deleting aiding data

Change-Id: I2d59f862b5c47204f053787038b3f180adc89eba
CRs-fixed: 498642
(cherry picked from commit 768a780bb1c74b708531257d8a2108c9fc3b62dd)
(cherry picked from commit 5d538b89d43f9c6d7c880ca494d62c0392e5dc0e)
(cherry picked from commit 45d57711ebb9f93ecada25fe5dc657323875fdc9)

geofence: Low power geofence HW implementation

HW implemntation overwrites the SW implementation

Change-Id: Id738f2808691c35e5507e1d557bc5351456953ad
(cherry picked from commit 8bf22473ed32b2b54698ed7f5ab57c32402cb0f1)
(cherry picked from commit 9f8539ff017acce6de46923377730e8475452aa8)
(cherry picked from commit 335ee83dd9651f9fd8a0d32a78b08890da77ebb6)

Bluetooth: HID: Add support for Set Idle and Get Idle Commands

This patch provides an interface for application to send Set Idle
and Get Idle commands to remote HID Device. Support for these
two commands was missing from exisitng code, so existing code
design is reused to add support for these two commands.

Change-Id: I548362cc328498920b2dae740f1a76b2cc2d6a67
CRs-Fixed: 522511
(cherry picked from commit e98b0a3118b9c7a72f8e65e7e080259e6f032db8)
(cherry picked from commit 14fd26713fa406174f6d770506708dbbfd8c2a2e)
(cherry picked from commit 3a40bbc088c1c09fba649d40a7670760c17d5a38)

Bluetooth: Add trust device feature.

Add set trust feature where the remote device is marked
as a trusted device for subsequent connection.

CRs-fixed: 523135

Change-Id: I9bde4d7dfe07d9d63b58a661ed2413f45501bd7b
(cherry picked from commit 7ba8616bb2ba13558cdf0f00d7e1ae5b38a6ba53)
(cherry picked from commit 9bda1cf301ea06b0873d28fe1b0fcadaf2b1fb73)
(cherry picked from commit 50f4f58ae97f433b68e79a14cb662a7db9b410c9)

gps: LocationManager CTS proximity test fix

CTS proximity tests needs to use
GeoFenceManager for GeoFences to be
able to see mock locations

Change-Id: I7696ac4f0985fe526f1eb2dacd177b4db3c658ae
CRs-Fixed: 452172
(cherry picked from commit 43b1e745e0c05139419a0ba401ac39f2660eb82b)
(cherry picked from commit 1ee5f6effacd2e7eecd05829a81f5ad1614cae4f)
(cherry picked from commit d1c6929760149783e8c4927e8777fc7632ec1989)

NLP Combo feature : screen network locations

If Combo Provider is listening for network
locations, it will want to screen these locations
before they are sent out to clients.

CRs-fixed: 483398

Change-Id: I3156e85307b40aee9fb06b433c83153c84b8ed42
(cherry picked from commit ddbb57088ac245defa661d377408cb6985e67562)
(cherry picked from commit 53c26d1255ffca867e9446e1f4fd5b9e8cfdb7d0)
(cherry picked from commit ad1c7fe0b66211fcb0749de434a6a939d1bc1978)

Fix: FATAL exception during Autonomus group creation failure

Failure in forming an autonomus group causes FATAL IllegalArgumentException
exception as deviceAddress will be empty in mPeersLostDuringConnection.

Added check to verify if it is autonomus group before trying to remove
any peer or clear device list.

Change-Id: I486463782e85c7f0031b6f62ec5aaf8afb11b652
CRs-fixed:554767
(cherry picked from commit 55bb4f6dd9fc3e5c8aa7c8bc8ece01f0603e0a83)
(cherry picked from commit 3dbbf14276a403841e1d69cd2624dfad74d6f540)
(cherry picked from commit 8642fcd59686e54c1ea215016bfa7562d17b27c0)

gps: added 1021 gid for gpsone_daemon

Gives system_server gps gid to allow for
communication to gpsone_daemon

Change-Id: I59d7e99ec996891b19fa15a3ed66e055e6bccad8
(cherry picked from commit 059dd10116b75d60bc8bc5ee52030e28fcf740a5)
(cherry picked from commit 3dfcb80ede3707eb8dbe7c607b22393b66829ea1)
(cherry picked from commit ea7473eab71834c46e8f61d95bf269abb755f95d)

OBEX: Implementation of MAP and PBAP client role on Bluedroid.

Implementation changes to support MAP client and PBAP client
role on Bluedroid stack.

Change-Id: Ic75e0bea10b8420aef928d868cc25acd769d5620
CRs-fixed: 530274
(cherry picked from commit 8a9036e632092e7311e5009cb96a016b52bbacca)
(cherry picked from commit 1e4719192c82f89d0b2dba67ec99c72c77060f9a)
(cherry picked from commit abb73fd0ef2dd64c44944cff99dc81c1fd368d36)

Bluetooth: Changes to support AVRCP 1.5

Provide support for AVRCP1.5 so that remote controller
is able to browse the list of available media players
on DUT and select the media player from the available
list of players, from remote.

Change-Id: Ia1a340d1efaa16091e684f6ff7c738ce0accaee3
(cherry picked from commit 22af77236fccc546c6bec3956b0027fc1642ba1c)
(cherry picked from commit c9bc05d824197921a44d862026b3bc352d0f6a27)
(cherry picked from commit 3fad1502e08b9ccc7ecfd3f35be4b38190d9aa81)

Initial bringup frameworks-base

Change-Id: I6139dcf0242cc202d1dcef923047acd826279ecf

Conflicts:
	core/res/res/values/strings.xml
(cherry picked from commit e967ee02698585592bea9a276f4b706302c00da8)
(cherry picked from commit dae69c5768b0096cddccca07c72bf82fc57209eb)

Conflicts:

	core/res/res/values/strings.xml

Bluetooth: SAP: Add framework changes to support SAP

Bluetooth SIM access server (SAP) profile APIs added to the
framework APIs. As SAP server supports only disconnection
of SAP profile level connection this API is implemeted
along with other APIs.

It registers bluetooth state changed callback with the
adapter service,once there is a change in the bluetooth
state,it will bind/unbind the SAP service which is
implemented in BluetoothExt.APK.

SAP service, and other SAP Application layer is implemented
in BluetoothExt.APK.

Change-Id: I7215f503244c5ee277e83d60d6960f18559acfb9

Conflicts:
	core/java/android/bluetooth/BluetoothDevice.java
(cherry picked from commit 86d14a60283c2315bea8a34f24dd0c22139a136b)
(cherry picked from commit 718d372656fa7a456247c4909baac6e7104049f8)

frameworks/base: Use ExtendedRemoteDisplay to launch Wifi Display

- RemoteDisplay class is used to launch WiFi Display
  implementation in the Android framework with a discovered peer.
  There is a need to support proprietary implementation of wifi
  display instead of the framework implementation.

- To enable this support, ExtendedRemoteDisplay is added,
  which launches the proprietary solution. ExtendedRemoteDisplay object
  is created if the class is available in the package. If the class is
  not available the default implementation will be used by creating
  RemoteDisplay.

Change-Id: I2e2a5e552bc86888848c0402bafd873620b05c21
(cherry picked from commit 912d47682c5ec65ff0aaa0a59cc5d28110482392)
(cherry picked from commit a9c91658d40a38f4f6e204a33d9bc70bcf97ede3)

Bluetooth: Support  HFP Client role on Bluedroid.

Implementation changes to support HFP Client role
on Bluedroid stack

Change-Id: Ie37e95d3b0e3f785af818fb495c835e420792f4d
(cherry picked from commit 072fad9a9a17c2a31660e7ac6cd6eba82d63fe50)
(cherry picked from commit 559508238c2fe1f8f10049549b8a29053399407c)

base: IPV6 tethering support

Added two APIs addUpstreamV6Interface and removeUpstreamV6Interface,
required to pass the interfaces to use to the Router Advertisement
Proxy.
Added a dun entry to the networkAttributes value in
res/values/config.xml.
This is to allow tethering to work with the dunRequired property.
Added dun to allowable tether upstream type.
Enabled debug flags for debug logging inside framework components.
Regardless of MOBILE_TYPE_DUN APN being available, if dun_required
flag is not set, fall back to HIPRI as a preferred APN for the
embedded data call.
Debug logging was enabled by default which was causing security
vulnerabilities. This patch disables debug logging.

CRs-fixed: 555006
Change-Id: Idb0971449473554bcd749d478563db7ba351d55d
Acked-by: Subash Abhinov Kasiviswanathan <subashab@qti.qualcomm.com>
(cherry picked from commit 43bac130e4bab1c12792d29042f85c6a10372553)
(cherry picked from commit be8491aa9d82177c200eab1af713244a7bbbdcfc)

Bluetooth: Add Get/Set socket option to the Bluetooth Socket

Introduced Get/Set socket option to the Bluetooth Socket.
For these APIs it will directly call the APIs of Adapter
Service.The corresponding APIs have been implemented in
the Adapter service of native Bluetooth APK.

CRs-Fixed: 557180
Change-Id: Ic49b66599fb3c4c500e52295895d708dbc172cc7
(cherry picked from commit 80a5a8d9f465458c5417e532cc98970951f2c675)
(cherry picked from commit 5b4c228467074d2b71e02cd36c220584dba818fe)

Bluetooth: DUN: Add framework changes to support DUN

Bluetooth DUN profile APIs added to the framework APIs.
As DUN server supports only disconnection of DUN profile
level connection this API is implemeted along with other
APIs.

It registers bluetooth state changed callback with the
adapter service,once there is a change in the bluetooth
state,it will bind/unbind the DUN service which is
implemented in BluetoothExt.APK.

DUN service, and other DUN Application layer are mplemented
in BluetoothExt.APK.

CRs-Fixed: 557180
Change-Id: I6ce1204ac6138e28ad7486f2855f0f7444ad3886
(cherry picked from commit 2e60ff9becce9db20d1714786f74cb29b9ad9c74)
(cherry picked from commit ff766d48a4f6eb1b2efeaefa30f8467deefccfa1)

Fixing Compilation issues.

Change-Id: I3934dc861454f245a61c34a2cbd8dbd31147dfb2
(cherry picked from commit bb239ed63fe95c799c634109614c27c71ccfa544)
(cherry picked from commit 4143b7c7a3beb6835f673404bc13cddd22e1c298)

Media: Add quality levels for two 4k resolutions for camcorder

Add quality levels for two 4k resoltuions for camcorder
(cherrypicked from commit 96cade18e068306a3d04ec943b4c61e2817ea54b )

Change-Id: I1c9e9d0bafd566071e98d335ca6f2de6eb96a71d
(cherry picked from commit d3ff34920391435de1cda07f1674ac4047b4967e)
(cherry picked from commit 152f78ae3f314a6efb02a4602bce4fba65569c48)

frameworks/base: move the traces file to avoid data loss.

If an ANR comes just after the framework reboot, the traces for
the framework reboot will get over-written with the ANR traces.
So, We are missing the traces for the framework reboot which
makes debugging the framework reboot difficult.

This patch will rename this trace file for the framework reboot
once the ActivityManager collects the traces.

Change-Id: Iee07b13ba02d8aab9cc43567aa5df131cc43c737
(cherry picked from commit 93348d7b1f48f1b3f6759bcff73153dce5709ded)
(cherry picked from commit 1c7cad9ce8b66eebe556c76c01a9396d449411cf)

frameworks/base: creating sperate files for ANRs traces

If an ANR comes just after the framework reboot, the traces for the
framework reboot will get over-written with the ANR traces. So, We
are missing the traces for the framework reboot which makes debugging
the framework reboot difficult.

Even for multiple ANRs in different apps, we will get the traces for
the last ANR.

Most of the time traces show that the call is stuck in some native call
and we do not have any info about the native call stack becuase we do
not collect the tombstones for teh ANR.

This patch will create one trace file for each application in case of ANR
and the filename would be traces_<app_name>.txt and the traces for
framework reboot will be stored in traces.txt

Change-Id: I5b78ce62b26f25d3dc14097e2988ba12c2d77826
(cherry picked from commit ea06416e430a85bef7cd21367e5948251f17c225)
(cherry picked from commit d678e40d53f0788b2883aa7c524da666ac2a8b4d)

BootReceiver: Skip subdirectories inside tombstones scan

Properly handle (vendor-specific) subdirs under tombstones
directory by skipping over them.

CRs-Fixed: 407529
Change-Id: I0cecd9fa629fad35d62d508ddaf13968c2e46f93
(cherry picked from commit 1440830e6ea3097278bc74762f09a21854d1b416)
(cherry picked from commit e042bd6f036a6dd3af4924b9a9111d9499259ae4)

Fix for framework reboot on format of SD card

MountService is not aware of /storage/emulated/legacy path which is
causing the issue on ExternalStorageFormatter service. We are getting
the a list of non-emulated SD cards and format the first one .

Change-Id: Iba1a9f6e40499f7f6fb095a5ee4e711b02bed439
CRs-fixed: 489037
(cherry picked from commit 40079ccd78e35e33c087d52a082a242a9cfde001)
(cherry picked from commit 00b593813b1d0821fe28e7eff15a6a4fb2b227ce)

p2p: Flush the p2p scan result on group remove event

Flush out p2p scan results on receiving group removal event.
p2p scan window will be updated on next p2p scan.

Change-Id: I3bcfed355574478bda2cac688b7df956c2701683
CRs-Fixed: 504022
(cherry picked from commit eaeecac20b125ffff8fea7a12b514999fff6bf5f)
(cherry picked from commit 3541e2cb0768865ecc312ead33f48c673e177ac3)

Conflicts:
	core/java/android/hardware/Camera.java
	core/java/com/android/internal/os/ZygoteInit.java
	core/jni/android_hardware_Camera.cpp
	core/res/res/values/strings.xml
	media/java/android/media/CamcorderProfile.java
	services/java/com/android/server/display/WifiDisplayController.java