frameworks/base/: Fix black wallpaper issue when home pressed.

In the specified usecase, there is a completely new set of
windows that appear on the screen during rotation. And the
existing code in the framework ignores the drawstate of the
hidden windows.

Wait till the drawState is ready for the hidden windows also.

CRs-Fixed: 521758

Change-Id: Ibd96502059c84210ad84ecb03aac5eca28f3c9fe
Wipe and re-create database on downgrade.

Not a very common situation but should fix some errors that could
 arise from flashing an old ROM over a new one, without wiping data.

Change-Id: I27f2a00396761105987830921bb3f8cb339d2171
frameworks/base: IPV6 tethering support

This patch adds two new API calls addUpstreamV6Interface and
removeUpstreamV6Interface to the tethering framework to pass the IPv6
upstream and downstream interfaces to netd if IPv6 is available.
Required to enable ICMPv6 forwarding.

[*]IPV6 tethering: Check info for null before removeUpstreamV6Interface

When tethering on dual stack networks such as verizon wireless and
sending or recieving MMS you get an null pointer exception and hard
reboot.

It starts to go wrong here:
10-14 19:11:51.375: E/Mms/smil(28035): Failed to parse SMIL document.
10-14 19:11:51.375: E/Mms/smil(28035): org.xml.sax.SAXParseException:
expected start tag notEND_DOCUMENT null@1:1 in java.io.InputStreamReader
@4192ada0

And then:
10-14 19:11:55.559: E/AndroidRuntime(23125): java.lang.NullPointerException
10-14 19:11:55.559: E/AndroidRuntime(23125):    at com.android.server.
connectivity.Tethering$TetherMasterSM$TetherModeAliveState.processMessage
(Tethering.java:1573)

Which is line 1573 of:

https://github.com/CyanogenMod/android_frameworks_base/blob/cm-10.2/services/java/com/android/server/connectivity/Tethering.java#L1573

CMD_UPSTREAM_CHANGED's message.obj can be null (line 776).

Change-Id: I1f4f6284b2f152d8b4f0fbd02ac5a17f57c71dd7
base: App crash when select suggestion's length more than specified.

App crashed by catch IndexOutOfBoundsException which raised
by check span range when select suggested string.The root
cause is that the editor will truncate the suggested string
which length is more than it specified, but it also set span
use the suggestion's original length.

Update the suggestion's real length after editor replace the
original string to suggested.

Change-Id: I2d765701934a9e68be172cb87a104590f3cdeceb
CRs-Fixed: 532211
Recents: Clear all button for recent apps.

An icon will appear on navbar when there are apps available to be killed on recent apps.

Credits to @BigBrother1984 for kitkat porting from jellybean

Patchset 2: Tablet mode is deprecated now, so no need of multiple callbacks
Patchset 3: Remove copyright from unaffected files
Patchset 4: Remove unused imports

Change-Id: I93d1d4cb34325190b03ae3a0d40e1bc170c92d91

Conflicts:
	core/java/android/app/StatusBarManager.java
	packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java