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

Change-Id: I75ae46ad601457ecfc9555aff7f7ff5284440317
diff --git a/res/values/strings.xml b/res/values/strings.xml
index f473880..0c4aa26 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -60,12 +60,12 @@
     <!--  Labels for the tabs in All Apps -->
     <!--  Title of the tab for all applications (includes games and non-games) [CHAR_LIMIT=12] -->
     <string name="all_apps_tab_all">All</string>
-    <!--  Title of the tab for all applications *except* games [CHAR_LIMIT=12] -->
+    <!--  Title of the tab for all applications *except* games [CHAR_LIMIT=24] -->
     <string name="all_apps_tab_apps">Apps</string>
-    <!--  Title of the tab for applications labeled as games [CHAR_LIMIT=12] -->
+    <!--  Title of the tab for applications labeled as games [CHAR_LIMIT=24] -->
     <string name="all_apps_tab_games">Games</string>
-    <!--  Tile of the tab for applications that were downloaded from market [CHAR_LIMIT=12] -->
-    <string name="all_apps_tab_downloaded">Downloaded</string>
+    <!--  Tile of the tab for applications that were downloaded from market [CHAR_LIMIT=24] -->
+    <string name="all_apps_tab_downloaded">My Apps</string>
 
     <!-- All Apps pane -->
     <!-- Message to show when there are no games [CHAR_LIMIT=25] -->
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);