summaryrefslogtreecommitdiffstats
path: root/policy/src/com
diff options
context:
space:
mode:
authorCraig Mautner <cmautner@google.com>2014-06-23 14:57:02 -0700
committerCraig Mautner <cmautner@google.com>2014-06-23 15:01:27 -0700
commit13f6ea78b0aa98ffea6ea644770e4320ec9a2242 (patch)
tree35c32cb334131076c867fbdb484705b6446c8071 /policy/src/com
parent61606cec5ceb705910dec94222b22e66a0365094 (diff)
downloadframeworks_base-13f6ea78b0aa98ffea6ea644770e4320ec9a2242.zip
frameworks_base-13f6ea78b0aa98ffea6ea644770e4320ec9a2242.tar.gz
frameworks_base-13f6ea78b0aa98ffea6ea644770e4320ec9a2242.tar.bz2
Avoid unnecessary timeouts.
And fix a couple of other inefficiencies. Fixes bug 15444410. Change-Id: Idad95d4e4d70bc7d2965e1bd6ff3d3135b73dd9c
Diffstat (limited to 'policy/src/com')
-rw-r--r--policy/src/com/android/internal/policy/impl/PhoneWindowManager.java18
1 files changed, 9 insertions, 9 deletions
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
index 637061d..ba48665 100644
--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -42,7 +42,6 @@ import android.database.ContentObserver;
import android.graphics.PixelFormat;
import android.graphics.Rect;
import android.media.AudioManager;
-import android.media.AudioSystem;
import android.media.IAudioService;
import android.media.Ringtone;
import android.media.RingtoneManager;
@@ -51,7 +50,6 @@ import android.os.Bundle;
import android.os.FactoryTest;
import android.os.Handler;
import android.os.IBinder;
-import android.os.IRemoteCallback;
import android.os.Looper;
import android.os.Message;
import android.os.Messenger;
@@ -105,7 +103,6 @@ import com.android.internal.policy.PolicyManager;
import com.android.internal.policy.impl.keyguard.KeyguardServiceDelegate;
import com.android.internal.policy.impl.keyguard.KeyguardServiceDelegate.ShowListener;
import com.android.internal.statusbar.IStatusBarService;
-import com.android.internal.telephony.ITelephony;
import com.android.internal.widget.PointerLocationView;
import com.android.server.LocalServices;
@@ -270,10 +267,10 @@ public class PhoneWindowManager implements WindowManagerPolicy {
// The following are only accessed on the mHandler thread.
boolean mKeyguardDrawComplete;
boolean mWindowManagerDrawComplete;
- ArrayList<ScreenOnListener> mScreenOnListeners = new ArrayList<ScreenOnListener>();
- final IRemoteCallback mWindowManagerDrawCallback = new IRemoteCallback.Stub() {
+ ScreenOnListener mScreenOnListener;
+ final Runnable mWindowManagerDrawCallback = new Runnable() {
@Override
- public void sendResult(Bundle data) {
+ public void run() {
if (DEBUG_WAKEUP) Slog.i(TAG, "All windows ready for display!");
mHandler.sendEmptyMessage(MSG_WINDOW_MANAGER_DRAWN_COMPLETE);
}
@@ -4543,7 +4540,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
// Called on the mHandler thread.
private void handleWakingUp(final ScreenOnListener screenOnListener) {
if (screenOnListener != null) {
- mScreenOnListeners.add(screenOnListener);
+ mScreenOnListener = screenOnListener;
}
synchronized (mLock) {
@@ -4575,8 +4572,11 @@ public class PhoneWindowManager implements WindowManagerPolicy {
return;
}
+ ScreenOnListener screenOnListener;
synchronized (mLock) {
mScreenOnFully = true;
+ screenOnListener = mScreenOnListener;
+ mScreenOnListener = null;
}
try {
@@ -4584,8 +4584,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
} catch (RemoteException unhandled) {
}
- for (int i = mScreenOnListeners.size() - 1; i >=0; --i) {
- mScreenOnListeners.remove(i).onScreenOn();
+ if (screenOnListener != null) {
+ screenOnListener.onScreenOn();
}
setKeyguardDrawn();