Loading core/java/android/content/pm/PackageManagerInternal.java +23 −8 Original line number Diff line number Diff line Loading @@ -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 */ Loading Loading @@ -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 * Loading Loading @@ -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. * Loading services/core/java/com/android/server/pm/PackageManagerService.java +19 −9 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 Loading Loading @@ -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( Loading Loading @@ -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) { services/core/java/com/android/server/pm/Settings.java +1 −24 Original line number Diff line number Diff line Loading @@ -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(); Loading Loading @@ -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. Loading Loading @@ -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(); Loading Loading @@ -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); } Loading services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java +0 −15 Original line number Diff line number Diff line Loading @@ -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); Loading services/core/java/com/android/server/role/RoleManagerService.java +11 −0 Original line number Diff line number Diff line Loading @@ -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(); Loading Loading @@ -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 Loading
core/java/android/content/pm/PackageManagerInternal.java +23 −8 Original line number Diff line number Diff line Loading @@ -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 */ Loading Loading @@ -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 * Loading Loading @@ -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. * Loading
services/core/java/com/android/server/pm/PackageManagerService.java +19 −9 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 Loading Loading @@ -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( Loading Loading @@ -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) {
services/core/java/com/android/server/pm/Settings.java +1 −24 Original line number Diff line number Diff line Loading @@ -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(); Loading Loading @@ -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. Loading Loading @@ -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(); Loading Loading @@ -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); } Loading
services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java +0 −15 Original line number Diff line number Diff line Loading @@ -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); Loading
services/core/java/com/android/server/role/RoleManagerService.java +11 −0 Original line number Diff line number Diff line Loading @@ -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(); Loading Loading @@ -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