Merge "Fixing issue with inconsistent icon filename. (Bug 16992882)" into lmp-dev
diff --git a/services/core/java/com/android/server/am/ActivityRecord.java b/services/core/java/com/android/server/am/ActivityRecord.java
index abacb2d..24b7cb3 100755
--- a/services/core/java/com/android/server/am/ActivityRecord.java
+++ b/services/core/java/com/android/server/am/ActivityRecord.java
@@ -1054,8 +1054,8 @@
         return null;
     }
 
-    private static String createImageFilename(ActivityRecord r, int taskId) {
-        return String.valueOf(taskId) + ACTIVITY_ICON_SUFFIX + r.createTime +
+    private static String createImageFilename(long createTime, int taskId) {
+        return String.valueOf(taskId) + ACTIVITY_ICON_SUFFIX + createTime +
                 TaskPersister.IMAGE_EXTENSION;
     }
 
@@ -1072,7 +1072,7 @@
         out.attribute(null, ATTR_USERID, String.valueOf(userId));
 
         if (taskDescription != null) {
-            task.saveTaskDescription(taskDescription, createImageFilename(this, task.taskId),
+            task.saveTaskDescription(taskDescription, createImageFilename(createTime, task.taskId),
                     out);
         }
 
@@ -1165,7 +1165,8 @@
         r.persistentState = persistentState;
 
         if (createTime >= 0) {
-            taskDescription.setIcon(TaskPersister.restoreImage(createImageFilename(r, taskId)));
+            taskDescription.setIcon(TaskPersister.restoreImage(createImageFilename(createTime,
+                    taskId)));
         }
         r.taskDescription = taskDescription;
         r.createTime = createTime;
diff --git a/services/core/java/com/android/server/am/TaskRecord.java b/services/core/java/com/android/server/am/TaskRecord.java
index 48cb61a..2a8c6fb 100644
--- a/services/core/java/com/android/server/am/TaskRecord.java
+++ b/services/core/java/com/android/server/am/TaskRecord.java
@@ -792,6 +792,11 @@
         return true;
     }
 
+    private static String createLastTaskDescriptionIconFilename(int taskId, long lastActiveTime) {
+        return String.valueOf(taskId) + LAST_ACTIVITY_ICON_SUFFIX + lastActiveTime +
+                TaskPersister.IMAGE_EXTENSION;
+    }
+
     void saveToXml(XmlSerializer out) throws IOException, XmlPullParserException {
         if (ActivityManagerService.DEBUG_RECENTS) Slog.i(TAG, "Saving task=" + this);
 
@@ -818,8 +823,8 @@
             out.attribute(null, ATTR_LASTDESCRIPTION, lastDescription.toString());
         }
         if (lastTaskDescription != null) {
-            saveTaskDescription(lastTaskDescription, String.valueOf(taskId) +
-                    LAST_ACTIVITY_ICON_SUFFIX + lastActiveTime, out);
+            saveTaskDescription(lastTaskDescription, createLastTaskDescriptionIconFilename(taskId,
+                    lastActiveTime), out);
         }
         out.attribute(null, ATTR_TASK_AFFILIATION_COLOR, String.valueOf(mAffiliatedTaskColor));
         out.attribute(null, ATTR_TASK_AFFILIATION, String.valueOf(mAffiliatedTaskId));
@@ -961,8 +966,8 @@
         }
 
         if (lastActiveTime >= 0) {
-            taskDescription.setIcon(TaskPersister.restoreImage(String.valueOf(taskId) +
-                    LAST_ACTIVITY_ICON_SUFFIX + lastActiveTime + TaskPersister.IMAGE_EXTENSION));
+            taskDescription.setIcon(TaskPersister.restoreImage(
+                    createLastTaskDescriptionIconFilename(taskId, lastActiveTime)));
         }
 
         final TaskRecord task = new TaskRecord(stackSupervisor.mService, taskId, intent,