1 package com.android.onboarding.contracts.provisioning
2 
3 import android.app.admin.DevicePolicyManager
4 import android.os.Build
5 import androidx.annotation.RequiresApi
6 
7 @RequiresApi(Build.VERSION_CODES.Q)
8 enum class ProvisioningMode(val id: Int) {
9   FullyManagedDevice(DevicePolicyManager.PROVISIONING_MODE_FULLY_MANAGED_DEVICE),
10 
11   ManagedProfile(DevicePolicyManager.PROVISIONING_MODE_MANAGED_PROFILE),
12 
13   ManagedProfileOnPersonalDevice(
14     DevicePolicyManager.PROVISIONING_MODE_MANAGED_PROFILE_ON_PERSONAL_DEVICE
15   );
16 
17   companion object {
invokenull18     operator fun invoke(id: Int): ProvisioningMode =
19       when (id) {
20         FullyManagedDevice.id -> FullyManagedDevice
21         ManagedProfile.id -> ManagedProfile
22         ManagedProfileOnPersonalDevice.id -> ManagedProfileOnPersonalDevice
23         else -> error("Unknown ProvisioningMode(id=$id)")
24       }
25   }
26 }
27