Update getOwnersForDomain docs and enforce non-null

Forgot the docs update part of the feedback. Also enforces the param
non-nullablility.

Bug: 184891031

Test: atest DomainVerificationManagerApiTest

Change-Id: I4c90f69bc38c9760a76555ee8c8ad121cac997b6
This commit is contained in:
Winson
2021-04-14 12:27:45 -07:00
parent 219106593d
commit 76d81231f4
5 changed files with 33 additions and 4 deletions

View File

@@ -32,7 +32,9 @@ import android.os.UserHandle;
import com.android.internal.util.CollectionUtils;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
@@ -350,6 +352,8 @@ public final class DomainVerificationManager {
*
* The set will be ordered from lowest to highest priority.
*
* @param domain The host to query for. An invalid domain will result in an empty set.
*
* @hide
*/
@SystemApi
@@ -357,11 +361,11 @@ public final class DomainVerificationManager {
@RequiresPermission(android.Manifest.permission.UPDATE_DOMAIN_VERIFICATION_USER_SELECTION)
public SortedSet<DomainOwner> getOwnersForDomain(@NonNull String domain) {
try {
Objects.requireNonNull(domain);
final List<DomainOwner> orderedList = mDomainVerificationManager.getOwnersForDomain(
domain, mContext.getUserId());
SortedSet<DomainOwner> set = new TreeSet<>(
(first, second) -> Integer.compare(orderedList.indexOf(first),
orderedList.indexOf(second)));
Comparator.comparingInt(orderedList::indexOf));
set.addAll(orderedList);
return set;
} catch (RemoteException e) {

View File

@@ -29,6 +29,7 @@ import android.content.pm.verify.domain.IDomainVerificationManager;
import android.os.ServiceSpecificException;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
public class DomainVerificationManagerStub extends IDomainVerificationManager.Stub {
@@ -110,6 +111,7 @@ public class DomainVerificationManagerStub extends IDomainVerificationManager.St
public List<DomainOwner> getOwnersForDomain(@NonNull String domain,
@UserIdInt int userId) {
try {
Objects.requireNonNull(domain);
return mService.getOwnersForDomain(domain, userId);
} catch (Exception e) {
throw rethrow(e);

View File

@@ -742,6 +742,7 @@ public class DomainVerificationService extends SystemService
}
public List<DomainOwner> getOwnersForDomain(@NonNull String domain, @UserIdInt int userId) {
Objects.requireNonNull(domain);
mEnforcer.assertOwnerQuerent(mConnection.getCallingUid(), mConnection.getCallingUserId(),
userId);

View File

@@ -20,11 +20,14 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.UserIdInt;
import android.content.pm.PackageManager;
import android.content.pm.verify.domain.DomainOwner;
import android.content.pm.verify.domain.DomainVerificationManager;
import com.android.server.pm.verify.domain.DomainVerificationService;
import java.util.List;
import java.util.Set;
import java.util.SortedSet;
import java.util.UUID;
/**
@@ -58,4 +61,14 @@ class DomainVerificationJavaUtil {
throws PackageManager.NameNotFoundException {
return manager.setDomainVerificationUserSelection(domainSetId, domains, enabled);
}
static SortedSet<DomainOwner> getOwnersForDomain(@NonNull DomainVerificationManager manager,
@Nullable String domain) {
return manager.getOwnersForDomain(domain);
}
static List<DomainOwner> getOwnersForDomain(@NonNull DomainVerificationService service,
@Nullable String domain, @UserIdInt int userId) {
return service.getOwnersForDomain(domain, userId);
}
}

View File

@@ -292,8 +292,17 @@ class DomainVerificationManagerApiTest {
val manager0 = makeManager(service, 0)
val manager1 = makeManager(service, 1)
assertThat(service.getOwnersForDomain(DOMAIN_1, 0)).isEmpty()
assertThat(manager0.getOwnersForDomain(DOMAIN_1)).isEmpty()
listOf(DOMAIN_1, "").forEach {
assertThat(service.getOwnersForDomain(it, 0)).isEmpty()
assertThat(manager0.getOwnersForDomain(it)).isEmpty()
}
assertFailsWith(NullPointerException::class) {
DomainVerificationJavaUtil.getOwnersForDomain(service, null, 0)
}
assertFailsWith(NullPointerException::class) {
DomainVerificationJavaUtil.getOwnersForDomain(manager0, null)
}
assertThat(
service.setStatus(