Prevent a duplicated registration of Observers

If same Observer and same URI are registered, the callback functions are called multiple times
when data identified by a given content URI changes.
It makes system slow and it cause ANR sometimes.
And When run unregisterContentObserver(), just one deleted
but others are remained in mObservers.
So add prevent code to avoid to duplicated registraion of Observers

Change-Id: I5c7845deb682db289ff0d53150ef012174859767
Signed-off-by: muzbit.kim <muzbit.kim@lge.com>
QS: let's welcome LocationTile to 4.4

we already modified to use the basic 4.4 location mechanism. Still
it was very basic. Now using the same attempt like in Settings to
controll location mode (high accuracy, battery saving, device only) and on/off state

longpress switches between the states. Normal click turns it on/off
Compared to settings turning on will recover last state where it was turned off. As
well it respects the sharing location warning dialog either when you switch on into
a mode which use it or you switch into a mode which uses it and it was not confimed.

Slight corrections to original AOSP code to reflect the changes in LocationController
even though this code is non operational

PatchSet:
- moved the complete handling into the LocationController. Way better
  to have in centralized. Who knows for what we will use it later.
PatchSet:
- cleanup

PatchSet:
- added drawables from kroz :)

Change-Id: I3c7c51c8d7e3a8c003c37d1b55a6503a9bbeaf64
Frameworks: Lockscreen custom wallpaper (1/2)

kitkat now has code for a custom wallpaper image.

Using that code set a switch case to set the custom background between
	- Color Fill
	- Custom Wallpaper
	- Default background

This way allows the same overlay shadow thats set on the keyguard when
its the defualt way. And the overlay effect works on both color fill and
custom image.

PatchSet 3: Missed the simple fact this also sets the album art when
            transport view is active. This fixes that.

PatchSet 4: edit commit message.

PatchSet 5: rebase to work with commit b3c0350c9f48dcdaa46326792b21964a246f76d5

PatchSet 6: fix commit message.

PatchSet 7: fix background not setting after a screen on screen off then
            screen on.

Change-Id: I98fde63ef9f3c0a5f334cd9a97b237a6f99c57f6
Null pointer exception in FileRotator.java

Sometimes a null pointer exception is thrown when examining files
managed by the file rotator.

The logs from the test show that the Wifi state is changed a large
number of times. On every state change, a write operation is
initiated on the file system. This will eventually result in out
of memory and the call to mBasePath.list() in the maybeRotate(...)
method in FileRotator.java will return null so the iteration will
throw a NullPointerException.

Change-Id: I5d5980d9593bc9ec75281169ca27ee591809903f
add gps gid to system_server

system_server hosts gps service, it should pocess gps
gid, so it can communicate with native gps daemons.

Change-Id: I59d7e99ec996891b19fa15a3ed66e055e6bccad8
Revert "services: don't clear wallpaper when SystemUI"

This reverts commit c7141d24b0156055828787336fe5b953d05c4ef6.
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
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