Insufficient ProcessRecord cleanup when persistent process is killed

When persistent process with Service restarts, ActivityManagerService
does not reset ProcessRecord#hasClientActivites to false
(because ProcessRecord of persistent process is continued using
after killing).

It disturbs updating LRU list in ActivityManagerService, and then,
when new process calls ActivityManagerProxy#publishContentProviders,
SecurityException happens because of no entry in the list.

Bug: 13517358

Change-Id: I46b064f71a4f7025ade1bf117801352a7ab22e6a
NFC: getNdefMessage() should throw exception if no tag in field.

According to documentation, an TagLostException should be thrown, if
the tag has been moved out of field when reading NDEF message.

Change-Id: Ib7e485ed442027fdebd5bc7a46101fbca0c88bdb
Navbar Custom Glow Time (1/2)

Fix

- Update
[1/4] Dialer lookup

Squashed commit of the following:

commit 780211109f80d07b11d7a0261544b1a0fed10ea0
Author: Xiao-Long Chen <chenxiaolong@cxl.epac.to>
Date:   Fri Mar 7 17:11:02 2014 -0500

    Add people lookup settings keys

    Change-Id: I2ff9bb7684d04f4f9b640939c7db269873aa3308

commit 0e5ed5ac782c2ee253179a03a2c5842ad3de6831
Author: Xiao-Long Chen <chenxiaolong@cxl.epac.to>
Date:   Fri Jan 31 11:43:10 2014 -0500

    Frameworks: Add settings keys for forward and reverse phone number lookup

    Change-Id: I1c4c7825b4361b7a52dd419f83afd7b9fcbe1494

Change-Id: I68e4214e813695021b64c29ab1d831a944a6275a
AudioService: Fix absolute volume for AVRCP

Avrcp.java uses max volume obtained by getStreamMaxVolume() when
converting to AVRCP levels and it returns non-scaled volume index.
For this reason volume index needs to be dispatched to Avrcp before
scaling as otherwise Avrcp will convert volume level incorrectly,
i.e. max volume index for music stream is 15 and any volume index
>1 (>10 after scaling) will result in setting *MAXIMUM* volume level
on headset which is not safe for listener.

Change-Id: Ia799eec578ed2326ec18b69f2ee4f2a60c664514
Audio: Fixed system/call stream volume can't adjust with HS connected.

Issue Description:
When headset connected, the system/voice call stream volume can't be
adjusted from Volume bar.

Root Cause:
Currently adjustStreamVolume is applied to stream type alias and the
device for the stream alias. So when headset connected and adjust
volume for SYSTEM_STREAM, the operation will be applied to RING_STREAM
(which is aliased by SYSTEM_STREAM) and speaker. As headset is returned
from getDeviceForStream(SYSTEM_STREAM), but speaker for RING_STREAM.

Solution:
Change the adjustStreamVolume to apply volume to the stream alias and
the device for the stream type exactly.

Change-Id: Icd226d9eb197017cd3c186a0096edaed755680ec
Signed-off-by: Guo Xie <gxie@marvell.com>
Removed clock color settings

It's useless since i'm not going to add other color settings
Change SQL to improve performance.

To know the number of images, use "COUNT(*)" instead of "_id" in SQL.
Using "_id" gets all result set. and when getCount() is called, CursorWindow is filled.
But using "COUNT(*)" gets just 1by1 data.
So using "COUNT(*)" is more faster than now.
And this SQL is called everytime per a file during a file transfer in MTP
The better way is by using "EXIST".
But if using "EXIST", modify MediaProvider.call() method.
So i applied just a "COUNT(*)"

Change-Id: Ic5882af0fad2304f836b7b7043a4746359391609
Signed-off-by: muzbit.kim <muzbit.kim@lge.com>
FaceUnlock: Check if faceunlock is disabled

JIRA: CYAN-3622
Issue: https://jira.cyanogenmod.org/browse/CYAN-3622

Change-Id: Iaf656f1aecb72610a46183294de25151e8df4b05
Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
Lockscreen: Add chinese string for airplane mode

There is no chinese string resource for lockscreen_airplane_mode_on.

Define the chinese string for airplane mode.

CRs-Fixed: 561393

