Fix problem with BootAnimation exit

After the completion of each animation part, the boot animation must
sleep for the number of frames specified in part.pause. If this is
done in a single sleep statement, it is possible that the boot animation
will continue to display long after surface flinger has finished booting.

To address that, the pause between parts is done in a loop and on each
iteration, the property that surface flinger sets to indicate that animation
should exit is checked.  This minimizes, but doesn't remove, the likelihood
that the bootanimation is visible when the UI comes up.

Change-Id: Ib71df0a72c0a47a1f7231b02379dc951c1f93e52
Signed-off-by: Russell Webb <russell.webb@intel.com>
Fix issue in PhoneNumberUtils.compareLoosely

There is an issue with MMS delivery report where
even if the report was received the status is shown
as pending.

If the number of matched digits is greater than or
equal to MIN_MATCH and if one of the input strings
index has reached the lower limit,
PhoneNumberUtils.compareLoosely should return true.
Currently, it doesn't return true as it is expecting
the index to be < 0 which will not happen for the
following case where country code + number is without
"+" prefix or the number is without country code-

This patch fixes the issue by checking the index <= 0.

Change-Id: Ia16723f8d2b94ddf282ab6b0ab9892d34323902d
Signed-off-by: Jeevaka Badrappan <jeevaka.badrappan@intel.com>
Signed-off-by: Arun Ravindran <arun.ravindran@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Author-tracking-BZ: 64234
Avoid strict mode warning when persisting sync state

We need to be sure that the write of the SyncManager state is complete
when broadcast of ACTION_SHUTDOWN is complete, so doing it
asynchronously is not an alternative.

This will remove the strict mode warning.

Change-Id: I01897bcc4bc0226cc3b49d4a6361d0572614c74c

Conflicts:
	services/java/com/android/server/content/SyncManager.java
On-The-Go: handle display orientation changes

Change-Id: Iad38e98a0c2a37be10c9b1e29fbf9f15b2a13852

Conflicts:
	packages/SystemUI/src/com/android/systemui/nameless/onthego/OnTheGoService.java
Release DrmManagerClient resources

Call release for DrmManagerClient to avoid resource leaks

Introduced by following commit (5d143ad4a8f...),
"Media scanner support for FL(Forward Lock) DRM file types"

https://android-review.googlesource.com/#/c/91081/

Change-Id: Ic3c458579f4e99b3b072a2e13362d1996b982589
Signed-off-by: houst0nn <houstonn@gmail.com>
WallpaperManager: add NULL pointer check for getCropAndSetWallpaperIntent

Originally the api 'getCropAndSetWallpaperIntent' does not check
whether the parsed parameter is a NULL pointer, as leads to the
whole app crash if it call this api with a null parameter accidentally.
A null pointer check logic is added into its original parameter check
logic, so that this API will throw an IllegalArgumentException if it
is parsed with a null pointer

Change-Id: Ib7de40e571419d09e1a744edc969eb7162766b75
Signed-off-by: houst0nn <houstonn@gmail.com>
Set ActionMode title to the number of selected files

After change of orientation ActionMode is recreated without previously
set title. It needs to be updated in onCreateActionMode callback.

Change-Id: If5f36e8ad6d1b5cf04ed242611fd037969d73517
Correct stride for drawing to cached glyph bitmap

fixes the glyph cachebuffer index to account for pixelbuffer
format size.

issue: in launcher home screen create icon group and rename the
group to some text string with emo-icons (smilies). without this
change the drop shadows for emo-icons will look bad.

Change-Id: I525a9219d35f4541363fd64e7fc5fd1053269725
Signed-off-by: Digish Pandya <digishp@codeaurora.org>
audio: no notification sound when adjusting volume bar twice.

Notification sound won't take effect when the previous track hasn't
finished.
Need explicitly stop the previous ongoing track to alow the current one.

Change-Id: Ib344a8b14ecc47a5c8fdd9c11ae48a3541ea9a55
CRs-Fixed: 652236
framework/base : Fix for Wi-Fi grayed out issue

During the initialization WiFiMonitor shall try to open the
control / monitor socket interface with the supplicant.On a
failed attempt to open the control interface WiFiMonitor
thread shall trigger an event SUP_DISCONNECTION_EVENT to
WiFiStateMachine with the expectation that the connection
attempt is restarted.In addition , it shall also remove the
interface from the mIfaceMap. During the restart , WiFiMonitor
shall not proceed to open the control interface with the
supplicant if the mIfaceMap does not point to the interface.
  Thus , do not remove the interface from mIfaceMap on a failed
attempt to create a control interface with the supplicant to
provision a reinitialization attempt.

