Changing downloads tab to my apps and making most recent first. (3377455)

Change-Id: I75ae46ad601457ecfc9555aff7f7ff5284440317
diff --git a/src/com/android/launcher2/AllAppsPagedView.java b/src/com/android/launcher2/AllAppsPagedView.java
index fe7312d..5906599 100644
--- a/src/com/android/launcher2/AllAppsPagedView.java
+++ b/src/com/android/launcher2/AllAppsPagedView.java
@@ -314,6 +314,7 @@
                     filteredApps.add(info);
                 }
             }
+            Collections.sort(filteredApps, LauncherModel.APP_INSTALL_TIME_COMPARATOR);
         }
         return filteredApps;
     }
diff --git a/src/com/android/launcher2/ApplicationInfo.java b/src/com/android/launcher2/ApplicationInfo.java
index 0851cd3..3adea37 100644
--- a/src/com/android/launcher2/ApplicationInfo.java
+++ b/src/com/android/launcher2/ApplicationInfo.java
@@ -52,6 +52,11 @@
      */
     Bitmap iconBitmap;
 
+    /**
+     * The time at which the app was first installed.
+     */
+    long firstInstallTime;
+
     ComponentName componentName;
 
     static final int APP_FLAG = 1;
@@ -82,6 +87,7 @@
             if ((appFlags & android.content.pm.ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) {
                 flags |= DOWNLOADED_FLAG;
             }
+            firstInstallTime = pm.getPackageInfo(packageName, 0).firstInstallTime;
             // TODO: Figure out how to determine what is a game
 
             // If it's not a game, it's an app
@@ -101,6 +107,7 @@
         title = info.title.toString();
         intent = new Intent(info.intent);
         flags = info.flags;
+        firstInstallTime = info.firstInstallTime;
     }
 
     /**
@@ -128,7 +135,8 @@
         Log.d(tag, label + " size=" + list.size());
         for (ApplicationInfo info: list) {
             Log.d(tag, "   title=\"" + info.title + "\" titleBitmap=" + info.titleBitmap
-                    + " iconBitmap=" + info.iconBitmap);
+                    + " iconBitmap=" + info.iconBitmap + " firstInstallTime="
+                    + info.firstInstallTime);
         }
     }
 
diff --git a/src/com/android/launcher2/LauncherModel.java b/src/com/android/launcher2/LauncherModel.java
index 7e72610..0052737 100644
--- a/src/com/android/launcher2/LauncherModel.java
+++ b/src/com/android/launcher2/LauncherModel.java
@@ -1747,6 +1747,14 @@
             return sCollator.compare(a.title.toString(), b.title.toString());
         }
     };
+    public static final Comparator<ApplicationInfo> APP_INSTALL_TIME_COMPARATOR
+            = new Comparator<ApplicationInfo>() {
+        public final int compare(ApplicationInfo a, ApplicationInfo b) {
+            if (a.firstInstallTime < b.firstInstallTime) return 1;
+            if (a.firstInstallTime > b.firstInstallTime) return -1;
+            return 0;
+        }
+    };
 
     public void dumpState() {
         Log.d(TAG, "mCallbacks=" + mCallbacks);