public static void refreshUsers(final Context context) {
		final List<UserHandle> owner_and_profiles = requireNonNull((UserManager) context.getSystemService(USER_SERVICE)).getUserProfiles();
		final List<UserHandle> profiles_managed_by_island = new ArrayList<>(owner_and_profiles.size() - 1);
		if (isOwner()) {
			final String ui_module = Modules.getMainLaunchActivity(context).getPackageName();
			final LauncherApps la = context.getSystemService(LauncherApps.class);
			final String activity_in_owner = la.getActivityList(ui_module, CURRENT).get(0).getName();
			for (final UserHandle user : owner_and_profiles) {
				if (isOwner(user)) owner = user;
				else for (final LauncherActivityInfo activity : la.getActivityList(ui_module, user))
					if (! activity.getName().equals(activity_in_owner)) {
						profiles_managed_by_island.add(user);
						Log.i(TAG, "Profile managed by Island: " + toId(user));
					} else Log.i(TAG, "Profile not managed by Island: " + toId(user));
			}
		} else for (final UserHandle user : owner_and_profiles) {
			if (isOwner(user)) owner = user;
			else if (user.equals(CURRENT)) {
				profiles_managed_by_island.add(user);
				Log.i(TAG, "Profile managed by Island: " + toId(user));
			} else Log.w(TAG, "Skip sibling profile (may not managed by Island): " + toId(user));
		}
		profile = profiles_managed_by_island.isEmpty() ? null : profiles_managed_by_island.get(0);
		sProfilesManagedByIsland = Collections.unmodifiableList(profiles_managed_by_island);
		try { sCurrentProfileManagedByIsland = new DevicePolicies(context).isProfileOwner(); }
		catch (final RuntimeException e) { Log.e(TAG, "Error checking current profile", e); }
	}
This method should not be called under normal circumstance.
shared/src/main/java/com/oasisfeng/island/util/Users.java