improve a calculation method for LTE antenna reception level

This proposal will fix a problem that Android devices could
show different levels of antenna bars under the same radio
environment if each device uses different modem.
This behavior makes confusion toward users and others.

That behavior comes from using RSSNR as a metric for
determining antenna bars. Unfortunately, RSSNR does NOT define
performance requirements and error tolerance level in 3GPP.
Therefore, accuracy of RSSNR measurement could be inconsistent
among Android devices or modems.

The patch we would like to contribute here will be offering
Android device to use RSRQ for antenna bar metric instead of RSSNR.

1.)RSRQ, like RSSNR, takes interference into account
   when measuring the radio quality.
   Android already supports measurement of RSRQ.

2.)The performance requirement for RSRQ is already defined in 3GPP.

3.)DOCOMO and other many mobile operators use RSRP and RSRQ
   when designing LTE coverage areas, and alignment here will
   be very beneficial for both users and operators.

Hope this patch helps to improve Android antenna bar accuracy and consistency today.

Change-Id: Id1c3339764294ef51365ab133a1c7b42e14e1800
Signed-off-by: Kensuke Ueda <uedake@nttdocomo.co.jp>
Framework: Quiet Hours Extra Daily Times (1/2)

Change-Id: I38301d53b57f6b0525edd2a7e13a2bd5022e7a65
bootanim: Add continuous splash support

 * We may or may not want to have a very smooth transition from the
   bootloader into Android by way of a continuous splash feature.
 * Add a compile-time flag which disables the initial screen clearing
   so that we don't drop a frame during the transition.

Change-Id: Ic453c901f1030ffebd9bdbeec59109bb5c585629
Telephony: Add support for NETWORK_TYPE_GSM

Add support for NETWORK_TYPE_GSM in TelephonyManager and
corresponding mapping in ServicState.java so that when
application queries getVoiceNetworkType() and currently
camped rat is GSM, they get network mode as GSM instead
of network mode unknown.

Change-Id: I5e971c625532696776b9555ad8cfd85eba4fc423
CRs-Fixed: 526435
(cherry picked from commit 3e01fcec13725955f0ca3fb20730ff21f4edc128)
(cherry picked from commit c70f5687965908cd585e52901cf6cd88bd405140)
(cherry picked from commit 8e3c2300729ecb3cd3e6b640b0174f49e2189f0c)
Telephony: Add TD-SCDMA network modes

1)TD-SCDMA Signal Strength support.
2)Add TD-SCDMA network type support in MobileDataStateTracker class
to identify TD-SCDMA as UMTS variant and use the relevant
kernel data stack tcp buffer sizes defined.
3) Add TD-SCDMA to the list of supported network modes.

Change-Id: I158821574484bfaf47d1660406e591e2afb3be5e
CRs-Fixed: 403258, 479310
(cherry picked from commit 2ba1b7292c6b458fb72587c1f29a5c00b70717cd)
(cherry picked from commit d58b065e7e3d84461a3c981e7a7d4673f3567ef5)
(cherry picked from commit 7844d69d3d323b3969766309c2ad5bc80411fbae)
Telephony: Ignore the timingAdvance field in SignalStrength

Ignore the timingAdvance field since the frameworks is not
utilizing this field.

Change-Id: I8644f20aa1918514da88db5a8bc7394263d61e30
fb: add missing API hide

Change-Id: I5ec3c7060dfd235362309388ec6761d566906f8e
InputWrapper: opt out early if session == null

Change-Id: If111195ba6425ad6b8663601566f9f260738ec77
Dispatch keys to a device specific key handler

Injects a device key handler into the input path to handle additional
keys (as found on some docks with a hardware keyboard).

Configurable via overlay settings config_deviceKeyHandlerLib and
config_deviceKeyHandlerClass.

Change-Id: I6678c89c7530fdb1d4d516ba4f1d2c9e30ce79a4

DeviceKeyHandle: The device should consume only known keys

