Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d5896630 authored by Jeff Sharkey's avatar Jeff Sharkey
Browse files

Move more PM calls to ParceledListSlice.

Since the data returned by these calls can grow unbounded based on
various GET flags, we need to switch 'em over.

Bug: 27391893
Change-Id: Ie849ca30dbaaa91158da4c83675657715629a0ee
parent effcd935
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -577,7 +577,7 @@ public class Am extends BaseCommand {
                        return;
                    }
                    List<ResolveInfo> activities = pm.queryIntentActivities(intent, mimeType, 0,
                            mUserId);
                            mUserId).getList();
                    if (activities == null || activities.size() <= 0) {
                        System.err.println("Error: Intent does not match any activities: "
                                + intent);
+3 −3
Original line number Diff line number Diff line
@@ -193,7 +193,7 @@ public final class ActivityThread {

    private ContextImpl mSystemContext;

    static IPackageManager sPackageManager;
    static volatile IPackageManager sPackageManager;

    final ApplicationThread mAppThread = new ApplicationThread();
    final Looper mLooper = Looper.myLooper();
@@ -218,7 +218,7 @@ public final class ActivityThread {
    // set of instantiated backup agents, keyed by package name
    final ArrayMap<String, BackupAgent> mBackupAgents = new ArrayMap<String, BackupAgent>();
    /** Reference to singleton {@link ActivityThread} */
    private static ActivityThread sCurrentActivityThread;
    private static volatile ActivityThread sCurrentActivityThread;
    Instrumentation mInstrumentation;
    String mInstrumentationPackageName = null;
    String mInstrumentationAppDir = null;
@@ -296,7 +296,7 @@ public final class ActivityThread {
    final GcIdler mGcIdler = new GcIdler();
    boolean mGcIdlerScheduled = false;

    static Handler sMainThreadHandler;  // set once in main()
    static volatile Handler sMainThreadHandler;  // set once in main()

    Bundle mCoreSettings = null;

+25 −28
Original line number Diff line number Diff line
@@ -275,7 +275,7 @@ public class ApplicationPackageManager extends PackageManager {
    public List<PermissionInfo> queryPermissionsByGroup(String group, int flags)
            throws NameNotFoundException {
        try {
            List<PermissionInfo> pi = mPM.queryPermissionsByGroup(group, flags);
            List<PermissionInfo> pi = mPM.queryPermissionsByGroup(group, flags).getList();
            if (pi != null) {
                return pi;
            }
@@ -304,7 +304,7 @@ public class ApplicationPackageManager extends PackageManager {
    @Override
    public List<PermissionGroupInfo> getAllPermissionGroups(int flags) {
        try {
            return mPM.getAllPermissionGroups(flags);
            return mPM.getAllPermissionGroups(flags).getList();
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
@@ -441,7 +441,12 @@ public class ApplicationPackageManager extends PackageManager {
    @Override
    public FeatureInfo[] getSystemAvailableFeatures() {
        try {
            return mPM.getSystemAvailableFeatures();
            final List<FeatureInfo> list = mPM.getSystemAvailableFeatures().getList();
            final FeatureInfo[] res = new FeatureInfo[list.size()];
            for (int i = 0; i < res.length; i++) {
                res[i] = list.get(i);
            }
            return res;
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
@@ -772,7 +777,7 @@ public class ApplicationPackageManager extends PackageManager {
                intent,
                intent.resolveTypeIfNeeded(mContext.getContentResolver()),
                flags,
                userId);
                userId).getList();
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
@@ -802,9 +807,10 @@ public class ApplicationPackageManager extends PackageManager {
        }

        try {
            return mPM.queryIntentActivityOptions(caller, specifics,
                                                  specificTypes, intent, intent.resolveTypeIfNeeded(resolver),
                                                  flags, mContext.getUserId());
            return mPM
                    .queryIntentActivityOptions(caller, specifics, specificTypes, intent,
                            intent.resolveTypeIfNeeded(resolver), flags, mContext.getUserId())
                    .getList();
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
@@ -820,7 +826,7 @@ public class ApplicationPackageManager extends PackageManager {
                intent,
                intent.resolveTypeIfNeeded(mContext.getContentResolver()),
                flags,
                userId);
                userId).getList();
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
@@ -851,7 +857,7 @@ public class ApplicationPackageManager extends PackageManager {
                intent,
                intent.resolveTypeIfNeeded(mContext.getContentResolver()),
                flags,
                userId);
                userId).getList();
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
@@ -867,7 +873,8 @@ public class ApplicationPackageManager extends PackageManager {
            Intent intent, int flags, int userId) {
        try {
            return mPM.queryIntentContentProviders(intent,
                    intent.resolveTypeIfNeeded(mContext.getContentResolver()), flags, userId);
                    intent.resolveTypeIfNeeded(mContext.getContentResolver()), flags, userId)
                    .getList();
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
@@ -926,7 +933,7 @@ public class ApplicationPackageManager extends PackageManager {
    public List<InstrumentationInfo> queryInstrumentation(
        String targetPackage, int flags) {
        try {
            return mPM.queryInstrumentation(targetPackage, flags);
            return mPM.queryInstrumentation(targetPackage, flags).getList();
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
@@ -1572,7 +1579,7 @@ public class ApplicationPackageManager extends PackageManager {
    @Override
    public List<IntentFilterVerificationInfo> getIntentFilterVerifications(String packageName) {
        try {
            return mPM.getIntentFilterVerifications(packageName);
            return mPM.getIntentFilterVerifications(packageName).getList();
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
@@ -1581,7 +1588,7 @@ public class ApplicationPackageManager extends PackageManager {
    @Override
    public List<IntentFilter> getAllIntentFilters(String packageName) {
        try {
            return mPM.getAllIntentFilters(packageName);
            return mPM.getAllIntentFilters(packageName).getList();
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
@@ -1892,31 +1899,21 @@ public class ApplicationPackageManager extends PackageManager {
            throw e.rethrowFromSystemServer();
        }
    }

    @Override
    public void addPackageToPreferred(String packageName) {
        try {
            mPM.addPackageToPreferred(packageName);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
        Log.w(TAG, "addPackageToPreferred() is a no-op");
    }

    @Override
    public void removePackageFromPreferred(String packageName) {
        try {
            mPM.removePackageFromPreferred(packageName);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
        Log.w(TAG, "removePackageFromPreferred() is a no-op");
    }

    @Override
    public List<PackageInfo> getPreferredPackages(int flags) {
        try {
            return mPM.getPreferredPackages(flags);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
        Log.w(TAG, "getPreferredPackages() is a no-op");
        return Collections.emptyList();
    }

    @Override
+6 −7
Original line number Diff line number Diff line
@@ -171,7 +171,7 @@ public class AppsQueryHelper {
            return mPackageManager.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES
                    | PackageManager.GET_DISABLED_COMPONENTS, userId).getList();
        } catch (RemoteException e) {
            throw new IllegalStateException("Package manager has died", e);
            throw e.rethrowFromSystemServer();
        }
    }

@@ -181,9 +181,9 @@ public class AppsQueryHelper {
            return mPackageManager.queryIntentActivities(intent, null,
                    PackageManager.GET_DISABLED_COMPONENTS
                            | PackageManager.GET_UNINSTALLED_PACKAGES,
                    userId);
                    userId).getList();
        } catch (RemoteException e) {
            throw new IllegalStateException("Package manager has died", e);
            throw e.rethrowFromSystemServer();
        }
    }

@@ -192,9 +192,9 @@ public class AppsQueryHelper {
        try {
            return mPackageManager.queryIntentServices(intent, null,
                    PackageManager.GET_META_DATA
                            | PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS, userId);
                            | PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS, userId).getList();
        } catch (RemoteException e) {
            throw new IllegalStateException("Package manager has died", e);
            throw e.rethrowFromSystemServer();
        }
    }

@@ -205,8 +205,7 @@ public class AppsQueryHelper {
            return mPackageManager.getPackagesHoldingPermissions(new String[]{perm}, 0,
                    userId).getList();
        } catch (RemoteException e) {
            throw new IllegalStateException("Package manager has died", e);
            throw e.rethrowFromSystemServer();
        }
    }

}
+12 −18
Original line number Diff line number Diff line
@@ -71,11 +71,11 @@ interface IPackageManager {

    PermissionInfo getPermissionInfo(String name, int flags);

    List<PermissionInfo> queryPermissionsByGroup(String group, int flags);
    ParceledListSlice queryPermissionsByGroup(String group, int flags);

    PermissionGroupInfo getPermissionGroupInfo(String name, int flags);

    List<PermissionGroupInfo> getAllPermissionGroups(int flags);
    ParceledListSlice getAllPermissionGroups(int flags);

    ApplicationInfo getApplicationInfo(String packageName, int flags ,int userId);

@@ -138,24 +138,24 @@ interface IPackageManager {

    boolean canForwardTo(in Intent intent, String resolvedType, int sourceUserId, int targetUserId);

    List<ResolveInfo> queryIntentActivities(in Intent intent,
    ParceledListSlice queryIntentActivities(in Intent intent,
            String resolvedType, int flags, int userId);

    List<ResolveInfo> queryIntentActivityOptions(
    ParceledListSlice queryIntentActivityOptions(
            in ComponentName caller, in Intent[] specifics,
            in String[] specificTypes, in Intent intent,
            String resolvedType, int flags, int userId);

    List<ResolveInfo> queryIntentReceivers(in Intent intent,
    ParceledListSlice queryIntentReceivers(in Intent intent,
            String resolvedType, int flags, int userId);

    ResolveInfo resolveService(in Intent intent,
            String resolvedType, int flags, int userId);

    List<ResolveInfo> queryIntentServices(in Intent intent,
    ParceledListSlice queryIntentServices(in Intent intent,
            String resolvedType, int flags, int userId);

    List<ResolveInfo> queryIntentContentProviders(in Intent intent,
    ParceledListSlice queryIntentContentProviders(in Intent intent,
            String resolvedType, int flags, int userId);

    /**
@@ -189,7 +189,7 @@ interface IPackageManager {
     * @return A List&lt;applicationInfo> containing one entry for each persistent
     *         application.
     */
    List<ApplicationInfo> getPersistentApplications(int flags);
    ParceledListSlice getPersistentApplications(int flags);

    ProviderInfo resolveContentProvider(String name, int flags, int userId);

@@ -210,7 +210,7 @@ interface IPackageManager {
    InstrumentationInfo getInstrumentationInfo(
            in ComponentName className, int flags);

    List<InstrumentationInfo> queryInstrumentation(
    ParceledListSlice queryInstrumentation(
            String targetPackage, int flags);

    /** @deprecated Use PackageInstaller instead */
@@ -240,12 +240,6 @@ interface IPackageManager {

    String getInstallerPackageName(in String packageName);

    void addPackageToPreferred(String packageName);

    void removePackageFromPreferred(String packageName);

    List<PackageInfo> getPreferredPackages(int flags);

    void resetApplicationPreferences(int userId);

    ResolveInfo getLastChosenActivity(in Intent intent,
@@ -406,7 +400,7 @@ interface IPackageManager {
     * Get a list of features that are available on the
     * system.
     */
    FeatureInfo[] getSystemAvailableFeatures();
    ParceledListSlice getSystemAvailableFeatures();

    boolean hasSystemFeature(String name, int version);

@@ -480,8 +474,8 @@ interface IPackageManager {
    void verifyIntentFilter(int id, int verificationCode, in List<String> failedDomains);
    int getIntentVerificationStatus(String packageName, int userId);
    boolean updateIntentVerificationStatus(String packageName, int status, int userId);
    List<IntentFilterVerificationInfo> getIntentFilterVerifications(String packageName);
    List<IntentFilter> getAllIntentFilters(String packageName);
    ParceledListSlice getIntentFilterVerifications(String packageName);
    ParceledListSlice getAllIntentFilters(String packageName);

    boolean setDefaultBrowserPackageName(String packageName, int userId);
    String getDefaultBrowserPackageName(int userId);
Loading