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

Commit 1ab2a467 authored by Nikita Ioffe's avatar Nikita Ioffe Committed by android-build-merger
Browse files

Merge "PackageManagerNative: Implement getModuleMetadataPackageName" into...

Merge "PackageManagerNative: Implement getModuleMetadataPackageName" into qt-dev am: abb0b027 am: b70410a1
am: d5376305

Change-Id: I0b714cea1d3c5445279e827bc2e7f3c8bbc3ba66
parents 3dcafb9a d5376305
Loading
Loading
Loading
Loading
+13 −5
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@ public class ModuleInfoProvider {

    // TODO: Move this to an earlier boot phase if anybody requires it then.
    private volatile boolean mMetadataLoaded;
    private volatile String mPackageName;

    ModuleInfoProvider(Context context, IPackageManager packageManager) {
        mContext = context;
@@ -81,9 +82,9 @@ public class ModuleInfoProvider {

    /** Called by the {@code PackageManager} when it has completed its boot sequence */
    public void systemReady() {
        final String packageName = mContext.getResources().getString(
        mPackageName = mContext.getResources().getString(
                R.string.config_defaultModuleMetadataProvider);
        if (TextUtils.isEmpty(packageName)) {
        if (TextUtils.isEmpty(mPackageName)) {
            Slog.w(TAG, "No configured module metadata provider.");
            return;
        }
@@ -91,13 +92,13 @@ public class ModuleInfoProvider {
        final Resources packageResources;
        final PackageInfo pi;
        try {
            pi = mPackageManager.getPackageInfo(packageName,
            pi = mPackageManager.getPackageInfo(mPackageName,
                PackageManager.GET_META_DATA, UserHandle.USER_SYSTEM);

            Context packageContext = mContext.createPackageContext(packageName, 0);
            Context packageContext = mContext.createPackageContext(mPackageName, 0);
            packageResources = packageContext.getResources();
        } catch (RemoteException | NameNotFoundException e) {
            Slog.w(TAG, "Unable to discover metadata package: " + packageName, e);
            Slog.w(TAG, "Unable to discover metadata package: " + mPackageName, e);
            return;
        }

@@ -201,4 +202,11 @@ public class ModuleInfoProvider {

        return mModuleInfo.get(packageName);
    }

    String getPackageName() {
        if (!mMetadataLoaded) {
            throw new IllegalStateException("Call to getVersion before metadata loaded");
        }
        return mPackageName;
    }
}
+5 −0
Original line number Diff line number Diff line
@@ -24079,6 +24079,11 @@ public class PackageManagerService extends IPackageManager.Stub
                    | (appInfo.isVendor() ? IPackageManagerNative.LOCATION_VENDOR : 0)
                    | (appInfo.isProduct() ? IPackageManagerNative.LOCATION_PRODUCT : 0));
        }
        @Override
        public String getModuleMetadataPackageName() throws RemoteException {
            return PackageManagerService.this.mModuleInfoProvider.getPackageName();
        }
    }
    private class PackageManagerInternalImpl extends PackageManagerInternal {