Change-Id: I59d2fd42f8b3140a934614a4977dc7ade0332c6d
Revert "Base: Prevent lock/unlock sound during music playback"

This reverts commit 22a06adcede778a388ed1371fe56f9c30ea01eb9.
Fix typo in polish translation

Change-Id: Ic10fb34ede1ccb5e42c9d13b9a8ed3cf35d6dcbf
Signed-off-by: Andrzej Ressel <jereksel@gmail.com>
Prevent Lockscreen album art from activating FLAG_KEEP_SCREEN_ON

This is a small fix to the showWallpaper method, in which a power
consumption problem has been introduced. This showWallpaper method
toggles the window flag FLAG_SHOW_WALLPAPER, when album art is being
shown in Lockscreen. It is important to set pixel format to
PixelFormat.OPAQUE if flag FLAG_SHOW_WALLPAPER is not being set.

If not, an application that uses window flag FLAG_KEEP_SCREEN_ON
will prevent the keyguard from going to sleep and drain battery.

Change-Id: I1808be28047977ae5ac4dd1168ea25cac8a55a78
Frameworks: fix possible NPE + and missing expandable panel

Steps to reproduce for NPE:
- go into volume style settings
- switch to disabled
- switch to expanded
- NPE and hotreboot

Fix:
Check if mStreamControls is initialized and if not lock it and do it.

Steps for expandable error:
- go into volume style settings
- switch to disable
- press one time the volume button
- change to expandable
- change the volume and press the expanded icon
- result is it does not expand and is empty due of the missing volume panels.

Fix:
- if it was changed from disabled to expanded be sure that the additional volume panels
are recreated.

PS:
- fix another exception

Change-Id: I58d63d34f831b6a6f60f6eddb3a07fc916d464f3
Add missed string for Immersive Mode
part 1 of LTE toggle support

Change-Id: I2e1cf08b4a6d49492eec63d4106c857b3905addd
fb: actually fix LTE toggle (1/2)

I accidentally pushed the LTE toggle patch although it was not ready.
Whatever here the fix for it. This commit does:

- do not assume that on boot ITelephony service is already up. This
  results in a FC on boot up
- handle like before most things in LTETile itself and call only
  the toggle action to prevend above mentioned
- I thought about it to give as parameter current network state
  to the toggle method to prevend to fetch 2 times the actual mode
  (saves 4 lines of code). But based on the idea that we maybe later
  use other shortcuts as well we will not do it.
- cleanup & codestyle

Sorry again

cheers

kufi

Change-Id: I33a694358cc47973c4a75dccae15ccc7062fdc22
Fix LTE tile (1/2)

thanks CM for the final fix.

Change-Id: I229551f17f530dac900c2c5dd55263d96f36a277
Solve three memory leaks related to PatchCache

A Patch can be fairly large, holding bitmap data, but
is also frequently leaked which adds to the severity.
The feature is used in many important processes such
as Home, SystemUI and Chrome.

The following leaks are solved:

1. The Patch itself was not always freed.
PatchCache::removeDeferred() can mark patches to be
cared for by PatchCache::clearGarbage(). But
mCache.remove() would only destroy the container
and the pointer, not the Patch object itself.

2. The vertices stored in the Patch at Patch::createMesh()
would always leak. The empty/default destructor in Patch
would not properly destroy "vertices" since it's just a
pointer.

3. A BufferBlock that's added to the mFreeBlocks
in PatchCache could leak. The leak happened when a
patch later needed the entire free block, because the
object was removed from the list but never deleted
in PatchCache::setupMesh().

Change-Id: I41e60824479230b67426fc546d3dbff294c8891f
Do not show Home behind full screen activity

When ensureActivitiesVisibleLocked goes through foreground activity
stack and reaches non-fullscreen activity, it sets showHomeBehindStack
variable to true.

If there is a fullscreen activity behind, showHomeBehindStack remains
unchanged, which causes Home application to be displayed anyway.
In this case user will see a fullscreen activity and Home activity
simultaneously.

To fix the issue we set showHomeBehindStack to false when we reach
fullscreen activity in the activity stack.

This was made visible by the following commit:
446ef1de8d373c1b017df8d19ebf9a47811fb402

Change-Id: I535c1283a4e26f5cf606375b837d4b7195324af0