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

Commit 446e9b4e authored by Hai Zhang's avatar Hai Zhang Committed by android-build-merger
Browse files

Merge "Remove default app permission granting from...

Merge "Remove default app permission granting from DefaultPermissionGrantPolicy." into qt-dev am: 8e1c4a09
am: fcc7e14d

Change-Id: Id0c53cf209fc51bbc104245adc777e5f3992b2c5
parents d5570d0c fcc7e14d
Loading
Loading
Loading
Loading
+23 −8
Original line number Diff line number Diff line
@@ -173,6 +173,22 @@ public abstract class PackageManagerInternal {
        void setDefaultBrowserAsync(@Nullable String packageName, @UserIdInt int userId);
    }

    /**
     * Provider for default dialer
     */
    public interface DefaultDialerProvider {

        /**
         * Get the package name of the default dialer.
         *
         * @param userId the user id
         *
         * @return the package name of the default dialer, or {@code null} if none
         */
        @Nullable
        String getDefaultDialer(@UserIdInt int userId);
    }

    /**
     * Provider for default home
     */
@@ -229,14 +245,6 @@ public abstract class PackageManagerInternal {
     */
    public abstract void setSyncAdapterPackagesprovider(SyncAdapterPackagesProvider provider);

    /**
     * Called when the package for the default dialer changed
     *
     * @param packageName the new dialer package
     * @param userId user for which the change was made
     */
    public void onDefaultDialerAppChanged(String packageName, int userId) {}

    /**
     * Called when the package for the default SMS handler changed
     *
@@ -931,6 +939,13 @@ public abstract class PackageManagerInternal {
     */
    public abstract void setDefaultBrowserProvider(@NonNull DefaultBrowserProvider provider);

    /**
     * Sets the default dialer provider.
     *
     * @param provider the provider
     */
    public abstract void setDefaultDialerProvider(@NonNull DefaultDialerProvider provider);

    /**
     * Sets the default home provider.
     *
+19 −9
Original line number Diff line number Diff line
@@ -1008,6 +1008,9 @@ public class PackageManagerService extends IPackageManager.Stub
    @GuardedBy("mPackages")
    private PackageManagerInternal.DefaultBrowserProvider mDefaultBrowserProvider;
    @GuardedBy("mPackages")
    private PackageManagerInternal.DefaultDialerProvider mDefaultDialerProvider;
    @GuardedBy("mPackages")
    private PackageManagerInternal.DefaultHomeProvider mDefaultHomeProvider;
@@ -13982,10 +13985,17 @@ public class PackageManagerService extends IPackageManager.Stub
        return resolveInfo == null ? null : resolveInfo.activityInfo.packageName;
    }
    private String getDefaultDialerPackageName(int userId) {
    @Nullable
    private String getDefaultDialerPackageName(@UserIdInt int userId) {
        PackageManagerInternal.DefaultDialerProvider provider;
        synchronized (mPackages) {
            return mSettings.getDefaultDialerPackageNameLPw(userId);
            provider = mDefaultDialerProvider;
        }
        if (provider == null) {
            Slog.e(TAG, "mDefaultDialerProvider is null");
            return null;
        }
        return provider.getDefaultDialer(userId);
    }
    @Override
@@ -24215,13 +24225,6 @@ public class PackageManagerService extends IPackageManager.Stub
            mDefaultPermissionPolicy.setSyncAdapterPackagesProvider(provider);
        }
        @Override
        public void onDefaultDialerAppChanged(String packageName, int userId) {
            synchronized (mPackages) {
                mSettings.setDefaultDialerPackageNameLPw(packageName, userId);
            }
        }
        @Override
        public void grantDefaultPermissionsToDefaultUseOpenWifiApp(String packageName, int userId) {
            mDefaultPermissionPolicy.grantDefaultPermissionsToDefaultUseOpenWifiApp(
@@ -24767,6 +24770,13 @@ public class PackageManagerService extends IPackageManager.Stub
            }
        }
        @Override
        public void setDefaultDialerProvider(@NonNull DefaultDialerProvider provider) {
            synchronized (mPackages) {
                mDefaultDialerProvider = provider;
            }
        }
        @Override
        public void setDefaultHomeProvider(@NonNull DefaultHomeProvider provider) {
            synchronized (mPackages) {
+1 −24
Original line number Diff line number Diff line
@@ -362,9 +362,6 @@ public final class Settings {
    // For every user, it is used to find the package name of the default Browser App.
    final SparseArray<String> mDefaultBrowserApp = new SparseArray<String>();

    // For every user, a record of the package name of the default Dialer App.
    final SparseArray<String> mDefaultDialerApp = new SparseArray<String>();

    // App-link priority tracking, per-user
    final SparseIntArray mNextAppLinkGeneration = new SparseIntArray();

@@ -1270,19 +1267,6 @@ public final class Settings {
        return (userId == UserHandle.USER_ALL) ? null : mDefaultBrowserApp.removeReturnOld(userId);
    }

    boolean setDefaultDialerPackageNameLPw(String packageName, int userId) {
        if (userId == UserHandle.USER_ALL) {
            return false;
        }
        mDefaultDialerApp.put(userId, packageName);
        writePackageRestrictionsLPr(userId);
        return true;
    }

    String getDefaultDialerPackageNameLPw(int userId) {
        return (userId == UserHandle.USER_ALL) ? null : mDefaultDialerApp.get(userId);
    }

    private File getUserPackagesStateFile(int userId) {
        // TODO: Implement a cleaner solution when adding tests.
        // This instead of Environment.getUserSystemDirectory(userId) to support testing.
@@ -1482,8 +1466,7 @@ public final class Settings {
                String packageName = parser.getAttributeValue(null, ATTR_PACKAGE_NAME);
                mDefaultBrowserApp.put(userId, packageName);
            } else if (tagName.equals(TAG_DEFAULT_DIALER)) {
                String packageName = parser.getAttributeValue(null, ATTR_PACKAGE_NAME);
                mDefaultDialerApp.put(userId, packageName);
                // Ignored.
            } else {
                String msg = "Unknown element under " +  TAG_DEFAULT_APPS + ": " +
                        parser.getName();
@@ -1938,12 +1921,6 @@ public final class Settings {
            serializer.attribute(null, ATTR_PACKAGE_NAME, defaultBrowser);
            serializer.endTag(null, TAG_DEFAULT_BROWSER);
        }
        String defaultDialer = mDefaultDialerApp.get(userId);
        if (!TextUtils.isEmpty(defaultDialer)) {
            serializer.startTag(null, TAG_DEFAULT_DIALER);
            serializer.attribute(null, ATTR_PACKAGE_NAME, defaultDialer);
            serializer.endTag(null, TAG_DEFAULT_DIALER);
        }
        serializer.endTag(null, TAG_DEFAULT_APPS);
    }

+0 −15
Original line number Diff line number Diff line
@@ -849,21 +849,6 @@ public final class DefaultPermissionGrantPolicy {
        grantPermissionsToSystemPackage(useOpenWifiPackage, userId, ALWAYS_LOCATION_PERMISSIONS);
    }

    public void grantDefaultPermissionsToDefaultSmsApp(String packageName, int userId) {
        Log.i(TAG, "Granting permissions to default sms app for user:" + userId);
        grantIgnoringSystemPackage(packageName, userId,
                PHONE_PERMISSIONS, CONTACTS_PERMISSIONS, SMS_PERMISSIONS, STORAGE_PERMISSIONS,
                MICROPHONE_PERMISSIONS, CAMERA_PERMISSIONS);
    }

    public void grantDefaultPermissionsToDefaultDialerApp(String packageName, int userId) {
        mServiceInternal.onDefaultDialerAppChanged(packageName, userId);
        Log.i(TAG, "Granting permissions to default dialer app for user:" + userId);
        grantIgnoringSystemPackage(packageName, userId,
                PHONE_PERMISSIONS, CONTACTS_PERMISSIONS, SMS_PERMISSIONS,
                MICROPHONE_PERMISSIONS, CAMERA_PERMISSIONS);
    }

    public void grantDefaultPermissionsToDefaultUseOpenWifiApp(String packageName, int userId) {
        Log.i(TAG, "Granting permissions to default Use Open WiFi app for user:" + userId);
        grantIgnoringSystemPackage(packageName, userId, ALWAYS_LOCATION_PERMISSIONS);
+11 −0
Original line number Diff line number Diff line
@@ -156,6 +156,7 @@ public class RoleManagerService extends SystemService implements RoleUserState.C
        PackageManagerInternal packageManagerInternal = LocalServices.getService(
                PackageManagerInternal.class);
        packageManagerInternal.setDefaultBrowserProvider(new DefaultBrowserProvider());
        packageManagerInternal.setDefaultDialerProvider(new DefaultDialerProvider());
        packageManagerInternal.setDefaultHomeProvider(new DefaultHomeProvider());

        registerUserRemovedReceiver();
@@ -772,6 +773,16 @@ public class RoleManagerService extends SystemService implements RoleUserState.C
        }
    }

    private class DefaultDialerProvider implements PackageManagerInternal.DefaultDialerProvider {

        @Nullable
        @Override
        public String getDefaultDialer(@UserIdInt int userId) {
            return CollectionUtils.firstOrNull(getOrCreateUserState(userId).getRoleHolders(
                    RoleManager.ROLE_DIALER));
        }
    }

    private class DefaultHomeProvider implements PackageManagerInternal.DefaultHomeProvider {

        @Nullable
Loading