[Galaxy S III General] temasek:
Build V129

md5sum: c5fefed48b19a5e0c01acf6b6dda0bf3

Changelog since V128.1

frameworks/base: SystemUI: Update user name timely when delete the user contact

- The user name isn't updated timely when delete the user contact in contacts.

- Update the user name timely when receive the user info changed event.

- CRs-Fixed: 673195

frameworks/base: 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. (more suitable for i9300)

frameworks/base: ActivityManagerService: Penalise large apps going to background

- Large applications (PSS more than a given threshold) when closed are

penalised with higher ADJ. Now, they will be more prone to be killed by

lowmemorykiller during memory pressure levels. This ensures better app

concurrency and improved subsequent latencies as it leaves some more room

for other smaller bg apps to be alive

frameworks/base: [ActivityManager] Finish the failed-to-pause activity

Symptom:

In some scenario, the mPausingActivity may be replaced by other activity.

When previous activity paused, the completePausedLocked() won't be invoked

because it is no longer the mPausingActivity. If the activity is also

pending to finish, it would never be done because the activity kept in

PAUSING state. Since the activity's window also remain visible and is

above on Wallpaper, user would see it when back to home.

Solution:

Finish the failed-to-pause activity if the activity is pending to finish

A Real Case:

(1) Screen turn off

(2) The top activity T1 crashed

(3) When finish activity T1, the next top activity T2 will be scheduled

to resume and pause (due to screen off).

(4) The activity T2 is also set to finishing due to T1 crashed.

(5) Before T2 paused and before paused timeout occurs, there has a new

process started which brings up the next top activity T3 to resume

and pause. So the pausing activity is now replaced.

(6) When activity T2 paused, it cannot completed the pause operation.

T2 will remain in PAUSING and finishing state with its window visible.

The process won't be killed because the oomadj stays at 1 (Visible).

frameworks/base: Network: Check parameter for NULL in isMmsRequest method

- It's the NullPointerException which causes the third part

application can't work normally. It happens when the third

part application calls execute in AndroidHttpClient.java.

The parameter may null when calling checkMmsSendPermission.

- Add extra judgement to avoid NullPointerException for fixing

this issue.

- CRs-Fixed: 584775

libcore: Update our MIME type map.

- Bug: https://code.google.com/p/android/issues/detail?id=61996

libcore: Fix MimeUtils to treat ".flac" as "audio/flac".

libcore: Switch Random to use AtomicLong

This removes the synchronization from next() and replaces the seed with

an AtomicLong.

libcore: Improve URI.equals performance.

The main improvement is that we're vastly reducing

the amount of garbage this method creates.

Also, get rid of some incorrect checks and add a new

benchmark test case.

Before vs. After:

URI Equals 1540.1 =

URI EqualsWithHeavilyEscapedComponent 11921397.1 ==============================

URI Equals 1337.2 =

URI EqualsWithHeavilyEscapedComponent 588934.3 ==============================

libcore: Allow multiple gzip members in gzip streams.

- We look for the gzip magic bytes at the end of every

member and try to decompress the remainder of the

stream if we find it.

- Note that this changes the behaviour of this class wrt.

the underlying stream: It is no longer self limiting. It

will attempt to read past the gzip trailer to look for

more data to decompress. Before this change, it would've

been possible to (hackily) consume the rest of the compressed

stream directly by inspecting the value of

InflaterInputStream.inf.getRemainingBytes(). It's no longer

possible to sensibly support that.

- bug: https://code.google.com/p/android/issues/detail?id=63873

libcore: GZIPInputStream: avoid leaks in init.

If we throw inside the ctor, it is impossible for clients

to pass the CloseGuard test for the associated Inflater.

frameworks/av: stagefright: Fix 24-bit WAV

- When 24-bit output is enabled, we need to ensure that padding

to 32 bits is done correctly.

- Create new output buffers which conform to the correct format.

telephony: Phone: Fix forced closure when change language during adding SIP account

telephony: Phone: PIN2 shouldn't be seen when make passwords invisible

telephony: Phone: It should stay at Sip account details interface after unlock phone

telephony: Phone: Prompt port number invalid when the port number length too long

telephony: Phone: Add one dialog to prompt the SIM is turned off

telephony: Phone: Disbale the network item and update the titile

telephony: Settings: DUT can register on a forbidden network operator

telephony: Phone: Removing the unreachable call forward option

telephony: Phone: The option should be clickable after pressing OK

telephony: TeleService: Prompt user the fixed dialing number can’t be empty

Updated cm sources

Enjoy :)