Loading core/java/android/content/pm/PackageManagerInternal.java +8 −0 Original line number Diff line number Diff line Loading @@ -160,6 +160,14 @@ public abstract class PackageManagerInternal { * @return whether the default browser was successfully set. */ boolean setDefaultBrowser(@Nullable String packageName, @UserIdInt int userId); /** * Set the package name of the default browser asynchronously. * * @param packageName package name of the default browser, or {@code null} to remove * @param userId the user id */ void setDefaultBrowserAsync(@Nullable String packageName, @UserIdInt int userId); } /** Loading services/core/java/com/android/server/pm/PackageManagerService.java +18 −1 Original line number Diff line number Diff line Loading @@ -1935,7 +1935,7 @@ public class PackageManagerService extends IPackageManager.Stub final PackageSetting pkgSetting = mSettings.mPackages.get(packageName); if (pkgSetting.getInstallReason(userId) != PackageManager.INSTALL_REASON_DEVICE_RESTORE) { setDefaultBrowserPackageName(null, userId); setDefaultBrowserAsyncLPw(null, userId); } } Loading Loading @@ -13687,6 +13687,23 @@ public class PackageManagerService extends IPackageManager.Stub return true; } private void setDefaultBrowserAsyncLPw(@Nullable String packageName, @UserIdInt int userId) { if (userId == UserHandle.USER_ALL) { return; } if (mDefaultBrowserProvider == null) { Slog.e(TAG, "mDefaultBrowserProvider is null"); return; } mDefaultBrowserProvider.setDefaultBrowserAsync(packageName, userId); if (packageName != null) { synchronized (mPackages) { mDefaultPermissionPolicy.grantDefaultPermissionsToDefaultBrowser(packageName, userId); } } } @Override public String getDefaultBrowserPackageName(int userId) { if (UserHandle.getCallingUserId() != userId) { services/core/java/com/android/server/role/RoleManagerService.java +19 −0 Original line number Diff line number Diff line Loading @@ -743,6 +743,25 @@ public class RoleManagerService extends SystemService implements RoleUserState.C return false; } } @Override public void setDefaultBrowserAsync(@Nullable String packageName, @UserIdInt int userId) { IRoleManagerCallback callback = new IRoleManagerCallback.Stub() { @Override public void onSuccess() {} @Override public void onFailure() { Slog.e(LOG_TAG, "Failed to set default browser: " + packageName); } }; if (packageName != null) { getOrCreateControllerService(userId).onAddRoleHolder(RoleManager.ROLE_BROWSER, packageName, 0, callback); } else { getOrCreateControllerService(userId).onClearRoleHolders(RoleManager.ROLE_BROWSER, 0, callback); } } } private class DefaultHomeProvider implements PackageManagerInternal.DefaultHomeProvider { Loading Loading
core/java/android/content/pm/PackageManagerInternal.java +8 −0 Original line number Diff line number Diff line Loading @@ -160,6 +160,14 @@ public abstract class PackageManagerInternal { * @return whether the default browser was successfully set. */ boolean setDefaultBrowser(@Nullable String packageName, @UserIdInt int userId); /** * Set the package name of the default browser asynchronously. * * @param packageName package name of the default browser, or {@code null} to remove * @param userId the user id */ void setDefaultBrowserAsync(@Nullable String packageName, @UserIdInt int userId); } /** Loading
services/core/java/com/android/server/pm/PackageManagerService.java +18 −1 Original line number Diff line number Diff line Loading @@ -1935,7 +1935,7 @@ public class PackageManagerService extends IPackageManager.Stub final PackageSetting pkgSetting = mSettings.mPackages.get(packageName); if (pkgSetting.getInstallReason(userId) != PackageManager.INSTALL_REASON_DEVICE_RESTORE) { setDefaultBrowserPackageName(null, userId); setDefaultBrowserAsyncLPw(null, userId); } } Loading Loading @@ -13687,6 +13687,23 @@ public class PackageManagerService extends IPackageManager.Stub return true; } private void setDefaultBrowserAsyncLPw(@Nullable String packageName, @UserIdInt int userId) { if (userId == UserHandle.USER_ALL) { return; } if (mDefaultBrowserProvider == null) { Slog.e(TAG, "mDefaultBrowserProvider is null"); return; } mDefaultBrowserProvider.setDefaultBrowserAsync(packageName, userId); if (packageName != null) { synchronized (mPackages) { mDefaultPermissionPolicy.grantDefaultPermissionsToDefaultBrowser(packageName, userId); } } } @Override public String getDefaultBrowserPackageName(int userId) { if (UserHandle.getCallingUserId() != userId) {
services/core/java/com/android/server/role/RoleManagerService.java +19 −0 Original line number Diff line number Diff line Loading @@ -743,6 +743,25 @@ public class RoleManagerService extends SystemService implements RoleUserState.C return false; } } @Override public void setDefaultBrowserAsync(@Nullable String packageName, @UserIdInt int userId) { IRoleManagerCallback callback = new IRoleManagerCallback.Stub() { @Override public void onSuccess() {} @Override public void onFailure() { Slog.e(LOG_TAG, "Failed to set default browser: " + packageName); } }; if (packageName != null) { getOrCreateControllerService(userId).onAddRoleHolder(RoleManager.ROLE_BROWSER, packageName, 0, callback); } else { getOrCreateControllerService(userId).onClearRoleHolders(RoleManager.ROLE_BROWSER, 0, callback); } } } private class DefaultHomeProvider implements PackageManagerInternal.DefaultHomeProvider { Loading