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

Commit 5eb148ba authored by Yohei Yukawa's avatar Yohei Yukawa Committed by Android (Google) Code Review
Browse files

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

parents cff479e2 726c4597
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) {