reduce garbage generation in KeyguardTransportControlView.
Bug: 11243508
Change-Id: I8315c27faf935d2465b3ce9e958e6edee00a4d4d
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java
index de26efb..8095ecf 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java
@@ -92,6 +92,9 @@
private boolean mUserSeeking;
private java.text.DateFormat mFormat;
+ private Date mTimeElapsed;
+ private Date mTimeRemaining;
+
/**
* The metadata which should be populated into the view once we've been attached
*/
@@ -452,15 +455,19 @@
void updateSeekDisplay() {
if (mMetadata != null && mRemoteController != null && mFormat != null) {
- final long timeElapsed = mRemoteController.getEstimatedMediaPosition();
- final long duration = mMetadata.duration;
- final long remaining = duration - timeElapsed;
+ if (mTimeElapsed == null) {
+ mTimeElapsed = new Date();
+ }
+ if (mTimeRemaining == null) {
+ mTimeRemaining = new Date();
+ }
+ mTimeElapsed.setTime(mRemoteController.getEstimatedMediaPosition());
+ mTimeRemaining.setTime(mMetadata.duration - mTimeElapsed.getTime());
+ mTransientSeekTimeElapsed.setText(mFormat.format(mTimeElapsed));
+ mTransientSeekTimeRemaining.setText(mFormat.format(mTimeRemaining));
- mTransientSeekTimeElapsed.setText(mFormat.format(new Date(timeElapsed)));
- mTransientSeekTimeRemaining.setText(mFormat.format(new Date(remaining)));
-
- if (DEBUG) Log.d(TAG, "updateSeekDisplay timeElapsed=" + timeElapsed +
- " duration=" + duration + " remaining=" + remaining);
+ if (DEBUG) Log.d(TAG, "updateSeekDisplay timeElapsed=" + mTimeElapsed +
+ " duration=" + mMetadata.duration + " remaining=" + mTimeRemaining);
}
}