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

Commit 46012e0f authored by Yohei Yukawa's avatar Yohei Yukawa Committed by android-build-merger
Browse files

Merge "Stop granting default Contacts permission to IMEs." into nyc-dev

am: 5eb148ba

* commit '5eb148ba':
  Stop granting default Contacts permission to IMEs.
parents 9ed8767d 5eb148ba
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -58,12 +58,6 @@ public abstract class PackageManagerInternal {
     */
    public abstract void setLocationPackagesProvider(PackagesProvider provider);

    /**
     * Sets the input method packages provider.
     * @param provider The packages provider.
     */
    public abstract void setImePackagesProvider(PackagesProvider provider);

    /**
     * Sets the voice interaction packages provider.
     * @param provider The packages provider.
+0 −34
Original line number Diff line number Diff line
@@ -61,7 +61,6 @@ import android.content.ServiceConnection;
import android.content.pm.ApplicationInfo;
import android.content.pm.IPackageManager;
import android.content.pm.PackageManager;
import android.content.pm.PackageManagerInternal;
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
import android.content.pm.UserInfo;
@@ -859,39 +858,6 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
        mSettings = new InputMethodSettings(
                mRes, context.getContentResolver(), mMethodMap, mMethodList, userId, !mSystemReady);

        // Let the package manager query which are the default imes
        // as they get certain permissions granted by default.
        PackageManagerInternal packageManagerInternal = LocalServices.getService(
                PackageManagerInternal.class);
        packageManagerInternal.setImePackagesProvider(
                new PackageManagerInternal.PackagesProvider() {
                    @Override
                    public String[] getPackages(int userId) {
                        synchronized (mMethodMap) {
                            final int currentUserId = mSettings.getCurrentUserId();
                            // TODO: We are switching the current user id in the settings
                            // object to query it and then revert the user id. Ideally, we
                            // should call a API in settings with the user id as an argument.
                            mSettings.switchCurrentUser(userId, true /* copyOnWrite */);
                            List<InputMethodInfo> imes = mSettings
                                    .getEnabledInputMethodListLocked();
                            String[] packageNames = null;
                            if (imes != null) {
                                final int imeCount = imes.size();
                                packageNames = new String[imeCount];
                                for (int i = 0; i < imeCount; i++) {
                                    InputMethodInfo ime = imes.get(i);
                                    packageNames[i] = ime.getPackageName();
                                }
                            }
                            // If the system is not ready, then we use copy-on-write mode.
                            final boolean useCopyOnWriteSettings = !mSystemReady;
                            mSettings.switchCurrentUser(currentUserId, useCopyOnWriteSettings);
                            return packageNames;
                        }
                    }
                });

        updateCurrentProfileIds();
        mFileManager = new InputMethodFileManager(mMethodMap, userId);
        synchronized (mMethodMap) {
+0 −20
Original line number Diff line number Diff line
@@ -124,7 +124,6 @@ final class DefaultPermissionGrantPolicy {

    private final PackageManagerService mService;

    private PackagesProvider mImePackagesProvider;
    private PackagesProvider mLocationPackagesProvider;
    private PackagesProvider mVoiceInteractionPackagesProvider;
    private PackagesProvider mSmsAppPackagesProvider;
@@ -136,10 +135,6 @@ final class DefaultPermissionGrantPolicy {
        mService = service;
    }

    public void setImePackagesProviderLPr(PackagesProvider provider) {
        mImePackagesProvider = provider;
    }

    public void setLocationPackagesProviderLPw(PackagesProvider provider) {
        mLocationPackagesProvider = provider;
    }
@@ -198,7 +193,6 @@ final class DefaultPermissionGrantPolicy {
    private void grantDefaultSystemHandlerPermissions(int userId) {
        Log.i(TAG, "Granting permissions to default platform handlers for user " + userId);

        final PackagesProvider imePackagesProvider;
        final PackagesProvider locationPackagesProvider;
        final PackagesProvider voiceInteractionPackagesProvider;
        final PackagesProvider smsAppPackagesProvider;
@@ -207,7 +201,6 @@ final class DefaultPermissionGrantPolicy {
        final SyncAdapterPackagesProvider syncAdapterPackagesProvider;

        synchronized (mService.mPackages) {
            imePackagesProvider = mImePackagesProvider;
            locationPackagesProvider = mLocationPackagesProvider;
            voiceInteractionPackagesProvider = mVoiceInteractionPackagesProvider;
            smsAppPackagesProvider = mSmsAppPackagesProvider;
@@ -216,8 +209,6 @@ final class DefaultPermissionGrantPolicy {
            syncAdapterPackagesProvider = mSyncAdapterPackagesProvider;
        }

        String[] imePackageNames = (imePackagesProvider != null)
                ? imePackagesProvider.getPackages(userId) : null;
        String[] voiceInteractPackageNames = (voiceInteractionPackagesProvider != null)
                ? voiceInteractionPackagesProvider.getPackages(userId) : null;
        String[] locationPackageNames = (locationPackagesProvider != null)
@@ -500,17 +491,6 @@ final class DefaultPermissionGrantPolicy {
                grantRuntimePermissionsLPw(browserPackage, LOCATION_PERMISSIONS, userId);
            }

            // IME
            if (imePackageNames != null) {
                for (String imePackageName : imePackageNames) {
                    PackageParser.Package imePackage = getSystemPackageLPr(imePackageName);
                    if (imePackage != null
                            && doesPackageSupportRuntimePermissions(imePackage)) {
                        grantRuntimePermissionsLPw(imePackage, CONTACTS_PERMISSIONS, userId);
                    }
                }
            }

            // Voice interaction
            if (voiceInteractPackageNames != null) {
                for (String voiceInteractPackageName : voiceInteractPackageNames) {
+0 −7
Original line number Diff line number Diff line
@@ -18882,13 +18882,6 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName());
            }
        }
        @Override
        public void setImePackagesProvider(PackagesProvider provider) {
            synchronized (mPackages) {
                mDefaultPermissionPolicy.setImePackagesProviderLPr(provider);
            }
        }
        @Override
        public void setVoiceInteractionPackagesProvider(PackagesProvider provider) {
            synchronized (mPackages) {