Change-Id: Ia571a386c22e860b3e31f5153ae33f622b5d5973
CRs-Fixed: 642586
lowmemorykiller: Overwrite LMK parameters for low-tier devices

LMK parameters calculated by default algorithm were not optimal for
low-tier devices. Values mentioned here were well tested and
evaluated w.r.t memory and performance for such setups.

Change-Id: I40ed92d204aae6e758028ea1e9bd4ec7226dbe2b
Show submenu from menu list on hardware MENU key press

Submenu is not shown when menu list is open by pressing
hardware MENU key. But it is shown properly when menu is
open from overflow button.
This change will unify the behavior of MENU key &
overflow button.

Crs-Fixed: 622050
Change-Id: I91e336df845febf048583989c8c6b831e04856b1
Display: Initialize mRotation to panel orientation.

    - Fixes the homescreen layout to be prepared based on the panel
      orientation.
    - Disables the rotation animation from 0 to panel orientation after
      bootup.

Conflicts:
    core/java/com/android/internal/view/RotationPolicy.java

Change-Id: Ie77e53ade087df05e102c45bf9d12bdaf09583f7
wifi: Disable the network based on the Deauth reason code.

Network connection failure shall happen due to various reasons
(VIZ assoc_reject, max supplicant loop iterations, authentication
failure due to wrong password, etc). For the cases apart from the
reason being assoc_reject there is no point continuing still
enabling the current profile and hence disable the same.

Change-Id: I9a0022d100dcfb1e1d1a9540ec6439ad140c06d1
CRs-fixed: 626680

Conflicts:
	wifi/java/android/net/wifi/SupplicantStateTracker.java
wlan: Fix to handle the failure status on supplicant start.

WiFiController shall enter in to StaEnabledState state after the
request to start supplicant irrespective of status being success
or failure.Thus,any new attempts to turn on Wi-Fi later shall
fail as the controller statemachine is expected to be in
APStaDisabledState to start Wi-Fi.
Thus , start the supplicant on a command CMD_WIFI_TOGGLED in the
StaEnabledState if the current WiFi state is neither
WIFI_STATE_ENABLING nor WIFI_STATE_ENABLED.

Change-Id: If4c4913b608411bac334f9c201441aaf36d7675b
CRs-Fixed: 570305
SystemServer: Do not start Atlas Service on lowram devices.

Provide an on/off switch to control atlas service at start-up. This
service is disabled by default on lowram devices to save memory.

Atlas service is responsible for pre-loading drawables which
can be shareable among the applications. Found that the probability
of using same drawables in different apps concurrently is very less.
However it allocates fixed size of ion buffer based on config.
So by disabling it this memory overhead can be avoided. We are safe
to disable this service as it does not block any functionality.

Change-Id: I3c73111be71ff6a39f87d711e6dc9382637fd537
P2P : Wait for the terminate events on all the open interfaces

On a stop supplicant request from the framework , supplicant
shall issue TERMINATE event for per interface created and
thus WiFiMonotor shall kill the supplicant on the TERMINATE
event obtained on wlan0 interface.This would end up in not
deleting the other interfaces and thus they would be seen
as an active interfaces. Thus wait for the number of
TERMINATE events obtained corresponding to the number
of WiFiMonitor instances registered before killing
the supplicant.

Change-Id: I2d36d85d00073cf9a200dc92f94beefa4efe6087
CRs-Fixed: 601759
WIFI: Fix wifi auto-connect to other saved APs during WPS PIN scanning.

During WPS PIN scanning and AP side not enter the PIN, continuously
turn off/on screen will sometimes cause the phone auto-connect to
other saved APs.

WifiStateMachine accepts screenOn event, and sometimes will enable
all networks.

This change will NOT enable all networks in screenOn event While wps
is running.

Change-Id: I539ee6020a8e2b2fa6892c88569c302f89e8f5ed
CRs-Fixed: 646433
framework/base: Create surface based on the panel orientation.

  - Create Surface for boot animation based on panel orientation
  - Set the display projection values based on panel orientation.

Change-Id: Iaf66ac13cc44cf7910ff150b3a104eb52bcefdbf
Wifi: Add a feature to control wifi auto connect.

If wifi connection type and gsm to wifi connection type is auto connect,
auto connect wifi.
CRs-Fixed: 507965

Change-Id: Icbfc58c93f13e97a2b6c6526d154153031e4b77c

Conflicts:
	core/res/res/values/symbols.xml
	wifi/java/android/net/wifi/WifiStateMachine.java

Conflicts:
	core/res/res/values/symbols.xml