summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Vladimir Komsiyski <vladokom@google.com> 2025-03-06 09:47:12 -0800
committer Android (Google) Code Review <android-gerrit@google.com> 2025-03-06 09:47:12 -0800
commit64ad0119697d43b8ea7f58a7385825f827b1b2a9 (patch)
treeba2fb441419909165ecc2a085ad796dfc9c8b6b3
parent4b26d791f90b8036380c85622ed91205388d4015 (diff)
parentf3215ac71a0ad9a50d1bb56e1b3c5a6d522d4060 (diff)
Merge "Never skip the CDM dialog for VDM profiles" into main
-rw-r--r--services/companion/java/com/android/server/companion/association/AssociationRequestsProcessor.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/services/companion/java/com/android/server/companion/association/AssociationRequestsProcessor.java b/services/companion/java/com/android/server/companion/association/AssociationRequestsProcessor.java
index cd9285cdfe91..cbee8391458d 100644
--- a/services/companion/java/com/android/server/companion/association/AssociationRequestsProcessor.java
+++ b/services/companion/java/com/android/server/companion/association/AssociationRequestsProcessor.java
@@ -58,13 +58,16 @@ import android.os.Handler;
import android.os.RemoteException;
import android.os.ResultReceiver;
import android.os.UserHandle;
+import android.util.ArraySet;
import android.util.Slog;
import com.android.internal.R;
import com.android.server.companion.CompanionDeviceManagerService;
import com.android.server.companion.utils.PackageUtils;
+import java.util.Arrays;
import java.util.List;
+import java.util.Set;
/**
* Class responsible for handling incoming {@link AssociationRequest}s.
@@ -130,6 +133,12 @@ public class AssociationRequestsProcessor {
private static final int ASSOCIATE_WITHOUT_PROMPT_MAX_PER_TIME_WINDOW = 5;
private static final long ASSOCIATE_WITHOUT_PROMPT_WINDOW_MS = 60 * 60 * 1000; // 60 min;
+ // Set of profiles for which the association dialog cannot be skipped.
+ private static final Set<String> DEVICE_PROFILES_WITH_REQUIRED_CONFIRMATION = new ArraySet<>(
+ Arrays.asList(
+ AssociationRequest.DEVICE_PROFILE_APP_STREAMING,
+ AssociationRequest.DEVICE_PROFILE_NEARBY_DEVICE_STREAMING));
+
private final @NonNull Context mContext;
private final @NonNull PackageManagerInternal mPackageManagerInternal;
private final @NonNull AssociationStore mAssociationStore;
@@ -174,6 +183,7 @@ public class AssociationRequestsProcessor {
// 2a. Check if association can be created without launching UI (i.e. CDM needs NEITHER
// to perform discovery NOR to collect user consent).
if (request.isSelfManaged() && !request.isForceConfirmation()
+ && !DEVICE_PROFILES_WITH_REQUIRED_CONFIRMATION.contains(request.getDeviceProfile())
&& !willAddRoleHolder(request, packageName, userId)) {
// 2a.1. Create association right away.
createAssociationAndNotifyApplication(request, packageName, userId,