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);
         }
     }