Make RoleManager inject DefaultBrowserProvider into PackageManager.

This way PackageManager does not depend on RoleManager any more. Also
did some refactoring on RoleManagerService.

Bug: 123775970
Test: manual
Change-Id: I56c50d410ef212c960ffaa6212655b2f42870878
diff --git a/services/core/java/com/android/server/role/RoleUserState.java b/services/core/java/com/android/server/role/RoleUserState.java
index 5030e34..c7e3fa4 100644
--- a/services/core/java/com/android/server/role/RoleUserState.java
+++ b/services/core/java/com/android/server/role/RoleUserState.java
@@ -576,13 +576,14 @@
      * @return A copy of the roles and their holders
      */
     @NonNull
-    public ArrayMap<String, ArraySet<String>> getRoleHolders() {
+    public ArrayMap<String, ArraySet<String>> getRolesAndHolders() {
         synchronized (mLock) {
             return snapshotRolesLocked();
         }
     }
 
     @GuardedBy("mLock")
+    @NonNull
     private ArrayMap<String, ArraySet<String>> snapshotRolesLocked() {
         ArrayMap<String, ArraySet<String>> roles = new ArrayMap<>();
         for (int i = 0, size = CollectionUtils.size(mRoles); i < size; ++i) {
@@ -615,7 +616,8 @@
         }
     }
 
-    private static @NonNull File getFile(@UserIdInt int userId) {
+    @NonNull
+    private static File getFile(@UserIdInt int userId) {
         return new File(Environment.getUserSystemDirectory(userId), ROLES_FILE_NAME);
     }