1 package android.companion.cts.common
2
3 import android.Manifest
4 import android.companion.AssociationRequest.DEVICE_PROFILE_APP_STREAMING
5 import android.companion.AssociationRequest.DEVICE_PROFILE_AUTOMOTIVE_PROJECTION
6 import android.companion.AssociationRequest.DEVICE_PROFILE_COMPUTER
7 import android.companion.AssociationRequest.DEVICE_PROFILE_GLASSES
8 import android.companion.AssociationRequest.DEVICE_PROFILE_NEARBY_DEVICE_STREAMING
9 import android.companion.AssociationRequest.DEVICE_PROFILE_VIRTUAL_DEVICE
10 import android.companion.AssociationRequest.DEVICE_PROFILE_WATCH
11 import android.net.MacAddress
12 import android.os.Handler
13 import android.os.HandlerThread
14 import android.os.ParcelUuid
15 import java.util.concurrent.Executor
16
17 /** Set of all supported CDM Device Profiles. */
<lambda>null18 val DEVICE_PROFILES = buildSet {
19 add(DEVICE_PROFILE_WATCH)
20 add(DEVICE_PROFILE_GLASSES)
21 add(DEVICE_PROFILE_NEARBY_DEVICE_STREAMING)
22 add(DEVICE_PROFILE_COMPUTER)
23 add(DEVICE_PROFILE_APP_STREAMING)
24 add(DEVICE_PROFILE_AUTOMOTIVE_PROJECTION)
25 if (android.companion.virtualdevice.flags.Flags.enableLimitedVdmRole()) {
26 add(DEVICE_PROFILE_VIRTUAL_DEVICE)
27 }
28 }
29
<lambda>null30 val DEVICE_PROFILE_TO_NAME = buildMap {
31 put(DEVICE_PROFILE_WATCH, "WATCH")
32 put(DEVICE_PROFILE_GLASSES, "GLASSES")
33 put(DEVICE_PROFILE_NEARBY_DEVICE_STREAMING, "NEARBY_DEVICE_STREAMING")
34 put(DEVICE_PROFILE_COMPUTER, "COMPUTER")
35 put(DEVICE_PROFILE_APP_STREAMING, "APP_STREAMING")
36 put(DEVICE_PROFILE_AUTOMOTIVE_PROJECTION, "AUTOMOTIVE_PROJECTION")
37 if (android.companion.virtualdevice.flags.Flags.enableLimitedVdmRole()) {
38 put(DEVICE_PROFILE_VIRTUAL_DEVICE, "VIRTUAL_DEVICE")
39 }
40 }
41
<lambda>null42 val DEVICE_PROFILE_TO_PERMISSION = buildMap {
43 put(DEVICE_PROFILE_WATCH, Manifest.permission.REQUEST_COMPANION_PROFILE_WATCH)
44 put(DEVICE_PROFILE_APP_STREAMING, Manifest.permission.REQUEST_COMPANION_PROFILE_APP_STREAMING)
45 put(
46 DEVICE_PROFILE_AUTOMOTIVE_PROJECTION,
47 Manifest.permission.REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION
48 )
49 put(DEVICE_PROFILE_GLASSES, Manifest.permission.REQUEST_COMPANION_PROFILE_GLASSES)
50 put(
51 DEVICE_PROFILE_NEARBY_DEVICE_STREAMING,
52 Manifest.permission.REQUEST_COMPANION_PROFILE_NEARBY_DEVICE_STREAMING
53 )
54 put(DEVICE_PROFILE_COMPUTER, Manifest.permission.REQUEST_COMPANION_PROFILE_COMPUTER)
55 if (android.companion.virtualdevice.flags.Flags.enableLimitedVdmRole()) {
56 put(
57 DEVICE_PROFILE_VIRTUAL_DEVICE,
58 Manifest.permission.REQUEST_COMPANION_PROFILE_VIRTUAL_DEVICE
59 )
60 }
61 }
62
63 val MAC_ADDRESS_A = MacAddress.fromString("00:00:00:00:00:AA")
64 val MAC_ADDRESS_B = MacAddress.fromString("00:00:00:00:00:BB")
65 val MAC_ADDRESS_C = MacAddress.fromString("00:00:00:00:00:CC")
66
67 val UUID_A: ParcelUuid = ParcelUuid.fromString("bc4990b9-698c-473d-8498-2a5c4119f73d")
68 val UUID_B: ParcelUuid = ParcelUuid.fromString("ba6d2f1e-9adc-11ee-b9d1-0242ac120002")
69
70 const val CUSTOM_ID_A = "00:00:00:00:00:AA"
71 const val CUSTOM_ID_B = "00:00:00:00:00:BB"
72
73 var CUSTOM_ID_INVALID = "A".repeat(1025)
74
75 const val DEVICE_DISPLAY_NAME_A = "Device A"
76 const val DEVICE_DISPLAY_NAME_B = "Device B"
77
78 const val ASSOCIATION_ID = 1
79
<lambda>null80 val SIMPLE_EXECUTOR: Executor by lazy { Executor { it.run() } }
81
<lambda>null82 val MAIN_THREAD_EXECUTOR: Executor by lazy {
83 Executor {
84 with(Handler.getMain()) { post(it) }
85 }
86 }
87
<lambda>null88 val BACKGROUND_THREAD_EXECUTOR: Executor by lazy {
89 with(HandlerThread("CdmTestBackgroundThread")) {
90 start()
91 Executor { threadHandler.post(it) }
92 }
93 }
94
95 val PRIMARY_PROCESS_NAME = ":primary"
96 val SECONDARY_PROCESS_NAME = ":secondary"
97