summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/bluetooth/BluetoothAdapter.java12
-rw-r--r--core/java/android/bluetooth/IBluetooth.aidl1
-rwxr-xr-xcore/java/android/server/BluetoothService.java46
-rw-r--r--docs/html/training/basics/activity-lifecycle/starting.jd6
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_airplane_on.pngbin1470 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_back.pngbin1628 -> 1480 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_back_ime.pngbin1373 -> 1285 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_back_land.pngbin1600 -> 1452 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_brightness.pngbin1650 -> 1519 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_highlight.pngbin4158 -> 3628 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_highlight_land.pngbin4112 -> 4243 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_home.pngbin1646 -> 1499 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_home_land.pngbin1557 -> 1441 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_ime_default.pngbin1313 -> 1182 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_lights_out_dot_large.pngbin1030 -> 1097 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_lights_out_dot_small.pngbin816 -> 878 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_menu.pngbin794 -> 478 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_menu_land.pngbin808 -> 481 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_quicksettings.pngbin1354 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_recent.pngbin1024 -> 854 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_recent_land.pngbin992 -> 920 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_rotate_on.pngbin2528 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_wifi_on.pngbin1869 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_airplane_on.pngbin1010 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_back.pngbin1145 -> 910 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_back_ime.pngbin951 -> 795 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_back_land.pngbin1131 -> 901 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_brightness.pngbin1136 -> 998 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_highlight.pngbin2679 -> 2376 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_highlight_land.pngbin2689 -> 2587 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_home.pngbin1184 -> 926 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_home_land.pngbin1124 -> 900 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_ime_default.pngbin932 -> 791 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_lights_out_dot_large.pngbin633 -> 770 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_lights_out_dot_small.pngbin549 -> 614 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_menu.pngbin610 -> 426 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_menu_land.pngbin604 -> 442 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_quicksettings.pngbin987 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_recent.pngbin843 -> 666 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_recent_land.pngbin865 -> 684 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_rotate_on.pngbin1463 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_wifi_on.pngbin1036 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-xhdpi/ic_sysbar_airplane_on.pngbin2014 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-xhdpi/ic_sysbar_quicksettings.pngbin1997 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-xhdpi/ic_sysbar_rotate_on.pngbin3572 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw600dp-xhdpi/ic_sysbar_wifi_on.pngbin2563 -> 0 bytes
-rw-r--r--packages/SystemUI/src/com/android/systemui/ExpandHelper.java47
-rw-r--r--services/java/com/android/server/ConnectivityService.java4
-rw-r--r--services/java/com/android/server/NativeDaemonConnector.java2
-rw-r--r--services/java/com/android/server/NativeDaemonEvent.java85
-rw-r--r--services/java/com/android/server/wm/AppWindowAnimator.java38
-rw-r--r--services/java/com/android/server/wm/WindowAnimator.java4
-rwxr-xr-xservices/java/com/android/server/wm/WindowManagerService.java12
-rw-r--r--services/java/com/android/server/wm/WindowStateAnimator.java5
54 files changed, 219 insertions, 43 deletions
diff --git a/core/java/android/bluetooth/BluetoothAdapter.java b/core/java/android/bluetooth/BluetoothAdapter.java
index 600ce6f71e16..8e3df472a3fe 100644
--- a/core/java/android/bluetooth/BluetoothAdapter.java
+++ b/core/java/android/bluetooth/BluetoothAdapter.java
@@ -1232,6 +1232,18 @@ public final class BluetoothAdapter {
}
/**
+ * Enable the Bluetooth Adapter, but don't auto-connect devices
+ * and don't persist state. Only for use by system applications.
+ * @hide
+ */
+ public boolean enableNoAutoConnect() {
+ try {
+ return mService.enableNoAutoConnect();
+ } catch (RemoteException e) {Log.e(TAG, "", e);}
+ return false;
+ }
+
+ /**
* Enable control of the Bluetooth Adapter for a single application.
*
* <p>Some applications need to use Bluetooth for short periods of time to
diff --git a/core/java/android/bluetooth/IBluetooth.aidl b/core/java/android/bluetooth/IBluetooth.aidl
index deea2b801036..6075363e51b4 100644
--- a/core/java/android/bluetooth/IBluetooth.aidl
+++ b/core/java/android/bluetooth/IBluetooth.aidl
@@ -34,6 +34,7 @@ interface IBluetooth
boolean isEnabled();
int getBluetoothState();
boolean enable();
+ boolean enableNoAutoConnect();
boolean disable(boolean persistSetting);
String getAddress();
diff --git a/core/java/android/server/BluetoothService.java b/core/java/android/server/BluetoothService.java
index 36c01893c4c2..7a974554fd06 100755
--- a/core/java/android/server/BluetoothService.java
+++ b/core/java/android/server/BluetoothService.java
@@ -165,6 +165,8 @@ public class BluetoothService extends IBluetooth.Stub {
private static String mDockAddress;
private String mDockPin;
+ private boolean mAllowConnect = true;
+
private int mAdapterConnectionState = BluetoothAdapter.STATE_DISCONNECTED;
private BluetoothPanProfileHandler mBluetoothPanProfileHandler;
private BluetoothInputProfileHandler mBluetoothInputProfileHandler;
@@ -472,7 +474,7 @@ public class BluetoothService extends IBluetooth.Stub {
/** Bring up BT and persist BT on in settings */
public boolean enable() {
- return enable(true);
+ return enable(true, true);
}
/**
@@ -480,9 +482,11 @@ public class BluetoothService extends IBluetooth.Stub {
* This turns on/off the underlying hardware.
*
* @param saveSetting If true, persist the new state of BT in settings
+ * @param allowConnect If true, auto-connects device when BT is turned on
+ * and allows incoming A2DP/HSP connections
* @return True on success (so far)
*/
- public synchronized boolean enable(boolean saveSetting) {
+ public synchronized boolean enable(boolean saveSetting, boolean allowConnect) {
mContext.enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM,
"Need BLUETOOTH_ADMIN permission");
@@ -490,11 +494,29 @@ public class BluetoothService extends IBluetooth.Stub {
if (mIsAirplaneSensitive && isAirplaneModeOn() && !mIsAirplaneToggleable) {
return false;
}
+ mAllowConnect = allowConnect;
mBluetoothState.sendMessage(BluetoothAdapterStateMachine.USER_TURN_ON, saveSetting);
return true;
}
/**
+ * Enable this Bluetooth device, asynchronously, but does not
+ * auto-connect devices. In this state the Bluetooth adapter
+ * also does not allow incoming A2DP/HSP connections (that
+ * must go through this service), but does allow communication
+ * on RFCOMM sockets implemented outside of this service (ie BTOPP).
+ * This method is used to temporarily enable Bluetooth
+ * for data transfer, without changing
+ *
+ * This turns on/off the underlying hardware.
+ *
+ * @return True on success (so far)
+ */
+ public boolean enableNoAutoConnect() {
+ return enable(false, false);
+ }
+
+ /**
* Turn on Bluetooth Module, Load firmware, and do all the preparation
* needed to get the Bluetooth Module ready but keep it not discoverable
* and not connectable.
@@ -2441,6 +2463,13 @@ public class BluetoothService extends IBluetooth.Stub {
}
private void autoConnect() {
+ synchronized (this) {
+ if (!mAllowConnect) {
+ Log.d(TAG, "Not auto-connecting devices because of temporary BT on state.");
+ return;
+ }
+ }
+
String[] bonds = getKnownDevices();
if (bonds == null) {
return;
@@ -2457,6 +2486,12 @@ public class BluetoothService extends IBluetooth.Stub {
}
public boolean notifyIncomingConnection(String address, boolean rejected) {
+ synchronized (this) {
+ if (!mAllowConnect) {
+ Log.d(TAG, "Not allowing incoming connection because of temporary BT on state.");
+ return false;
+ }
+ }
BluetoothDeviceProfileState state = mDeviceProfileState.get(address);
if (state != null) {
Message msg = new Message();
@@ -2478,6 +2513,13 @@ public class BluetoothService extends IBluetooth.Stub {
}
/*package*/ boolean notifyIncomingA2dpConnection(String address, boolean rejected) {
+ synchronized (this) {
+ if (!mAllowConnect) {
+ Log.d(TAG, "Not allowing a2dp connection because of temporary BT on state.");
+ return false;
+ }
+ }
+
BluetoothDeviceProfileState state = mDeviceProfileState.get(address);
if (state != null) {
Message msg = new Message();
diff --git a/docs/html/training/basics/activity-lifecycle/starting.jd b/docs/html/training/basics/activity-lifecycle/starting.jd
index d3266aef1718..1d328c717856 100644
--- a/docs/html/training/basics/activity-lifecycle/starting.jd
+++ b/docs/html/training/basics/activity-lifecycle/starting.jd
@@ -79,9 +79,9 @@ ensures your app behaves well in several ways, including that it:</p>
while using your app.</li>
<li>Does not consume valuable system resources when the user is not actively using
it.</li>
- <li>Does not loose the user's progress if they leave your app and return to it at a
+ <li>Does not lose the user's progress if they leave your app and return to it at a
later time.</li>
- <li>Does not crash of loose the user's progress when the screen rotates between
+ <li>Does not crash or lose the user's progress when the screen rotates between
landscape and portrait orientation.</li>
</ul>
@@ -257,7 +257,7 @@ activity until they switch to a different activity.</p>
<h2 id="Destroy">Destroy the Activity</h2>
<p>While the activity's first lifecycle callback is {@link android.app.Activity#onCreate
-onCreate()}, it's very last callback is {@link android.app.Activity#onDestroy}. The system calls
+onCreate()}, its very last callback is {@link android.app.Activity#onDestroy}. The system calls
this method on your activity as the final
signal that your activity instance is being completely removed from the system memory.</p>
diff --git a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_airplane_on.png b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_airplane_on.png
deleted file mode 100644
index be65c74f0798..000000000000
--- a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_airplane_on.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_back.png b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_back.png
index 345aef6b7edc..38bd0cd18f42 100644
--- a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_back.png
+++ b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_back.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_back_ime.png b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_back_ime.png
index 4b8f2635849c..6d4825e67922 100644
--- a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_back_ime.png
+++ b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_back_ime.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_back_land.png b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_back_land.png
index f5ab80d6cd34..baeb49e1d93a 100644
--- a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_back_land.png
+++ b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_back_land.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_brightness.png b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_brightness.png
index 316f0e1a342c..77eae9ad0515 100644
--- a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_brightness.png
+++ b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_brightness.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_highlight.png b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_highlight.png
index f2de78e6d0dc..f911e1197e66 100644
--- a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_highlight.png
+++ b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_highlight.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_highlight_land.png b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_highlight_land.png
index 4da3f7aa07ad..a8c88cf375c8 100644
--- a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_highlight_land.png
+++ b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_highlight_land.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_home.png b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_home.png
index 8713c06c461c..0652753eabf2 100644
--- a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_home.png
+++ b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_home.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_home_land.png b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_home_land.png
index 05efe0f35d4c..b8ea74058524 100644
--- a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_home_land.png
+++ b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_home_land.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_ime_default.png b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_ime_default.png
index 2263d5cc0f50..2d5594cbf8fe 100644
--- a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_ime_default.png
+++ b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_ime_default.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_lights_out_dot_large.png b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_lights_out_dot_large.png
index a97440ea675d..5e8e7f6f664f 100644
--- a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_lights_out_dot_large.png
+++ b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_lights_out_dot_large.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_lights_out_dot_small.png b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_lights_out_dot_small.png
index 7d45617299dd..3529974ca300 100644
--- a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_lights_out_dot_small.png
+++ b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_lights_out_dot_small.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_menu.png b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_menu.png
index d7b9670f16b5..bfec94364ba9 100644
--- a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_menu.png
+++ b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_menu.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_menu_land.png b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_menu_land.png
index 5c1e7cc89160..3a6a2d840dff 100644
--- a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_menu_land.png
+++ b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_menu_land.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_quicksettings.png b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_quicksettings.png
deleted file mode 100644
index dd88daef814c..000000000000
--- a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_quicksettings.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_recent.png b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_recent.png
index da766c558164..61f409de310b 100644
--- a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_recent.png
+++ b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_recent.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_recent_land.png b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_recent_land.png
index c247d2855ccc..5629ccad778d 100644
--- a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_recent_land.png
+++ b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_recent_land.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_rotate_on.png b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_rotate_on.png
deleted file mode 100644
index 4c0e80caa443..000000000000
--- a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_rotate_on.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_wifi_on.png b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_wifi_on.png
deleted file mode 100644
index 0d833b89b486..000000000000
--- a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_wifi_on.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_airplane_on.png b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_airplane_on.png
deleted file mode 100644
index ecc822f39bca..000000000000
--- a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_airplane_on.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_back.png b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_back.png
index ac5841e8f810..0c12c1601e56 100644
--- a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_back.png
+++ b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_back.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_back_ime.png b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_back_ime.png
index a479cc5e88b9..ec38e6a0ac2b 100644
--- a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_back_ime.png
+++ b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_back_ime.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_back_land.png b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_back_land.png
index 4038951f9e11..23f976c2c4cf 100644
--- a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_back_land.png
+++ b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_back_land.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_brightness.png b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_brightness.png
index 52f21ccfa210..f5fcb04554c1 100644
--- a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_brightness.png
+++ b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_brightness.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_highlight.png b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_highlight.png
index 6214f08dd5d8..0132e20516f3 100644
--- a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_highlight.png
+++ b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_highlight.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_highlight_land.png b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_highlight_land.png
index bac44eb37dad..291444c05807 100644
--- a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_highlight_land.png
+++ b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_highlight_land.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_home.png b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_home.png
index dfecfc9314e0..e3e683c452f5 100644
--- a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_home.png
+++ b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_home.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_home_land.png b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_home_land.png
index 71f8a367ab29..1f3410d21805 100644
--- a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_home_land.png
+++ b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_home_land.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_ime_default.png b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_ime_default.png
index 1e79859d5dae..bea5339d9eaa 100644
--- a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_ime_default.png
+++ b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_ime_default.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_lights_out_dot_large.png b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_lights_out_dot_large.png
index 0ee70861b9dc..1849a53a2303 100644
--- a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_lights_out_dot_large.png
+++ b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_lights_out_dot_large.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_lights_out_dot_small.png b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_lights_out_dot_small.png
index f35c36bb955f..c5fe4df27d3e 100644
--- a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_lights_out_dot_small.png
+++ b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_lights_out_dot_small.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_menu.png b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_menu.png
index 7083de019a43..a0ea296c4d6f 100644
--- a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_menu.png
+++ b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_menu.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_menu_land.png b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_menu_land.png
index 68c10c0d8a2a..54d9cdacf9f6 100644
--- a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_menu_land.png
+++ b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_menu_land.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_quicksettings.png b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_quicksettings.png
deleted file mode 100644
index 65e761d19b7f..000000000000
--- a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_quicksettings.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_recent.png b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_recent.png
index 67d6796ad7ba..670fed98a0f7 100644
--- a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_recent.png
+++ b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_recent.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_recent_land.png b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_recent_land.png
index def3808b1736..a567e0742f7b 100644
--- a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_recent_land.png
+++ b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_recent_land.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_rotate_on.png b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_rotate_on.png
deleted file mode 100644
index 6efef06ecced..000000000000
--- a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_rotate_on.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_wifi_on.png b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_wifi_on.png
deleted file mode 100644
index 7efc161634f9..000000000000
--- a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_wifi_on.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-xhdpi/ic_sysbar_airplane_on.png b/packages/SystemUI/res/drawable-sw600dp-xhdpi/ic_sysbar_airplane_on.png
deleted file mode 100644
index 8e5791f08743..000000000000
--- a/packages/SystemUI/res/drawable-sw600dp-xhdpi/ic_sysbar_airplane_on.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-xhdpi/ic_sysbar_quicksettings.png b/packages/SystemUI/res/drawable-sw600dp-xhdpi/ic_sysbar_quicksettings.png
deleted file mode 100644
index d6afed139125..000000000000
--- a/packages/SystemUI/res/drawable-sw600dp-xhdpi/ic_sysbar_quicksettings.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-xhdpi/ic_sysbar_rotate_on.png b/packages/SystemUI/res/drawable-sw600dp-xhdpi/ic_sysbar_rotate_on.png
deleted file mode 100644
index 61bcf6ea5e24..000000000000
--- a/packages/SystemUI/res/drawable-sw600dp-xhdpi/ic_sysbar_rotate_on.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-xhdpi/ic_sysbar_wifi_on.png b/packages/SystemUI/res/drawable-sw600dp-xhdpi/ic_sysbar_wifi_on.png
deleted file mode 100644
index a00a9b859e9d..000000000000
--- a/packages/SystemUI/res/drawable-sw600dp-xhdpi/ic_sysbar_wifi_on.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/src/com/android/systemui/ExpandHelper.java b/packages/SystemUI/src/com/android/systemui/ExpandHelper.java
index 6141eadbcf15..5387bf5bd455 100644
--- a/packages/SystemUI/src/com/android/systemui/ExpandHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/ExpandHelper.java
@@ -17,6 +17,7 @@
package com.android.systemui;
+import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.graphics.RectF;
@@ -38,6 +39,8 @@ public class ExpandHelper implements Gefingerpoken, OnClickListener {
private static final String TAG = "ExpandHelper";
protected static final boolean DEBUG = false;
private static final long EXPAND_DURATION = 250;
+ private static final long GLOW_DURATION = 150;
+
// amount of overstretch for maximum brightness expressed in U
// 2f: maximum brightness is stretching a 1U to 3U, or a 4U to 6U
@@ -60,7 +63,10 @@ public class ExpandHelper implements Gefingerpoken, OnClickListener {
private Callback mCallback;
private ScaleGestureDetector mDetector;
private ViewScaler mScaler;
- private ObjectAnimator mAnimation;
+ private ObjectAnimator mScaleAnimation;
+ private AnimatorSet mGlowAnimationSet;
+ private ObjectAnimator mGlowTopAnimation;
+ private ObjectAnimator mGlowBottomAnimation;
private int mSmallSize;
private int mLargeSize;
@@ -110,6 +116,16 @@ public class ExpandHelper implements Gefingerpoken, OnClickListener {
mContext = context;
mCallback = callback;
mScaler = new ViewScaler();
+
+ mScaleAnimation = ObjectAnimator.ofFloat(mScaler, "height", 0f);
+ mScaleAnimation.setDuration(EXPAND_DURATION);
+
+ mGlowTopAnimation = ObjectAnimator.ofFloat(null, "alpha", 0f);
+ mGlowBottomAnimation = ObjectAnimator.ofFloat(null, "alpha", 0f);
+ mGlowAnimationSet = new AnimatorSet();
+ mGlowAnimationSet.play(mGlowTopAnimation).with(mGlowBottomAnimation);
+ mGlowAnimationSet.setDuration(GLOW_DURATION);
+
mDetector =
new ScaleGestureDetector(context,
new ScaleGestureDetector.SimpleOnScaleGestureListener() {
@@ -155,11 +171,22 @@ public class ExpandHelper implements Gefingerpoken, OnClickListener {
});
}
public void setGlow(float glow) {
- if (mCurrViewTopGlow != null) {
- mCurrViewTopGlow.setAlpha(glow);
- }
- if (mCurrViewBottomGlow != null) {
- mCurrViewBottomGlow.setAlpha(glow);
+ if (!mGlowAnimationSet.isRunning()) {
+ if (mCurrViewTopGlow != null && mCurrViewBottomGlow != null) {
+ if (glow == 0f || mCurrViewTopGlow.getAlpha() == 0f) {
+ // animate glow in and out
+ mGlowTopAnimation.setTarget(mCurrViewTopGlow);
+ mGlowBottomAnimation.setTarget(mCurrViewBottomGlow);
+ mGlowTopAnimation.setFloatValues(glow);
+ mGlowBottomAnimation.setFloatValues(glow);
+ mGlowAnimationSet.setupStartValues();
+ mGlowAnimationSet.start();
+ } else {
+ // set it explicitly in reponse to touches.
+ mCurrViewTopGlow.setAlpha(glow);
+ mCurrViewBottomGlow.setAlpha(glow);
+ }
+ }
}
}
@@ -216,8 +243,12 @@ public class ExpandHelper implements Gefingerpoken, OnClickListener {
h = (force || h < mNaturalHeight) ? mSmallSize : mNaturalHeight;
}
if (DEBUG && mCurrView != null) mCurrView.setBackgroundColor(0);
- mAnimation = ObjectAnimator.ofFloat(mScaler, "height", h).setDuration(EXPAND_DURATION);
- mAnimation.start();
+ if (mScaleAnimation.isRunning()) {
+ mScaleAnimation.cancel();
+ }
+ mScaleAnimation.setFloatValues(h);
+ mScaleAnimation.setupStartValues();
+ mScaleAnimation.start();
mStretching = false;
setGlow(0f);
clearView();
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index 722e312b4ed1..faa8d3ce1cd9 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -1366,7 +1366,7 @@ private NetworkStateTracker makeWimaxStateTracker() {
mNetd.removeRoute(ifaceName, r);
} catch (Exception e) {
// never crash - catch them all
- if (DBG) loge("Exception trying to remove a route: " + e);
+ if (VDBG) loge("Exception trying to remove a route: " + e);
return false;
}
} else {
@@ -1378,7 +1378,7 @@ private NetworkStateTracker makeWimaxStateTracker() {
mNetd.removeSecondaryRoute(ifaceName, r);
} catch (Exception e) {
// never crash - catch them all
- if (DBG) loge("Exception trying to remove a route: " + e);
+ if (VDBG) loge("Exception trying to remove a route: " + e);
return false;
}
}
diff --git a/services/java/com/android/server/NativeDaemonConnector.java b/services/java/com/android/server/NativeDaemonConnector.java
index 0b5eaffe7f93..6a6c585fe73c 100644
--- a/services/java/com/android/server/NativeDaemonConnector.java
+++ b/services/java/com/android/server/NativeDaemonConnector.java
@@ -94,7 +94,7 @@ final class NativeDaemonConnector implements Runnable, Handler.Callback, Watchdo
public boolean handleMessage(Message msg) {
String event = (String) msg.obj;
try {
- if (!mCallbacks.onEvent(msg.what, event, event.split(" "))) {
+ if (!mCallbacks.onEvent(msg.what, event, NativeDaemonEvent.unescapeArgs(event))) {
log(String.format("Unhandled event '%s'", event));
}
} catch (Exception e) {
diff --git a/services/java/com/android/server/NativeDaemonEvent.java b/services/java/com/android/server/NativeDaemonEvent.java
index d5e9f660279f..f11ae1d391eb 100644
--- a/services/java/com/android/server/NativeDaemonEvent.java
+++ b/services/java/com/android/server/NativeDaemonEvent.java
@@ -16,6 +16,7 @@
package com.android.server;
+import android.util.Slog;
import com.google.android.collect.Lists;
import java.util.ArrayList;
@@ -32,12 +33,14 @@ public class NativeDaemonEvent {
private final int mCode;
private final String mMessage;
private final String mRawEvent;
+ private String[] mParsed;
private NativeDaemonEvent(int cmdNumber, int code, String message, String rawEvent) {
mCmdNumber = cmdNumber;
mCode = code;
mMessage = message;
mRawEvent = rawEvent;
+ mParsed = null;
}
public int getCmdNumber() {
@@ -166,4 +169,86 @@ public class NativeDaemonEvent {
}
return result.toArray(new String[result.size()]);
}
+
+ /**
+ * Find the Nth field of the event.
+ *
+ * This ignores and code or cmdNum, the first return value is given for N=0.
+ * Also understands "\"quoted\" multiword responses" and tries them as a single field
+ */
+ public String getField(int n) {
+ if (mParsed == null) {
+ mParsed = unescapeArgs(mRawEvent);
+ }
+ n += 2; // skip code and command#
+ if (n > mParsed.length) return null;
+ return mParsed[n];
+ }
+
+ public static String[] unescapeArgs(String rawEvent) {
+ final boolean DEBUG_ROUTINE = false;
+ final String LOGTAG = "unescapeArgs";
+ final ArrayList<String> parsed = new ArrayList<String>();
+ final int length = rawEvent.length();
+ int current = 0;
+ int wordEnd = -1;
+ boolean quoted = false;
+
+ if (DEBUG_ROUTINE) Slog.e(LOGTAG, "parsing '" + rawEvent + "'");
+ if (rawEvent.charAt(current) == '\"') {
+ quoted = true;
+ current++;
+ }
+ while (current < length) {
+ // find the end of the word
+ if (quoted) {
+ wordEnd = current;
+ while ((wordEnd = rawEvent.indexOf('\"', wordEnd)) != -1) {
+ if (rawEvent.charAt(wordEnd - 1) != '\\') {
+ break;
+ } else {
+ wordEnd++; // skip this escaped quote and keep looking
+ }
+ }
+ } else {
+ wordEnd = rawEvent.indexOf(' ', current);
+ }
+ // if we didn't find the end-o-word token, take the rest of the string
+ if (wordEnd == -1) wordEnd = length;
+ String word = rawEvent.substring(current, wordEnd);
+ current += word.length();
+ if (!quoted) {
+ word = word.trim();
+ } else {
+ current++; // skip the trailing quote
+ }
+ // unescape stuff within the word
+ word.replace("\\\\", "\\");
+ word.replace("\\\"", "\"");
+
+ if (DEBUG_ROUTINE) Slog.e(LOGTAG, "found '" + word + "'");
+ parsed.add(word);
+
+ // find the beginning of the next word - either of these options
+ int nextSpace = rawEvent.indexOf(' ', current);
+ int nextQuote = rawEvent.indexOf(" \"", current);
+ if (DEBUG_ROUTINE) {
+ Slog.e(LOGTAG, "nextSpace=" + nextSpace + ", nextQuote=" + nextQuote);
+ }
+ if (nextQuote > -1 && nextQuote <= nextSpace) {
+ quoted = true;
+ current = nextQuote + 2;
+ } else {
+ quoted = false;
+ if (nextSpace > -1) {
+ current = nextSpace + 1;
+ }
+ } // else we just start the next word after the current and read til the end
+ if (DEBUG_ROUTINE) {
+ Slog.e(LOGTAG, "next loop - current=" + current +
+ ", length=" + length + ", quoted=" + quoted);
+ }
+ }
+ return parsed.toArray(new String[parsed.size()]);
+ }
}
diff --git a/services/java/com/android/server/wm/AppWindowAnimator.java b/services/java/com/android/server/wm/AppWindowAnimator.java
index c3b5465d208b..696413727a70 100644
--- a/services/java/com/android/server/wm/AppWindowAnimator.java
+++ b/services/java/com/android/server/wm/AppWindowAnimator.java
@@ -15,6 +15,7 @@ import java.io.PrintWriter;
*
*/
public class AppWindowAnimator {
+ static final String TAG = "AppWindowAnimator";
final AppWindowToken mAppToken;
final WindowManagerService mService;
@@ -43,6 +44,8 @@ public class AppWindowAnimator {
Animation thumbnailAnimation;
final Transformation thumbnailTransformation = new Transformation();
+ static final Animation sDummyAnimation = new DummyAnimation();
+
public AppWindowAnimator(final WindowManagerService service, final AppWindowToken atoken) {
mService = service;
mAppToken = atoken;
@@ -51,7 +54,7 @@ public class AppWindowAnimator {
public void setAnimation(Animation anim, boolean initialized) {
if (WindowManagerService.localLOGV) Slog.v(
- WindowManagerService.TAG, "Setting animation in " + this + ": " + anim);
+ TAG, "Setting animation in " + this + ": " + anim);
animation = anim;
animating = false;
animInitialized = initialized;
@@ -78,8 +81,8 @@ public class AppWindowAnimator {
public void setDummyAnimation() {
if (animation == null) {
if (WindowManagerService.localLOGV) Slog.v(
- WindowManagerService.TAG, "Setting dummy animation in " + this);
- animation = WindowManagerService.sDummyAnimation;
+ TAG, "Setting dummy animation in " + this);
+ animation = sDummyAnimation;
animInitialized = false;
}
}
@@ -111,7 +114,7 @@ public class AppWindowAnimator {
if (winAnimator.mAnimLayer > thumbnailLayer) {
thumbnailLayer = winAnimator.mAnimLayer;
}
- if (WindowManagerService.DEBUG_LAYERS) Slog.v(WindowManagerService.TAG, "Updating layer " + w + ": "
+ if (WindowManagerService.DEBUG_LAYERS) Slog.v(TAG, "Updating layer " + w + ": "
+ winAnimator.mAnimLayer);
if (w == mService.mInputMethodTarget && !mService.mInputMethodTargetWaitingAnim) {
mService.setInputMethodAnimLayerAdjustment(adj);
@@ -162,14 +165,12 @@ public class AppWindowAnimator {
transformation.clear();
final boolean more = animation.getTransformation(currentTime, transformation);
if (WindowManagerService.DEBUG_ANIM) Slog.v(
- WindowManagerService.TAG, "Stepped animation in " + this +
- ": more=" + more + ", xform=" + transformation);
+ TAG, "Stepped animation in " + this + ": more=" + more + ", xform=" + transformation);
if (!more) {
animation = null;
clearThumbnail();
if (WindowManagerService.DEBUG_ANIM) Slog.v(
- WindowManagerService.TAG, "Finished animation in " + this +
- " @ " + currentTime);
+ TAG, "Finished animation in " + this + " @ " + currentTime);
}
hasTransformation = more;
return more;
@@ -180,11 +181,13 @@ public class AppWindowAnimator {
if (mService.okToDisplay()) {
// We will run animations as long as the display isn't frozen.
- if (animation == WindowManagerService.sDummyAnimation) {
+ if (animation == sDummyAnimation) {
// This guy is going to animate, but not yet. For now count
// it as not animating for purposes of scheduling transactions;
// when it is really time to animate, this will be set to
// a real animation and the next call will execute normally.
+ hasTransformation = true;
+ transformation.setAlpha(mAppToken.reportedVisible ? 1 : 0);
return false;
}
@@ -192,7 +195,7 @@ public class AppWindowAnimator {
&& animation != null) {
if (!animating) {
if (WindowManagerService.DEBUG_ANIM) Slog.v(
- WindowManagerService.TAG, "Starting animation in " + this +
+ TAG, "Starting animation in " + this +
" @ " + currentTime + ": dw=" + dw + " dh=" + dh
+ " scale=" + mService.mTransitionAnimationScale
+ " allDrawn=" + mAppToken.allDrawn + " animating=" + animating);
@@ -245,7 +248,7 @@ public class AppWindowAnimator {
}
if (WindowManagerService.DEBUG_ANIM) Slog.v(
- WindowManagerService.TAG, "Animation done in " + this
+ TAG, "Animation done in " + this
+ ": reportedVisible=" + mAppToken.reportedVisible);
transformation.clear();
@@ -264,7 +267,7 @@ public class AppWindowAnimator {
final int NW = mAppToken.allAppWindows.size();
for (int i=0; i<NW; i++) {
WindowStateAnimator winAnimator = mAppToken.allAppWindows.get(i).mWinAnimator;
- if (WindowManagerService.DEBUG_VISIBILITY) Slog.v(WindowManagerService.TAG,
+ if (WindowManagerService.DEBUG_VISIBILITY) Slog.v(TAG,
"performing show on: " + winAnimator);
winAnimator.performShowLocked();
isAnimating |= winAnimator.isAnimating();
@@ -298,4 +301,15 @@ public class AppWindowAnimator {
pw.println(thumbnailTransformation.toShortString());
}
}
+
+ // This is an animation that does nothing: it just immediately finishes
+ // itself every time it is called. It is used as a stub animation in cases
+ // where we want to synchronize multiple things that may be animating.
+ static final class DummyAnimation extends Animation {
+ @Override
+ public boolean getTransformation(long currentTime, Transformation outTransformation) {
+ return false;
+ }
+ }
+
}
diff --git a/services/java/com/android/server/wm/WindowAnimator.java b/services/java/com/android/server/wm/WindowAnimator.java
index 8333ab5eeb8f..f1ad53915623 100644
--- a/services/java/com/android/server/wm/WindowAnimator.java
+++ b/services/java/com/android/server/wm/WindowAnimator.java
@@ -130,7 +130,7 @@ public class WindowAnimator {
for (i=0; i<NAT; i++) {
final AppWindowAnimator appAnimator = mService.mAppTokens.get(i).mAppAnimator;
final boolean wasAnimating = appAnimator.animation != null
- && appAnimator.animation != WindowManagerService.sDummyAnimation;
+ && appAnimator.animation != AppWindowAnimator.sDummyAnimation;
if (appAnimator.stepAnimationLocked(mCurrentTime, mInnerDw, mInnerDh)) {
mAnimating = true;
} else if (wasAnimating) {
@@ -147,7 +147,7 @@ public class WindowAnimator {
for (i=0; i<NEAT; i++) {
final AppWindowAnimator appAnimator = mService.mExitingAppTokens.get(i).mAppAnimator;
final boolean wasAnimating = appAnimator.animation != null
- && appAnimator.animation != WindowManagerService.sDummyAnimation;
+ && appAnimator.animation != AppWindowAnimator.sDummyAnimation;
if (appAnimator.stepAnimationLocked(mCurrentTime, mInnerDw, mInnerDh)) {
mAnimating = true;
} else if (wasAnimating) {
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
index ff41899d5c2a..1f7b29780390 100755
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/java/com/android/server/wm/WindowManagerService.java
@@ -4111,7 +4111,7 @@ public class WindowManagerService extends IWindowManager.Stub
boolean runningAppAnimation = false;
if (transit != WindowManagerPolicy.TRANSIT_UNSET) {
- if (wtoken.mAppAnimator.animation == sDummyAnimation) {
+ if (wtoken.mAppAnimator.animation == AppWindowAnimator.sDummyAnimation) {
wtoken.mAppAnimator.animation = null;
}
if (applyAnimationLocked(wtoken, lp, transit, visible)) {
@@ -6580,16 +6580,6 @@ public class WindowManagerService extends IWindowManager.Stub
}
}
- // This is an animation that does nothing: it just immediately finishes
- // itself every time it is called. It is used as a stub animation in cases
- // where we want to synchronize multiple things that may be animating.
- static final class DummyAnimation extends Animation {
- public boolean getTransformation(long currentTime, Transformation outTransformation) {
- return false;
- }
- }
- static final Animation sDummyAnimation = new DummyAnimation();
-
// -------------------------------------------------------------
// Async Handler
// -------------------------------------------------------------
diff --git a/services/java/com/android/server/wm/WindowStateAnimator.java b/services/java/com/android/server/wm/WindowStateAnimator.java
index 74e3304b02fd..9147a1062690 100644
--- a/services/java/com/android/server/wm/WindowStateAnimator.java
+++ b/services/java/com/android/server/wm/WindowStateAnimator.java
@@ -390,10 +390,10 @@ class WindowStateAnimator {
// This must be called while inside a transaction.
boolean commitFinishDrawingLocked(long currentTime) {
- //Slog.i(TAG, "commitFinishDrawingLocked: " + mSurface);
if (mDrawState != COMMIT_DRAW_PENDING) {
return false;
}
+ //Slog.i(TAG, "commitFinishDrawingLocked: Draw pending. " + mSurface);
mDrawState = READY_TO_SHOW;
final boolean starting = mWin.mAttrs.type == TYPE_APPLICATION_STARTING;
final AppWindowToken atoken = mWin.mAppToken;
@@ -515,7 +515,8 @@ class WindowStateAnimator {
@Override
public String toString() {
- return "Surface " + mName + ": shown=" + mShown + " layer=" + mLayer
+ return "Surface " + Integer.toHexString(System.identityHashCode(this)) + " "
+ + mName + ": shown=" + mShown + " layer=" + mLayer
+ " alpha=" + mSurfaceTraceAlpha + " " + mPosition.x + "," + mPosition.y
+ " " + mSize.x + "x" + mSize.y;
}