resolved conflicts for merge of 2433c443 to honeycomb-plus-aosp

Change-Id: I3385f57e5761679e6700bcbe3c41deb3ecd43ba1
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java
index 50e56c7..5926929 100644
--- a/core/java/android/app/ApplicationPackageManager.java
+++ b/core/java/android/app/ApplicationPackageManager.java
@@ -35,6 +35,7 @@
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.pm.PackageManager;
+import android.content.pm.ParceledListSlice;
 import android.content.pm.PermissionGroupInfo;
 import android.content.pm.PermissionInfo;
 import android.content.pm.ProviderInfo;
@@ -44,6 +45,7 @@
 import android.content.res.XmlResourceParser;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
+import android.os.Parcel;
 import android.os.Process;
 import android.os.RemoteException;
 import android.util.Log;
@@ -378,19 +380,41 @@
         throw new NameNotFoundException("No shared userid for user:"+sharedUserName);
     }
 
+    @SuppressWarnings("unchecked")
     @Override
     public List<PackageInfo> getInstalledPackages(int flags) {
         try {
-            return mPM.getInstalledPackages(flags);
+            final List<PackageInfo> packageInfos = new ArrayList<PackageInfo>();
+            PackageInfo lastItem = null;
+            ParceledListSlice<PackageInfo> slice;
+
+            do {
+                final String lastKey = lastItem != null ? lastItem.packageName : null;
+                slice = mPM.getInstalledPackages(flags, lastKey);
+                lastItem = slice.populateList(packageInfos, PackageInfo.CREATOR);
+            } while (!slice.isLastSlice());
+
+            return packageInfos;
         } catch (RemoteException e) {
             throw new RuntimeException("Package manager has died", e);
         }
     }
 
+    @SuppressWarnings("unchecked")
     @Override
     public List<ApplicationInfo> getInstalledApplications(int flags) {
         try {
-            return mPM.getInstalledApplications(flags);
+            final List<ApplicationInfo> applicationInfos = new ArrayList<ApplicationInfo>();
+            ApplicationInfo lastItem = null;
+            ParceledListSlice<ApplicationInfo> slice;
+
+            do {
+                final String lastKey = lastItem != null ? lastItem.packageName : null;
+                slice = mPM.getInstalledApplications(flags, lastKey);
+                lastItem = slice.populateList(applicationInfos, ApplicationInfo.CREATOR);
+            } while (!slice.isLastSlice());
+
+            return applicationInfos;
         } catch (RemoteException e) {
             throw new RuntimeException("Package manager has died", e);
         }