When the device receive the key, only should consume it if the device
know about the key. Otherwise, the key must be handle by the active app.
Also make mDeviceKeyHandler private (is not useful outside this class)

Change-Id: I4b9ea57b802e8c8c88c8b93a63d510f5952b0700
Signed-off-by: Jorge Ruesga <jorge@ruesga.com>

DeviceKeyHandler : Allow handling keyevents while screen off

Some devices require the keyevents to be processed while the screen
is off, this patchset addresses that by moving the filter up in the call
hierarchy.

Change-Id: If71beecc81aa5e453dcd08aba72b7bea5c210590
fb: respect config_animateScreenLights and fade out if set to true

Currently if config_animateScreenLights is set to true the settings entry is not shown
but the default animation is not fade out which it should be in this case.

This commit fixes this.

Change-Id: I02dfa15d65bc6da30f4e19fbf4698a669cb0e2c8
SignalStrength: Hotfix TD-SCDMA 1 + 2

These checks need to be reviewed, they're making unwarranted assumptions
about signal value formats and possible tech combos.
This appears to work for all possible scenarios I was able to test,
but the "LTE checks" shouln't be necessary at all.

Change-Id: I889e17e79ca2b1b5fcaa393741e19bef9d3f4229
Missing break in switch statement

Change-Id: I462c0c5fec96a850032266b04419ec409ad02174
Use a content observer for getting the default APN

Instead of executing a query of the database for the
default APN on every network state change, an observer
is used on the database to be notifited when the apn
has changed. This prevents unneccesary queries on the
the database.

CRs-fixed: 662137

Change-Id: I3155bd8b53a1877413ed54a861df1bfb1853b9e4
fb: do not block home button if incoming call is a background call

The user want to navigate ahead if it is a call in background.
So we allow it.

Change-Id: If40b8abba05b600191bfc1403f197e624fd7a360
fb: add remote view tile (1/2)

Thanks CM for the base for it....just adapted it to our QS

Change-Id: Ied1dc1191e8aacb579046413dc2b12b1a634367f
AudioService: Show safe volume panel for non-interactive volume adjustments

If safe volume is active, apps calling mp.setVolume() to adjust the
headset to a value higher than the threshold will have the operation
fail silently because no volume dialog is active to pop up the
"do you wish to override" question.
This is particularly bad for peripherals that use the audio jack
(Square readers, Jawbone bands), since they usually require levels
close to maximum for proper communication and the app isn't prepared
to deal with a silent rejection of the requested volume.

Change-Id: I2047d199506106a87841b8b680007c5ab45b527b
SystemUI: fix torch toggle delay on boot

Change-Id: I7b1a1a310cf88fdde4250ae40643570016e1f380
Signed-off-by: Roman Birg <roman@cyngn.com>
frameworks: move safe volume warning above expanded volume panel

Fixes JIRA bug BACON-50

Change-Id: I1bc7c4781aa81cccd42281f70b394b7f7d81d3e5
Signed-off-by: Roman Birg <roman@cyngn.com>
SystemUI: show statusbar icon if quiet hours is active

Reflects the 3 active modes we provide as status bar icon, similar to
android L.

Change-Id: Ic32242b0843f44de72174ee768ef04ee0f4535aa
fb: Show heads up at the bottom of the screen (1/2)

Due of user requests and indeed especially on hw key devices for a better
workflow we add an option to show heads up notifications on the bottom instead
of the top.

Animation we leave as is due that if it slide from the bottom into the screen it happens
to often that the user accidentaly interacts with it. If it comes from the top of the
container we add, the user has enough time to realize it. Sometimes a ms can make a big difference.

As well this commit fixes the wrong gap on the top if user boots up directly
into immersive mode.

PS:
- if IME keyboard is showing show the heads up on the top to do not disturb the typing.
PS:
- NPE if updatePosition is called to early from the system.

Change-Id: I5ec2ab97f3309e9e690bc60c9f5cfd19d4dab516