diff options
author | Jim Miller <jaggies@google.com> | 2013-10-20 17:21:57 -0700 |
---|---|---|
committer | Jim Miller <jaggies@google.com> | 2013-10-21 17:17:40 -0700 |
commit | 1693f6a5639a1f993bdc1dca9dade5e3eb3c14f2 (patch) | |
tree | bcc2c5b6c7b25f5a788d8ebee1a1cc067fc7d930 /packages/Keyguard/src | |
parent | e17e0f0e6cfdf32a8b6d142f49819ca9c90be69c (diff) | |
download | frameworks_base-1693f6a5639a1f993bdc1dca9dade5e3eb3c14f2.zip frameworks_base-1693f6a5639a1f993bdc1dca9dade5e3eb3c14f2.tar.gz frameworks_base-1693f6a5639a1f993bdc1dca9dade5e3eb3c14f2.tar.bz2 |
Prevent having multiple seek runnables in flight.
This fix ensures that only one runnable is running at a time, no matter how
many events come in. There's probably a better way to do this, but this is a
safe fix.
Fixes bug 11307391
Change-Id: I007c95062b20285571f39603c95fb9174b9a2da3
Diffstat (limited to 'packages/Keyguard/src')
-rw-r--r-- | packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java index 464201c..2e35439 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java @@ -134,6 +134,7 @@ public class KeyguardTransportControlView extends FrameLayout { private final Runnable mUpdateSeekBars = new Runnable() { public void run() { if (updateSeekBars()) { + removeCallbacks(this); postDelayed(this, 1000); } } @@ -249,7 +250,6 @@ public class KeyguardTransportControlView extends FrameLayout { } if (enabled) { mUpdateSeekBars.run(); - postDelayed(mUpdateSeekBars, 1000); } else { removeCallbacks(mUpdateSeekBars); } @@ -437,8 +437,7 @@ public class KeyguardTransportControlView extends FrameLayout { setSeekBarsEnabled(false); } - KeyguardUpdateMonitor.getInstance(getContext()).dispatchSetBackground( - mMetadata.bitmap); + KeyguardUpdateMonitor.getInstance(getContext()).dispatchSetBackground(mMetadata.bitmap); final int flags = mTransportControlFlags; setVisibilityBasedOnFlag(mBtnPrev, flags, RemoteControlClient.FLAG_KEY_MEDIA_PREVIOUS); setVisibilityBasedOnFlag(mBtnNext, flags, RemoteControlClient.FLAG_KEY_MEDIA_NEXT); @@ -539,7 +538,7 @@ public class KeyguardTransportControlView extends FrameLayout { imageResId = R.drawable.ic_media_pause; imageDescId = R.string.keyguard_transport_pause_description; if (mSeekEnabled) { - postDelayed(mUpdateSeekBars, 1000); + mUpdateSeekBars.run(); } break; @@ -567,6 +566,7 @@ public class KeyguardTransportControlView extends FrameLayout { boolean updateSeekBars() { final int position = (int) mRemoteController.getEstimatedMediaPosition(); if (position >= 0) { + if (DEBUG) Log.v(TAG, "Seek to " + position); if (!mUserSeeking) { mTransientSeekBar.setProgress(position); } |