diff options
author | Daniel Sandler <dsandler@android.com> | 2010-08-19 14:55:38 -0400 |
---|---|---|
committer | Daniel Sandler <dsandler@android.com> | 2010-08-19 16:59:11 -0400 |
commit | 0398bf70e703e89aacb074e4ef9b4a86843e3d06 (patch) | |
tree | 48ee9a9496e0435685d536e37b58f0041cd1c0f2 /packages/SystemUI | |
parent | bccfcd95d3cc4029c1ed8514d31436a857283873 (diff) | |
download | frameworks_base-0398bf70e703e89aacb074e4ef9b4a86843e3d06.zip frameworks_base-0398bf70e703e89aacb074e4ef9b4a86843e3d06.tar.gz frameworks_base-0398bf70e703e89aacb074e4ef9b4a86843e3d06.tar.bz2 |
Fix periodically disappearing status icons.
Occasionally the animation listener wasn't being told that
the ticker animation had completed; this callback was
essential to keeping the status bar's internal state correct
(namely, setting mTicking=false). The safest thing to do is
simply set mTicking to false immediately upon tickerDone()
or tickerHalting().
Bug: 2915280
Change-Id: I997911b12fa2985fa83b42154fb3485220886219
Diffstat (limited to 'packages/SystemUI')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/StatusBarService.java | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarService.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarService.java index 07bcce7..d2346e4 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarService.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarService.java @@ -817,7 +817,8 @@ public class StatusBarService extends Service implements CommandQueue.Callbacks void performCollapse() { if (SPEW) Slog.d(TAG, "performCollapse: mExpanded=" + mExpanded - + " mExpandedVisible=" + mExpandedVisible); + + " mExpandedVisible=" + mExpandedVisible + + " mTicking=" + mTicking); if (!mExpandedVisible) { return; @@ -832,7 +833,9 @@ public class StatusBarService extends Service implements CommandQueue.Callbacks if ((mDisabled & StatusBarManager.DISABLE_NOTIFICATION_ICONS) == 0) { setNotificationIconVisibility(true, com.android.internal.R.anim.fade_in); } - setDateViewVisibility(false, com.android.internal.R.anim.fade_out); + if (mDateView.getVisibility() == View.VISIBLE) { + setDateViewVisibility(false, com.android.internal.R.anim.fade_out); + } if (!mExpanded) { return; @@ -1147,6 +1150,7 @@ public class StatusBarService extends Service implements CommandQueue.Callbacks @Override void tickerStarting() { + if (SPEW) Slog.d(TAG, "tickerStarting"); mTicking = true; mIcons.setVisibility(View.GONE); mTickerView.setVisibility(View.VISIBLE); @@ -1159,38 +1163,30 @@ public class StatusBarService extends Service implements CommandQueue.Callbacks @Override void tickerDone() { + if (SPEW) Slog.d(TAG, "tickerDone"); + mTicking = false; mIcons.setVisibility(View.VISIBLE); mTickerView.setVisibility(View.GONE); mIcons.startAnimation(loadAnim(com.android.internal.R.anim.push_down_in, null)); - mTickerView.startAnimation(loadAnim(com.android.internal.R.anim.push_down_out, - mTickingDoneListener)); + mTickerView.startAnimation(loadAnim(com.android.internal.R.anim.push_down_out, null)); if (mExpandedVisible) { setDateViewVisibility(true, com.android.internal.R.anim.push_down_in); } } void tickerHalting() { + if (SPEW) Slog.d(TAG, "tickerHalting"); + mTicking = false; mIcons.setVisibility(View.VISIBLE); mTickerView.setVisibility(View.GONE); mIcons.startAnimation(loadAnim(com.android.internal.R.anim.fade_in, null)); - mTickerView.startAnimation(loadAnim(com.android.internal.R.anim.fade_out, - mTickingDoneListener)); + mTickerView.startAnimation(loadAnim(com.android.internal.R.anim.fade_out, null)); if (mExpandedVisible) { setDateViewVisibility(true, com.android.internal.R.anim.fade_in); } } } - Animation.AnimationListener mTickingDoneListener = new Animation.AnimationListener() {; - public void onAnimationEnd(Animation animation) { - mTicking = false; - } - public void onAnimationRepeat(Animation animation) { - } - public void onAnimationStart(Animation animation) { - } - }; - private Animation loadAnim(int id, Animation.AnimationListener listener) { Animation anim = AnimationUtils.loadAnimation(StatusBarService.this, id); if (listener != null) { @@ -1373,7 +1369,8 @@ public class StatusBarService extends Service implements CommandQueue.Callbacks void updateExpandedViewPos(int expandedPosition) { if (SPEW) { Slog.d(TAG, "updateExpandedViewPos before expandedPosition=" + expandedPosition - + " mTrackingParams.y=" + mTrackingParams.y + + " mTrackingParams.y=" + + ((mTrackingParams == null) ? "???" : mTrackingParams.y) + " mTrackingPosition=" + mTrackingPosition); } @@ -1518,6 +1515,9 @@ public class StatusBarService extends Service implements CommandQueue.Callbacks } } } else if ((diff & StatusBarManager.DISABLE_NOTIFICATION_TICKER) != 0) { + Slog.d(TAG, "DISABLE_NOTIFICATION_TICKER: " + + (((net & StatusBarManager.DISABLE_NOTIFICATION_TICKER) != 0) + ? "yes" : "no")); if (mTicking && (net & StatusBarManager.DISABLE_NOTIFICATION_TICKER) != 0) { mTicker.halt(); } |